Ignore:
Timestamp:
Jul 25, 2015, 10:13:05 AM (7 years ago)
Author:
roman
Message:

VS2013 upgrade and Windows 8 fix

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Utilities/RotView/AboutDialog.h

    r156 r494  
    11////////////////////////////////////////////////////////////
    2 // Copyright (C) Roman Ryltsov, 2012-2013
     2// Copyright (C) Roman Ryltsov, 2006-2015
    33// Created by Roman Ryltsov roman@alax.info
     4//
     5// A permission to use the source code is granted as long as reference to
     6// source website http://alax.info is retained.
    47
    58#pragma once
    69
     10#include <atlsecurity.h>
    711#include <atlctrls.h>
    812#include <atlctrlx.h>
     
    3539public:
    3640// CAboutDialog
    37         static CFontHandle CreateTitleFont() throw()
     41        static CFontHandle CreateTitleFont()
    3842        {
    3943                CLogFont LogFont;
     
    4145                LogFont.lfWeight = FW_BOLD;
    4246                LogFont.lfItalic = TRUE;
    43                 _tcsncpy_s(LogFont.lfFaceName, _countof(LogFont.lfFaceName), _T("Arial"), _TRUNCATE);
     47                _tcsncpy_s(LogFont.lfFaceName, _T("Arial"), _TRUNCATE);
    4448                CFont Font;
    4549                _W(Font.CreateFontIndirect(&LogFont));
    4650                return Font.Detach();
    4751        }
    48         static CFontHandle CreateDisclaimerFont() throw()
     52        static CFontHandle CreateDisclaimerFont()
    4953        {
    5054                CLogFont LogFont;
    5155                LogFont.lfHeight = -MulDiv(7, GetDeviceCaps(CClientDC(GetDesktopWindow()), LOGPIXELSY), 72);
    5256                LogFont.lfWeight = FW_NORMAL;
    53                 _tcsncpy_s(LogFont.lfFaceName, _countof(LogFont.lfFaceName), _T("Lucida Console"), _TRUNCATE);
     57                _tcsncpy_s(LogFont.lfFaceName, _T("Lucida Console"), _TRUNCATE);
    5458                CFont Font;
    5559                _W(Font.CreateFontIndirect(&LogFont));
    5660                return Font.Detach();
    5761        }
    58         CAboutDialog() throw()
     62        CAboutDialog()
    5963        {
    60                 _Z4(atlTraceRefcount, 4, _T("this 0x%p\n"), this);
     64                _Z4_THIS();
    6165        }
    62         ~CAboutDialog() throw()
     66        ~CAboutDialog()
    6367        {
    64                 _Z4(atlTraceRefcount, 4, _T("this 0x%p\n"), this);
     68                _Z4_THIS();
     69        }
     70        static BOOL IsAdministrator()
     71        {
     72                bool bIsMember = FALSE;
     73                return CAccessToken().CheckTokenMembership(Sids::Admins(), &bIsMember) && bIsMember;
     74        }
     75        static VOID UpdateCaption(CWindow Window)
     76        {
     77                CString sCaption;
     78                _W(Window.GetWindowText(sCaption));
     79                CRoArrayT<CString> SpecifierArray;
     80                #if defined(_WIN64)
     81                        SpecifierArray.Add(_T("64-bit"));
     82                #else
     83                        if(SafeIsWow64Process())
     84                                SpecifierArray.Add(_T("32-bit"));
     85                #endif // defined(_WIN64)
     86                if(IsWindowsVistaOrGreater() && IsAdministrator())
     87                        SpecifierArray.Add(_T("Administrator"));
     88                if(!SpecifierArray.IsEmpty())
     89                        sCaption = AtlFormatString(_T("%s (%s)"), sCaption, _StringHelper::Join(SpecifierArray, _T(", ")));
     90                #if _TRACE
     91                        sCaption.Append(_T(" // "));
     92                        #if _DEVELOPMENT
     93                                sCaption.Append(_T("Dev "));
     94                        #endif // _DEVELOPMENT
     95                        sCaption.Append(_VersionInfoHelper::GetVersionString(_VersionInfoHelper::GetFileVersion(_VersionInfoHelper::GetModulePath())));
     96                #endif // _TRACE
     97                Window.SetWindowText(sCaption);
    6598        }
    6699
     
    111144                _W(m_EmailHyperStatic.SubclassWindow(GetDlgItem(IDC_ABOUT_EMAIL)));
    112145                #pragma endregion
    113                 #pragma region Caption
    114                 {
    115                         #if _TRACE || defined(_WIN64)
    116                                 CString sCaption;
    117                                 _W(GetWindowText(sCaption));
    118                                 sCaption.Append(_T(" // "));
    119                                 #if _DEVELOPMENT
    120                                         sCaption.Append(_T("Dev "));
    121                                 #endif // _DEVELOPMENT
    122                                 sCaption.Append(_VersionInfoHelper::GetVersionString(_VersionInfoHelper::GetFileVersion(_VersionInfoHelper::GetModulePath())));
    123                                 #if defined(_WIN64)
    124                                         sCaption.Append(_T(" (x64)"));
    125                                 #endif // defined(_WIN64)
    126                                 _W(SetWindowText(sCaption));
    127                         #endif // _TRACE || defined(_WIN64)
    128                 }
    129                 #pragma endregion
     146                UpdateCaption(*this);
    130147                #pragma region Window Position and Focus
    131148                _W(CenterWindow(GetParent()));
     
    134151                return FALSE;
    135152        }
    136         LRESULT OnDestroy() throw()
     153        LRESULT OnDestroy()
    137154        {
    138155                _W(m_TitleFont.DeleteObject());
     
    140157                return 0;
    141158        }
    142         LRESULT OnCommand(UINT, INT nIdentifier, HWND) throw()
     159        LRESULT OnCommand(UINT, INT nIdentifier, HWND)
    143160        {
    144161                _W(EndDialog(nIdentifier));
Note: See TracChangeset for help on using the changeset viewer.