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); }