Changeset 432
- Timestamp:
- May 15, 2015, 12:47:44 AM (8 years ago)
- Location:
- trunk/DirectShowSpy
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/DirectShowSpy/AboutDialog.h
r376 r432 16 16 #pragma once 17 17 18 #include <atlsecurity.h> 18 19 #include <atlctrls.h> 19 20 #include <atlctrlx.h> … … 46 47 public: 47 48 // CAboutDialog 48 static CFontHandle CreateTitleFont() throw()49 static CFontHandle CreateTitleFont() 49 50 { 50 51 CLogFont LogFont; … … 57 58 return Font.Detach(); 58 59 } 59 static CFontHandle CreateDisclaimerFont() throw()60 static CFontHandle CreateDisclaimerFont() 60 61 { 61 62 CLogFont LogFont; … … 67 68 return Font.Detach(); 68 69 } 69 CAboutDialog() throw()70 CAboutDialog() 70 71 { 71 72 _Z4_THIS(); 72 73 } 73 ~CAboutDialog() throw()74 ~CAboutDialog() 74 75 { 75 76 _Z4_THIS(); 77 } 78 static BOOL IsAdministrator() 79 { 80 bool bIsMember = FALSE; 81 return CAccessToken().CheckTokenMembership(Sids::Admins(), &bIsMember) && bIsMember; 82 } 83 static VOID UpdateCaption(CWindow Window) 84 { 85 CString sCaption; 86 _W(Window.GetWindowText(sCaption)); 87 CRoArrayT<CString> SpecifierArray; 88 #if defined(_WIN64) 89 SpecifierArray.Add(_T("64-bit")); 90 #else 91 if(SafeIsWow64Process()) 92 SpecifierArray.Add(_T("32-bit")); 93 #endif // defined(_WIN64) 94 if(IsWindowsVistaOrGreater() && IsAdministrator()) 95 SpecifierArray.Add(_T("Administrator")); 96 if(!SpecifierArray.IsEmpty()) 97 sCaption = AtlFormatString(_T("%s (%s)"), sCaption, _StringHelper::Join(SpecifierArray, _T(", "))); 98 #if _TRACE 99 sCaption.Append(_T(" // ")); 100 #if _DEVELOPMENT 101 sCaption.Append(_T("Dev ")); 102 #endif // _DEVELOPMENT 103 sCaption.Append(_VersionInfoHelper::GetVersionString(_VersionInfoHelper::GetFileVersion(_VersionInfoHelper::GetModulePath()))); 104 #endif // _TRACE 105 Window.SetWindowText(sCaption); 76 106 } 77 107 … … 122 152 _W(m_EmailHyperStatic.SubclassWindow(GetDlgItem(IDC_ABOUT_EMAIL))); 123 153 #pragma endregion 124 #pragma region Caption 125 { 126 #if _TRACE || defined(_WIN64) 127 CString sCaption; 128 _W(GetWindowText(sCaption)); 129 sCaption.Append(_T(" // ")); 130 #if _DEVELOPMENT 131 sCaption.Append(_T("Dev ")); 132 #endif // _DEVELOPMENT 133 sCaption.Append(_VersionInfoHelper::GetVersionString(_VersionInfoHelper::GetFileVersion(_VersionInfoHelper::GetModulePath()))); 134 #if defined(_WIN64) 135 sCaption.Append(_T(" (x64)")); 136 #endif // defined(_WIN64) 137 _W(SetWindowText(sCaption)); 138 #endif // _TRACE || defined(_WIN64) 139 } 140 #pragma endregion 154 UpdateCaption(*this); 141 155 #pragma region Window Position and Focus 142 156 _W(CenterWindow(GetParent())); … … 145 159 return FALSE; 146 160 } 147 LRESULT OnDestroy() throw()161 LRESULT OnDestroy() 148 162 { 149 163 _W(m_TitleFont.DeleteObject()); … … 151 165 return 0; 152 166 } 153 LRESULT OnCommand(UINT, INT nIdentifier, HWND) throw()167 LRESULT OnCommand(UINT, INT nIdentifier, HWND) 154 168 { 155 169 _W(EndDialog(nIdentifier)); -
trunk/DirectShowSpy/Common.h
r376 r432 141 141 { 142 142 _Z2(atlTraceRegistrar, 2, _T("TreatAsClassIdentifier %ls, bRegister %d\n"), _PersistHelper::StringFromIdentifier(TreatAsClassIdentifier), bRegister); 143 // NOTE: Registration is m uch more sophisticated starting Vista operating system144 const ULONG nOsVersion = GetOsVersion();145 _Z4(atlTraceRegistrar, 4, _T(" nOsVersion 0x%08x\n"), nOsVersion);143 // NOTE: Registration is more sophisticated starting Vista operating system 144 const BOOL bAdjustProcessTokenPrivileges = IsWindowsVistaOrGreater(); 145 _Z4(atlTraceRegistrar, 4, _T("bAdjustProcessTokenPrivileges %d\n"), bAdjustProcessTokenPrivileges); 146 146 CProcessTokenPrivileges ProcessTokenPrivileges; 147 if( nOsVersion >= 0x060000) // Win Vista+147 if(bAdjustProcessTokenPrivileges) 148 148 _ATLTRY 149 149 { … … 157 157 const HRESULT nCoGetTreatAsClassResult = CoGetTreatAsClass(TreatAsClassIdentifier, &CurrentTreatAsClassIdentifier); 158 158 __C(nCoGetTreatAsClassResult); 159 _Z4(atlTraceRegistrar, 4, _T("bRegister %d, nCoGetTreatAsClassResult 0x%08 x, CurrentTreatAsClassIdentifier %ls\n"), bRegister, nCoGetTreatAsClassResult, _PersistHelper::StringFromIdentifier(CurrentTreatAsClassIdentifier));159 _Z4(atlTraceRegistrar, 4, _T("bRegister %d, nCoGetTreatAsClassResult 0x%08X, CurrentTreatAsClassIdentifier %ls\n"), bRegister, nCoGetTreatAsClassResult, _PersistHelper::StringFromIdentifier(CurrentTreatAsClassIdentifier)); 160 160 __D(!bRegister || nCoGetTreatAsClassResult != S_OK || CurrentTreatAsClassIdentifier == T::GetObjectCLSID(), E_UNNAMED); 161 161 CClassIdentifierRegKeySecurity ClassIdentifierRegKeySecurity(TreatAsClassIdentifier); 162 162 if(!bRegister && nCoGetTreatAsClassResult == S_OK) 163 163 { 164 if( nOsVersion >= 0x060000) // Win Vista+164 if(bAdjustProcessTokenPrivileges) 165 165 ClassIdentifierRegKeySecurity.Adjust(); 166 166 __C(CoTreatAsClass(TreatAsClassIdentifier, CLSID_NULL)); … … 170 170 if(bRegister) 171 171 { 172 if( nOsVersion >= 0x060000) // Win Vista+172 if(bAdjustProcessTokenPrivileges) 173 173 ClassIdentifierRegKeySecurity.Adjust(); 174 174 #if _DEVELOPMENT 175 175 const HRESULT nCoTreatAsClassResult = CoTreatAsClass(TreatAsClassIdentifier, T::GetObjectCLSID()); 176 _Z2(atlTraceRegistrar, SUCCEEDED(nCoTreatAsClassResult) ? 4 : 2, _T("nCoTreatAsClassResult 0x%08 x\n"), nCoTreatAsClassResult);176 _Z2(atlTraceRegistrar, SUCCEEDED(nCoTreatAsClassResult) ? 4 : 2, _T("nCoTreatAsClassResult 0x%08X\n"), nCoTreatAsClassResult); 177 177 __C(nCoTreatAsClassResult); 178 178 const HRESULT nCoGetTreatAsClassResult = CoGetTreatAsClass(TreatAsClassIdentifier, &CurrentTreatAsClassIdentifier); 179 _Z4(atlTraceRegistrar, 4, _T("nCoGetTreatAsClassResult 0x%08 x, CurrentTreatAsClassIdentifier %ls\n"), nCoGetTreatAsClassResult, _PersistHelper::StringFromIdentifier(CurrentTreatAsClassIdentifier));179 _Z4(atlTraceRegistrar, 4, _T("nCoGetTreatAsClassResult 0x%08X, CurrentTreatAsClassIdentifier %ls\n"), nCoGetTreatAsClassResult, _PersistHelper::StringFromIdentifier(CurrentTreatAsClassIdentifier)); 180 180 _A(CurrentTreatAsClassIdentifier == T::GetObjectCLSID()); 181 181 #else -
trunk/DirectShowSpy/Configuration.cpp
r376 r432 41 41 &CLSID_FilterGraphNoThread, // CLSID_NoThreadSpy 42 42 }; 43 const ULONG nOsVersion = GetOsVersion();44 _Z4(atlTraceGeneral, 4, _T("nOsVersion 0x%08x\n"), nOsVersion);45 43 CProcessTokenPrivileges ProcessTokenPrivileges; 46 44 BOOL bProcessTokenPrivilegesAdjustNeeded = TRUE; … … 62 60 { 63 61 bProcessTokenPrivilegesAdjustNeeded = FALSE; 64 if( nOsVersion >= 0x060000) // Win Vista+62 if(IsWindowsVistaOrGreater()) 65 63 _ATLTRY 66 64 { … … 74 72 #pragma endregion 75 73 CClassIdentifierRegKeySecurity ClassIdentifierRegKeySecurity(ClassIdentifier); 76 if( nOsVersion >= 0x060000) // Win Vista+74 if(IsWindowsVistaOrGreater()) 77 75 ClassIdentifierRegKeySecurity.Adjust(); 78 76 const HRESULT nCoTreatAsClassResult = CoTreatAsClass(ClassIdentifier, CLSID_NULL); -
trunk/DirectShowSpy/Configuration.h
r376 r432 110 110 // CDialogResize 111 111 112 // Window message handlers112 // Window Message Handler 113 113 LRESULT OnInitDialog(HWND, LPARAM) 114 114 { … … 126 126 //_W(m_UserNoteStatic.SubclassWindow(GetDlgItem(IDC_REGISTRATION_REGISTRATION_USERNOTE))); 127 127 //m_UserNoteStatic.SetIdealHeight(); 128 if( GetOsVersion() >= 0x00060000) // Windows Vista or Windows Server 2008128 if(IsWindowsVistaOrGreater() && !IsAdministrator()) 129 129 { 130 if(!IsAdministrator()) 131 { 132 m_RegisterButton.SetElevationRequiredState(TRUE); 133 m_UnregisterButton.SetElevationRequiredState(TRUE); 134 // NOTE: Even per-user registration needs elevation, since we are hooking COM classes 135 m_UserRegisterButton.SetElevationRequiredState(TRUE); 136 m_UserUnregisterButton.SetElevationRequiredState(TRUE); 137 } 130 m_RegisterButton.SetElevationRequiredState(TRUE); 131 m_UnregisterButton.SetElevationRequiredState(TRUE); 132 // NOTE: Even per-user registration needs elevation, since we are hooking COM classes 133 m_UserRegisterButton.SetElevationRequiredState(TRUE); 134 m_UserUnregisterButton.SetElevationRequiredState(TRUE); 138 135 } 139 136 _StringHelper::GetCommaSeparatedItems(AtlLoadString(IDC_REGISTRATION_REGISTRATION_STATUS), m_StatusArray); … … 350 347 // CDialogResize 351 348 352 // Window message handlers349 // Window Message Handler 353 350 LRESULT OnInitDialog(HWND, LPARAM) 354 351 { … … 366 363 //_W(m_UserNoteStatic.SubclassWindow(GetDlgItem(T::IDD + IDC_USERNOTE))); 367 364 //m_UserNoteStatic.SetIdealHeight(); 368 if( GetOsVersion() >= 0x00060000) // Windows Vista or Windows Server 2008365 if(IsWindowsVistaOrGreater() && !IsAdministrator()) 369 366 { 370 if(!IsAdministrator()) 371 { 372 m_RegisterButton.SetElevationRequiredState(TRUE); 373 m_UnregisterButton.SetElevationRequiredState(TRUE); 374 } 367 m_RegisterButton.SetElevationRequiredState(TRUE); 368 m_UnregisterButton.SetElevationRequiredState(TRUE); 375 369 } 376 370 _StringHelper::GetCommaSeparatedItems(AtlLoadString(T::IDD + IDC_STATUS), m_StatusArray); … … 504 498 } 505 499 506 // Window message handlers500 // Window Message Handler 507 501 }; 508 502 … … 532 526 } 533 527 534 // Window message handlers528 // Window Message Handler 535 529 }; 536 530 … … 572 566 SetIcon(AtlLoadIconImage(IDI_MODULE, LR_DEFAULTCOLOR, GetSystemMetrics(SM_CXICON), GetSystemMetrics(SM_CYICON)), TRUE); 573 567 SetIcon(AtlLoadIconImage(IDI_MODULE, LR_DEFAULTCOLOR, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON)), FALSE); 574 #pragma region Indication of Bitness 575 CString sCaption; 576 _W(GetWindowText(sCaption)); 577 #if defined(_WIN64) 578 sCaption.Append(_T(" (64-bit)")); 579 #else 580 if(SafeIsWow64Process()) 581 sCaption.Append(_T(" (32-bit)")); 582 #endif // defined(_WIN64) 583 _W(SetWindowText(sCaption)); 584 #pragma endregion 568 CAboutDialog::UpdateCaption(*this); 585 569 #pragma region System Menu 586 570 CMenuHandle Menu = GetSystemMenu(FALSE); … … 634 618 Information.cbSize = sizeof Information; 635 619 Information.fMask = SEE_MASK_NOCLOSEPROCESS; 636 if(bAsAdministrator && GetOsVersion() >= 0x00060000) // Windows Vista or Windows Server 2008620 if(bAsAdministrator && IsWindowsVistaOrGreater()) 637 621 Information.lpVerb = _T("runas"); 638 622 Information.lpFile = _T("regsvr32.exe"); -
trunk/DirectShowSpy/DirectShowSpy.vcxproj
r322 r432 1 1 <?xml version="1.0" encoding="utf-8"?> 2 <Project DefaultTargets="Build" ToolsVersion=" 4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">2 <Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 3 3 <ItemGroup Label="ProjectConfigurations"> 4 4 <ProjectConfiguration Include="Debug|Win32"> … … 35 35 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Trace|Win32'" Label="Configuration"> 36 36 <ConfigurationType>DynamicLibrary</ConfigurationType> 37 <PlatformToolset>v1 10_xp</PlatformToolset>37 <PlatformToolset>v120_xp</PlatformToolset> 38 38 <UseOfAtl>Static</UseOfAtl> 39 39 <CharacterSet>Unicode</CharacterSet> … … 42 42 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> 43 43 <ConfigurationType>DynamicLibrary</ConfigurationType> 44 <PlatformToolset>v1 10_xp</PlatformToolset>44 <PlatformToolset>v120_xp</PlatformToolset> 45 45 <UseOfAtl>Static</UseOfAtl> 46 46 <CharacterSet>Unicode</CharacterSet> … … 49 49 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> 50 50 <ConfigurationType>DynamicLibrary</ConfigurationType> 51 <PlatformToolset>v1 10_xp</PlatformToolset>51 <PlatformToolset>v120_xp</PlatformToolset> 52 52 <UseOfAtl>Dynamic</UseOfAtl> 53 53 <CharacterSet>Unicode</CharacterSet> … … 55 55 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Trace|x64'" Label="Configuration"> 56 56 <ConfigurationType>DynamicLibrary</ConfigurationType> 57 <PlatformToolset>v1 10_xp</PlatformToolset>57 <PlatformToolset>v120_xp</PlatformToolset> 58 58 <UseOfAtl>Static</UseOfAtl> 59 59 <CharacterSet>Unicode</CharacterSet> … … 62 62 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> 63 63 <ConfigurationType>DynamicLibrary</ConfigurationType> 64 <PlatformToolset>v1 10_xp</PlatformToolset>64 <PlatformToolset>v120_xp</PlatformToolset> 65 65 <UseOfAtl>Static</UseOfAtl> 66 66 <CharacterSet>Unicode</CharacterSet> … … 69 69 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> 70 70 <ConfigurationType>DynamicLibrary</ConfigurationType> 71 <PlatformToolset>v1 10_xp</PlatformToolset>71 <PlatformToolset>v120_xp</PlatformToolset> 72 72 <UseOfAtl>Dynamic</UseOfAtl> 73 73 <CharacterSet>Unicode</CharacterSet> -
trunk/DirectShowSpy/FilterGraphHelper.h
r376 r432 1446 1446 ZeroMemory(&Version, sizeof Version); 1447 1447 Version.dwOSVersionInfoSize = sizeof Version; 1448 #pragma warning(disable: 4996) // 'GetVersionExW': was declared deprecated 1448 1449 GetVersionEx((OSVERSIONINFO*) &Version); 1450 #pragma warning(default: 4996) 1449 1451 #pragma region Version 1450 1452 CRoArrayT<CString> VersionArray; … … 2167 2169 { 2168 2170 CWaitCursor WaitCursor; 2169 #pragma region Bitness Indication 2170 CString sCaption; 2171 _W(GetWindowText(sCaption)); 2172 #if defined(_WIN64) 2173 sCaption.Append(_T(" (64-bit)")); 2174 #else 2175 if(SafeIsWow64Process()) 2176 sCaption.Append(_T(" (32-bit)")); 2177 #endif // defined(_WIN64) 2178 _W(SetWindowText(sCaption)); 2179 #pragma endregion 2171 CAboutDialog::UpdateCaption(*this); 2180 2172 #pragma region System Menu 2181 2173 CMenuHandle Menu = GetSystemMenu(FALSE); -
trunk/DirectShowSpy/FilterGraphList.h
r376 r432 630 630 SetIcon(AtlLoadIconImage(IDI_MODULE, LR_DEFAULTCOLOR, GetSystemMetrics(SM_CXICON), GetSystemMetrics(SM_CYICON)), TRUE); 631 631 SetIcon(AtlLoadIconImage(IDI_MODULE, LR_DEFAULTCOLOR, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON)), FALSE); 632 #pragma region Bitness Indication 633 CString sCaption; 634 _W(GetWindowText(sCaption)); 635 #if defined(_WIN64) 636 sCaption.Append(_T(" (64-bit)")); 637 #else 638 if(SafeIsWow64Process()) 639 sCaption.Append(_T(" (32-bit)")); 640 #endif // defined(_WIN64) 641 _W(SetWindowText(sCaption)); 642 #pragma endregion 632 CAboutDialog::UpdateCaption(*this); 643 633 #pragma region System Menu 644 634 CMenuHandle Menu = GetSystemMenu(FALSE); -
trunk/DirectShowSpy/GraphBuilderCallbackPropertySheet.h
r376 r432 1350 1350 SetIcon(AtlLoadIconImage(IDI_MODULE, LR_DEFAULTCOLOR, GetSystemMetrics(SM_CXICON), GetSystemMetrics(SM_CYICON)), TRUE); 1351 1351 SetIcon(AtlLoadIconImage(IDI_MODULE, LR_DEFAULTCOLOR, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON)), FALSE); 1352 #pragma region Bitness Indication 1353 CString sCaption; 1354 _W(GetWindowText(sCaption)); 1355 #if defined(_WIN64) 1356 sCaption.Append(_T(" (64-bit)")); 1357 #else 1358 if(SafeIsWow64Process()) 1359 sCaption.Append(_T(" (32-bit)")); 1360 #endif // defined(_WIN64) 1361 _W(SetWindowText(sCaption)); 1362 #pragma endregion 1352 CAboutDialog::UpdateCaption(*this); 1363 1353 #pragma region System Menu 1364 1354 CMenuHandle Menu = GetSystemMenu(FALSE); -
trunk/DirectShowSpy/stdafx.h
r376 r432 22 22 #define INLINE_HRESULT_FROM_WIN32 23 23 #define _INC_WINDOWSX 24 #define _WINSOCK_DEPRECATED_NO_WARNINGS 24 25 25 26 #include "targetver.h" … … 59 60 #define _WTL_NEW_PAGE_NOTIFY_HANDLERS 60 61 61 #undef _SYSINFOAPI_H_62 62 #include <atlapp.h> 63 #define _SYSINFOAPI_H_64 65 63 #include <atlgdi.h> 66 64 #include <atluser.h>
Note: See TracChangeset
for help on using the changeset viewer.