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

File:
1 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));
Note: See TracChangeset for help on using the changeset viewer.