Changeset 569 for trunk/DirectShowSpy/Common.h
- Timestamp:
- Jan 15, 2016, 4:22:49 AM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/DirectShowSpy/Common.h
r545 r569 544 544 }; 545 545 546 547 //////////////////////////////////////////////////////////// 548 // CCommandLineArguments 549 550 class CCommandLineArguments 551 { 552 public: 553 554 //////////////////////////////////////////////////////// 555 // CArgument 556 557 class CArgument 558 { 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 // CArgument 569 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 // CCommandLineArguments 591 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 } else 624 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 546 634 //////////////////////////////////////////////////////////// 547 635 // DIRECTSHOWSPY_NAMESPACE_PREFIX
Note: See TracChangeset
for help on using the changeset viewer.