Changeset 641
- Timestamp:
- Jun 14, 2016, 11:12:30 AM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/DirectShowSpy/Common.h
r617 r641 544 544 }; 545 545 546 547 ////////////////////////////////////////////////////////////548 // CCommandLineArguments549 550 class CCommandLineArguments551 {552 public:553 554 ////////////////////////////////////////////////////////555 // CArgument556 557 class CArgument558 {559 public:560 BOOL m_bSwitch;561 CString m_sSwitchName;562 CString m_sSwitchValue;563 BOOL m_bIntegerSwitchValueAvailable;564 INT m_nIntegerSwitchValue;565 CString m_sValue;566 567 public:568 // CArgument569 CArgument() :570 m_bSwitch(FALSE),571 m_bIntegerSwitchValueAvailable(FALSE)572 {573 }574 VOID Initialize()575 {576 m_bSwitch = FALSE;577 m_sSwitchName.Empty();;578 m_sSwitchValue.Empty();;579 m_bIntegerSwitchValueAvailable = FALSE;580 m_sValue.Empty();581 }582 };583 584 private:585 SIZE_T m_argc;586 TCHAR** m_argv;587 SIZE_T m_nIndex;588 589 public:590 // CCommandLineArguments591 CCommandLineArguments(SIZE_T argc, TCHAR* argv[]) :592 m_argc(argc),593 m_argv(argv),594 m_nIndex(1)595 {596 }597 CCommandLineArguments(LPCWSTR pszCommandLine, SIZE_T nIndex = 1) :598 m_nIndex(nIndex)599 {600 INT nArgumentCount = 0;601 LPWSTR* pszArguments = CommandLineToArgvW(pszCommandLine, &nArgumentCount);602 m_argc = nArgumentCount;603 m_argv = pszArguments;604 }605 BOOL Next(CArgument& Argument)606 {607 if(m_nIndex >= m_argc)608 return FALSE;609 CString sArgument = m_argv[m_nIndex++];610 _A(!sArgument.IsEmpty());611 Argument.Initialize();612 if(_tcschr(_T("-/"), sArgument[0]))613 {614 Argument.m_bSwitch = TRUE;615 sArgument.Delete(0);616 const INT nSeparatorPosition = sArgument.Find(_T(':'));617 if(nSeparatorPosition > 0)618 {619 Argument.m_sSwitchName = sArgument.Left(nSeparatorPosition);620 Argument.m_sSwitchValue = sArgument.Mid(nSeparatorPosition + 1);621 if(!Argument.m_sSwitchValue.IsEmpty())622 Argument.m_bIntegerSwitchValueAvailable = AtlStringToInteger(Argument.m_sSwitchValue, Argument.m_nIntegerSwitchValue);623 } else624 Argument.m_sSwitchName = sArgument;625 return TRUE;626 }627 if(sArgument.GetLength() >= 2 && sArgument[0] == _T('"') && sArgument[sArgument.GetLength() - 1] == _T('"'))628 sArgument = sArgument.Mid(1, sArgument.GetLength() - 2);629 Argument.m_sValue = sArgument;630 return TRUE;631 }632 };633 634 546 #if defined(DIRECTSHOWSPY) 635 547
Note: See TracChangeset
for help on using the changeset viewer.