From d19032779296481ece089c77a2c180a4f383b788 Mon Sep 17 00:00:00 2001 From: George Hazan <ghazan@miranda.im> Date: Tue, 10 May 2022 20:33:37 +0300 Subject: =?UTF-8?q?=D1=84=D0=B8=D0=BA=D1=81=D1=8B=20=D0=BF=D0=B5=D1=80?= =?UTF-8?q?=D0=B5=D0=B4=20=D1=80=D0=B0=D1=81=D1=82=D0=B0=D1=81=D0=BA=D0=B8?= =?UTF-8?q?=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=D0=BC=20=D0=BD=D0=B0=20=D1=87?= =?UTF-8?q?=D0=B0=D1=81=D1=82=D0=B8=20=D1=86=D0=B8=D0=BA=D0=BB=D0=B0=20?= =?UTF-8?q?=D1=81=D0=BE=D0=BE=D0=B1=D1=89=D0=B5=D0=BD=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/mir_app/mir_app.mk | 7 ++++++- src/mir_app/mir_app.project | 1 + src/mir_app/src/menu_utils.cpp | 12 ++++++++++++ src/mir_app/src/miranda.cpp | 14 +++----------- 4 files changed, 22 insertions(+), 12 deletions(-) (limited to 'src/mir_app') diff --git a/src/mir_app/mir_app.mk b/src/mir_app/mir_app.mk index fa8afdc03a..5163e32169 100644 --- a/src/mir_app/mir_app.mk +++ b/src/mir_app/mir_app.mk @@ -62,7 +62,7 @@ AS := as ## User defined environment variables ## CodeLiteDir:=/usr/share/codelite -Objects0=$(IntermediateDirectory)/src_database.cpp$(ObjectSuffix) $(IntermediateDirectory)/src_db_intf.cpp$(ObjectSuffix) $(IntermediateDirectory)/src_db_events.cpp$(ObjectSuffix) $(IntermediateDirectory)/src_contact.cpp$(ObjectSuffix) $(IntermediateDirectory)/src_CMPluginBase.cpp$(ObjectSuffix) $(IntermediateDirectory)/src_addcontact.cpp$(ObjectSuffix) $(IntermediateDirectory)/src_stdafx.cxx$(ObjectSuffix) +Objects0=$(IntermediateDirectory)/src_miranda.cpp$(ObjectSuffix) $(IntermediateDirectory)/src_database.cpp$(ObjectSuffix) $(IntermediateDirectory)/src_db_intf.cpp$(ObjectSuffix) $(IntermediateDirectory)/src_db_events.cpp$(ObjectSuffix) $(IntermediateDirectory)/src_contact.cpp$(ObjectSuffix) $(IntermediateDirectory)/src_CMPluginBase.cpp$(ObjectSuffix) $(IntermediateDirectory)/src_addcontact.cpp$(ObjectSuffix) $(IntermediateDirectory)/src_stdafx.cxx$(ObjectSuffix) @@ -94,6 +94,11 @@ PreBuild: ## ## Objects ## +$(IntermediateDirectory)/src_miranda.cpp$(ObjectSuffix): src/miranda.cpp + $(CXX) $(IncludePCH) $(SourceSwitch) "/home/ghazan/miranda-ng/src/mir_app/src/miranda.cpp" $(CXXFLAGS) $(ObjectSwitch)$(IntermediateDirectory)/src_miranda.cpp$(ObjectSuffix) $(IncludePath) +$(IntermediateDirectory)/src_miranda.cpp$(PreprocessSuffix): src/miranda.cpp + $(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) $(PreprocessOnlySwitch) $(OutputSwitch) $(IntermediateDirectory)/src_miranda.cpp$(PreprocessSuffix) src/miranda.cpp + $(IntermediateDirectory)/src_database.cpp$(ObjectSuffix): src/database.cpp $(CXX) $(IncludePCH) $(SourceSwitch) "/home/ghazan/miranda-ng/src/mir_app/src/database.cpp" $(CXXFLAGS) $(ObjectSwitch)$(IntermediateDirectory)/src_database.cpp$(ObjectSuffix) $(IncludePath) $(IntermediateDirectory)/src_database.cpp$(PreprocessSuffix): src/database.cpp diff --git a/src/mir_app/mir_app.project b/src/mir_app/mir_app.project index 0d7dee9b74..121dc016a2 100644 --- a/src/mir_app/mir_app.project +++ b/src/mir_app/mir_app.project @@ -3,6 +3,7 @@ <Description/> <Dependencies/> <VirtualDirectory Name="src"> + <File Name="src/miranda.cpp"/> <File Name="src/database.cpp"/> <File Name="src/db_intf.cpp"/> <File Name="src/db_events.cpp"/> diff --git a/src/mir_app/src/menu_utils.cpp b/src/mir_app/src/menu_utils.cpp index 395a19fe71..0a619a6874 100644 --- a/src/mir_app/src/menu_utils.cpp +++ b/src/mir_app/src/menu_utils.cpp @@ -83,8 +83,20 @@ LPTSTR GetMenuItemText(TMO_IntMenuItem *pimi) /////////////////////////////////////////////////////////////////////////////// +typedef HANDLE(STDAPICALLTYPE* pfnBeginBufferedPaint)(HDC, RECT*, BP_BUFFERFORMAT, BP_PAINTPARAMS*, HDC*); +static pfnBeginBufferedPaint beginBufferedPaint; + +typedef HRESULT(STDAPICALLTYPE* pfnEndBufferedPaint)(HANDLE, BOOL); +static pfnEndBufferedPaint endBufferedPaint; + HBITMAP ConvertIconToBitmap(HIMAGELIST hIml, int iconId) { + if (!beginBufferedPaint) { + HMODULE hThemeAPI = GetModuleHandleA("uxtheme.dll"); + beginBufferedPaint = (pfnBeginBufferedPaint)GetProcAddress(hThemeAPI, "BeginBufferedPaint"); + endBufferedPaint = (pfnEndBufferedPaint)GetProcAddress(hThemeAPI, "EndBufferedPaint"); + } + BITMAPINFO bmi = { 0 }; bmi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER); bmi.bmiHeader.biPlanes = 1; diff --git a/src/mir_app/src/miranda.cpp b/src/mir_app/src/miranda.cpp index 7c6219aa17..ab95ae30a2 100644 --- a/src/mir_app/src/miranda.cpp +++ b/src/mir_app/src/miranda.cpp @@ -42,12 +42,6 @@ pfnBufferedPaintInit bufferedPaintInit; typedef HRESULT(STDAPICALLTYPE* pfnBufferedPaintUninit)(void); pfnBufferedPaintUninit bufferedPaintUninit; -typedef HANDLE(STDAPICALLTYPE* pfnBeginBufferedPaint)(HDC, RECT*, BP_BUFFERFORMAT, BP_PAINTPARAMS*, HDC*); -pfnBeginBufferedPaint beginBufferedPaint; - -typedef HRESULT(STDAPICALLTYPE* pfnEndBufferedPaint)(HANDLE, BOOL); -pfnEndBufferedPaint endBufferedPaint; - HANDLE hOkToExitEvent, hModulesLoadedEvent; HANDLE hShutdownEvent, hPreShutdownEvent; uint32_t hMainThreadId; @@ -307,8 +301,6 @@ int WINAPI mir_main(LPTSTR cmdLine) if (hThemeAPI) { bufferedPaintInit = (pfnBufferedPaintInit)GetProcAddress(hThemeAPI, "BufferedPaintInit"); bufferedPaintUninit = (pfnBufferedPaintUninit)GetProcAddress(hThemeAPI, "BufferedPaintUninit"); - beginBufferedPaint = (pfnBeginBufferedPaint)GetProcAddress(hThemeAPI, "BeginBufferedPaint"); - endBufferedPaint = (pfnEndBufferedPaint)GetProcAddress(hThemeAPI, "EndBufferedPaint"); } } else hThemeAPI = nullptr; @@ -485,9 +477,9 @@ MIR_APP_DLL(void) Miranda_GetVersionText(char *pDest, size_t cbSize) UINT blockSize; VerQueryValue(pVerInfo, L"\\StringFileInfo\\000004b0\\ProductVersion", (LPVOID*)&productVersion, &blockSize); strncpy_s(pDest, cbSize, _T2A(productVersion), _TRUNCATE); -#if defined(_WIN64) - strcat_s(pDest, cbSize, " x64"); -#endif + #if defined(_WIN64) + strcat_s(pDest, cbSize, " x64"); + #endif } MIR_APP_DLL(CDlgBase *) Miranda_GetSystemWindow() -- cgit v1.2.3