Changeset 432


Ignore:
Timestamp:
May 15, 2015, 12:47:44 AM (7 years ago)
Author:
roman
Message:

VS2013 related updates; use of CSIDL_LOCAL_APPDATA instead of CSIDL_APPDATA for fallback log writes; added bitness and privilege indication in all captions

Location:
trunk/DirectShowSpy
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • trunk/DirectShowSpy/AboutDialog.h

    r376 r432  
    1616#pragma once
    1717
     18#include <atlsecurity.h>
    1819#include <atlctrls.h>
    1920#include <atlctrlx.h>
     
    4647public:
    4748// CAboutDialog
    48         static CFontHandle CreateTitleFont() throw()
     49        static CFontHandle CreateTitleFont()
    4950        {
    5051                CLogFont LogFont;
     
    5758                return Font.Detach();
    5859        }
    59         static CFontHandle CreateDisclaimerFont() throw()
     60        static CFontHandle CreateDisclaimerFont()
    6061        {
    6162                CLogFont LogFont;
     
    6768                return Font.Detach();
    6869        }
    69         CAboutDialog() throw()
     70        CAboutDialog()
    7071        {
    7172                _Z4_THIS();
    7273        }
    73         ~CAboutDialog() throw()
     74        ~CAboutDialog()
    7475        {
    7576                _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);
    76106        }
    77107
     
    122152                _W(m_EmailHyperStatic.SubclassWindow(GetDlgItem(IDC_ABOUT_EMAIL)));
    123153                #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);
    141155                #pragma region Window Position and Focus
    142156                _W(CenterWindow(GetParent()));
     
    145159                return FALSE;
    146160        }
    147         LRESULT OnDestroy() throw()
     161        LRESULT OnDestroy()
    148162        {
    149163                _W(m_TitleFont.DeleteObject());
     
    151165                return 0;
    152166        }
    153         LRESULT OnCommand(UINT, INT nIdentifier, HWND) throw()
     167        LRESULT OnCommand(UINT, INT nIdentifier, HWND)
    154168        {
    155169                _W(EndDialog(nIdentifier));
  • trunk/DirectShowSpy/Common.h

    r376 r432  
    141141{
    142142        _Z2(atlTraceRegistrar, 2, _T("TreatAsClassIdentifier %ls, bRegister %d\n"), _PersistHelper::StringFromIdentifier(TreatAsClassIdentifier), bRegister);
    143         // NOTE: Registration is much more sophisticated starting Vista operating system
    144         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);
    146146        CProcessTokenPrivileges ProcessTokenPrivileges;
    147         if(nOsVersion >= 0x060000) // Win Vista+
     147        if(bAdjustProcessTokenPrivileges)
    148148                _ATLTRY
    149149                {
     
    157157        const HRESULT nCoGetTreatAsClassResult = CoGetTreatAsClass(TreatAsClassIdentifier, &CurrentTreatAsClassIdentifier);
    158158        __C(nCoGetTreatAsClassResult);
    159         _Z4(atlTraceRegistrar, 4, _T("bRegister %d, nCoGetTreatAsClassResult 0x%08x, 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));
    160160        __D(!bRegister || nCoGetTreatAsClassResult != S_OK || CurrentTreatAsClassIdentifier == T::GetObjectCLSID(), E_UNNAMED);
    161161        CClassIdentifierRegKeySecurity ClassIdentifierRegKeySecurity(TreatAsClassIdentifier);
    162162        if(!bRegister && nCoGetTreatAsClassResult == S_OK)
    163163        {
    164                 if(nOsVersion >= 0x060000) // Win Vista+
     164                if(bAdjustProcessTokenPrivileges)
    165165                        ClassIdentifierRegKeySecurity.Adjust();
    166166                __C(CoTreatAsClass(TreatAsClassIdentifier, CLSID_NULL));
     
    170170        if(bRegister)
    171171        {
    172                 if(nOsVersion >= 0x060000) // Win Vista+
     172                if(bAdjustProcessTokenPrivileges)
    173173                        ClassIdentifierRegKeySecurity.Adjust();
    174174                #if _DEVELOPMENT
    175175                        const HRESULT nCoTreatAsClassResult = CoTreatAsClass(TreatAsClassIdentifier, T::GetObjectCLSID());
    176                         _Z2(atlTraceRegistrar, SUCCEEDED(nCoTreatAsClassResult) ? 4 : 2, _T("nCoTreatAsClassResult 0x%08x\n"), nCoTreatAsClassResult);
     176                        _Z2(atlTraceRegistrar, SUCCEEDED(nCoTreatAsClassResult) ? 4 : 2, _T("nCoTreatAsClassResult 0x%08X\n"), nCoTreatAsClassResult);
    177177                        __C(nCoTreatAsClassResult);
    178178                        const HRESULT nCoGetTreatAsClassResult = CoGetTreatAsClass(TreatAsClassIdentifier, &CurrentTreatAsClassIdentifier);
    179                         _Z4(atlTraceRegistrar, 4, _T("nCoGetTreatAsClassResult 0x%08x, CurrentTreatAsClassIdentifier %ls\n"), nCoGetTreatAsClassResult, _PersistHelper::StringFromIdentifier(CurrentTreatAsClassIdentifier));
     179                        _Z4(atlTraceRegistrar, 4, _T("nCoGetTreatAsClassResult 0x%08X, CurrentTreatAsClassIdentifier %ls\n"), nCoGetTreatAsClassResult, _PersistHelper::StringFromIdentifier(CurrentTreatAsClassIdentifier));
    180180                        _A(CurrentTreatAsClassIdentifier == T::GetObjectCLSID());
    181181                #else
  • trunk/DirectShowSpy/Configuration.cpp

    r376 r432  
    4141                        &CLSID_FilterGraphNoThread, // CLSID_NoThreadSpy
    4242                };
    43                 const ULONG nOsVersion = GetOsVersion();
    44                 _Z4(atlTraceGeneral, 4, _T("nOsVersion 0x%08x\n"), nOsVersion);
    4543                CProcessTokenPrivileges ProcessTokenPrivileges;
    4644                BOOL bProcessTokenPrivilegesAdjustNeeded = TRUE;
     
    6260                                {
    6361                                        bProcessTokenPrivilegesAdjustNeeded = FALSE;
    64                                         if(nOsVersion >= 0x060000) // Win Vista+
     62                                        if(IsWindowsVistaOrGreater())
    6563                                                _ATLTRY
    6664                                                {
     
    7472                                #pragma endregion
    7573                                CClassIdentifierRegKeySecurity ClassIdentifierRegKeySecurity(ClassIdentifier);
    76                                 if(nOsVersion >= 0x060000) // Win Vista+
     74                                if(IsWindowsVistaOrGreater())
    7775                                        ClassIdentifierRegKeySecurity.Adjust();
    7876                                const HRESULT nCoTreatAsClassResult = CoTreatAsClass(ClassIdentifier, CLSID_NULL);
  • trunk/DirectShowSpy/Configuration.h

    r376 r432  
    110110        // CDialogResize                               
    111111                       
    112         // Window message handlers
     112        // Window Message Handler
    113113                LRESULT OnInitDialog(HWND, LPARAM)
    114114                {
     
    126126                                //_W(m_UserNoteStatic.SubclassWindow(GetDlgItem(IDC_REGISTRATION_REGISTRATION_USERNOTE)));
    127127                                //m_UserNoteStatic.SetIdealHeight();
    128                                 if(GetOsVersion() >= 0x00060000) // Windows Vista or Windows Server 2008
     128                                if(IsWindowsVistaOrGreater() && !IsAdministrator())
    129129                                {
    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);
    138135                                }
    139136                                _StringHelper::GetCommaSeparatedItems(AtlLoadString(IDC_REGISTRATION_REGISTRATION_STATUS), m_StatusArray);
     
    350347        // CDialogResize                               
    351348                       
    352         // Window message handlers
     349        // Window Message Handler
    353350                LRESULT OnInitDialog(HWND, LPARAM)
    354351                {
     
    366363                                //_W(m_UserNoteStatic.SubclassWindow(GetDlgItem(T::IDD + IDC_USERNOTE)));
    367364                                //m_UserNoteStatic.SetIdealHeight();
    368                                 if(GetOsVersion() >= 0x00060000) // Windows Vista or Windows Server 2008
     365                                if(IsWindowsVistaOrGreater() && !IsAdministrator())
    369366                                {
    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);
    375369                                }
    376370                                _StringHelper::GetCommaSeparatedItems(AtlLoadString(T::IDD + IDC_STATUS), m_StatusArray);
     
    504498                }
    505499
    506         // Window message handlers
     500        // Window Message Handler
    507501        };
    508502
     
    532526                }
    533527
    534         // Window message handlers
     528        // Window Message Handler
    535529        };
    536530
     
    572566                SetIcon(AtlLoadIconImage(IDI_MODULE, LR_DEFAULTCOLOR, GetSystemMetrics(SM_CXICON), GetSystemMetrics(SM_CYICON)), TRUE);
    573567                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);
    585569                #pragma region System Menu
    586570                CMenuHandle Menu = GetSystemMenu(FALSE);
     
    634618                Information.cbSize = sizeof Information;
    635619                Information.fMask = SEE_MASK_NOCLOSEPROCESS; 
    636                 if(bAsAdministrator && GetOsVersion() >= 0x00060000) // Windows Vista or Windows Server 2008
     620                if(bAsAdministrator && IsWindowsVistaOrGreater())
    637621                        Information.lpVerb = _T("runas");
    638622                Information.lpFile = _T("regsvr32.exe");
  • trunk/DirectShowSpy/DirectShowSpy.vcxproj

    r322 r432  
    11<?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">
    33  <ItemGroup Label="ProjectConfigurations">
    44    <ProjectConfiguration Include="Debug|Win32">
     
    3535  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Trace|Win32'" Label="Configuration">
    3636    <ConfigurationType>DynamicLibrary</ConfigurationType>
    37     <PlatformToolset>v110_xp</PlatformToolset>
     37    <PlatformToolset>v120_xp</PlatformToolset>
    3838    <UseOfAtl>Static</UseOfAtl>
    3939    <CharacterSet>Unicode</CharacterSet>
     
    4242  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
    4343    <ConfigurationType>DynamicLibrary</ConfigurationType>
    44     <PlatformToolset>v110_xp</PlatformToolset>
     44    <PlatformToolset>v120_xp</PlatformToolset>
    4545    <UseOfAtl>Static</UseOfAtl>
    4646    <CharacterSet>Unicode</CharacterSet>
     
    4949  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
    5050    <ConfigurationType>DynamicLibrary</ConfigurationType>
    51     <PlatformToolset>v110_xp</PlatformToolset>
     51    <PlatformToolset>v120_xp</PlatformToolset>
    5252    <UseOfAtl>Dynamic</UseOfAtl>
    5353    <CharacterSet>Unicode</CharacterSet>
     
    5555  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Trace|x64'" Label="Configuration">
    5656    <ConfigurationType>DynamicLibrary</ConfigurationType>
    57     <PlatformToolset>v110_xp</PlatformToolset>
     57    <PlatformToolset>v120_xp</PlatformToolset>
    5858    <UseOfAtl>Static</UseOfAtl>
    5959    <CharacterSet>Unicode</CharacterSet>
     
    6262  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
    6363    <ConfigurationType>DynamicLibrary</ConfigurationType>
    64     <PlatformToolset>v110_xp</PlatformToolset>
     64    <PlatformToolset>v120_xp</PlatformToolset>
    6565    <UseOfAtl>Static</UseOfAtl>
    6666    <CharacterSet>Unicode</CharacterSet>
     
    6969  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
    7070    <ConfigurationType>DynamicLibrary</ConfigurationType>
    71     <PlatformToolset>v110_xp</PlatformToolset>
     71    <PlatformToolset>v120_xp</PlatformToolset>
    7272    <UseOfAtl>Dynamic</UseOfAtl>
    7373    <CharacterSet>Unicode</CharacterSet>
  • trunk/DirectShowSpy/FilterGraphHelper.h

    r376 r432  
    14461446                                        ZeroMemory(&Version, sizeof Version);
    14471447                                        Version.dwOSVersionInfoSize = sizeof Version;
     1448                                        #pragma warning(disable: 4996) // 'GetVersionExW': was declared deprecated
    14481449                                        GetVersionEx((OSVERSIONINFO*) &Version);
     1450                                        #pragma warning(default: 4996)
    14491451                                        #pragma region Version
    14501452                                        CRoArrayT<CString> VersionArray;
     
    21672169                        {
    21682170                                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);
    21802172                                #pragma region System Menu
    21812173                                CMenuHandle Menu = GetSystemMenu(FALSE);
  • trunk/DirectShowSpy/FilterGraphList.h

    r376 r432  
    630630                SetIcon(AtlLoadIconImage(IDI_MODULE, LR_DEFAULTCOLOR, GetSystemMetrics(SM_CXICON), GetSystemMetrics(SM_CYICON)), TRUE);
    631631                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);
    643633                #pragma region System Menu
    644634                CMenuHandle Menu = GetSystemMenu(FALSE);
  • trunk/DirectShowSpy/GraphBuilderCallbackPropertySheet.h

    r376 r432  
    13501350                SetIcon(AtlLoadIconImage(IDI_MODULE, LR_DEFAULTCOLOR, GetSystemMetrics(SM_CXICON), GetSystemMetrics(SM_CYICON)), TRUE);
    13511351                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);
    13631353                #pragma region System Menu
    13641354                CMenuHandle Menu = GetSystemMenu(FALSE);
  • trunk/DirectShowSpy/stdafx.h

    r376 r432  
    2222#define INLINE_HRESULT_FROM_WIN32
    2323#define _INC_WINDOWSX
     24#define _WINSOCK_DEPRECATED_NO_WARNINGS
    2425
    2526#include "targetver.h"
     
    5960#define _WTL_NEW_PAGE_NOTIFY_HANDLERS
    6061
    61 #undef _SYSINFOAPI_H_
    6262#include <atlapp.h>
    63 #define _SYSINFOAPI_H_
    64 
    6563#include <atlgdi.h>
    6664#include <atluser.h>
Note: See TracChangeset for help on using the changeset viewer.