From e0475c6e9c063e821f179d5246ecb240e1e2f5d2 Mon Sep 17 00:00:00 2001 From: Katayama Hirofumi MZ Date: Sat, 28 Dec 2019 22:30:21 +0900 Subject: [PATCH] [0.4.13][MSPAINT] Revert LoadDIBFromFile for workaround (#2186) CORE-16566 cherry picked from commit 0.4.14-dev-691-g be40a0e29611fb45e4b314c81be373774808b1c4 --- base/applications/mspaint/CMakeLists.txt | 2 +- base/applications/mspaint/dib.cpp | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/base/applications/mspaint/CMakeLists.txt b/base/applications/mspaint/CMakeLists.txt index b59a2ee4193..b07e10d4ce0 100644 --- a/base/applications/mspaint/CMakeLists.txt +++ b/base/applications/mspaint/CMakeLists.txt @@ -34,6 +34,6 @@ add_rc_deps(rsrc.rc ${mspaint_rc_deps}) add_executable(mspaint ${SOURCE} rsrc.rc) set_module_type(mspaint win32gui UNICODE) target_link_libraries(mspaint uuid) -add_importlibs(mspaint hhctrl comdlg32 shell32 user32 gdi32 gdiplus advapi32 comctl32 msvcrt kernel32 rpcrt4 shlwapi) +add_importlibs(mspaint hhctrl comdlg32 shell32 user32 gdi32 advapi32 comctl32 msvcrt kernel32 rpcrt4 shlwapi) add_pch(mspaint precomp.h SOURCE) add_cd_file(TARGET mspaint DESTINATION reactos/system32 FOR all) diff --git a/base/applications/mspaint/dib.cpp b/base/applications/mspaint/dib.cpp index 8dc5453f5b6..dbe9003d667 100644 --- a/base/applications/mspaint/dib.cpp +++ b/base/applications/mspaint/dib.cpp @@ -83,8 +83,9 @@ void ShowFileLoadError(LPCTSTR name) void LoadDIBFromFile(HBITMAP * hBitmap, LPCTSTR name, LPSYSTEMTIME time, int *size, int *hRes, int *vRes) { - using namespace Gdiplus; - Bitmap img(CStringW(name), FALSE); // always use WCHAR string + CImage img; + img.Load(name); + *hBitmap = img.Detach(); if (!hBitmap) { @@ -92,8 +93,6 @@ LoadDIBFromFile(HBITMAP * hBitmap, LPCTSTR name, LPSYSTEMTIME time, int *size, i return; } - img.GetHBITMAP(Color(255, 255, 255), hBitmap); - // update time and size HANDLE hFile = CreateFile(name, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_FLAG_SEQUENTIAL_SCAN, NULL); @@ -112,9 +111,10 @@ LoadDIBFromFile(HBITMAP * hBitmap, LPCTSTR name, LPSYSTEMTIME time, int *size, i if (size) *size = GetFileSize(hFile, NULL); - // update hRes and vRes - *hRes = (int) (img.GetHorizontalResolution() * 1000 / 25.4); - *vRes = (int) (img.GetVerticalResolution() * 1000 / 25.4); + HDC hScreenDC = GetDC(NULL); + *hRes = (int)(GetDeviceCaps(hScreenDC, LOGPIXELSX) * 1000 / 25.4); + *vRes = (int)(GetDeviceCaps(hScreenDC, LOGPIXELSY) * 1000 / 25.4); + ReleaseDC(NULL, hScreenDC); CloseHandle(hFile); }