diff --git a/reactos/base/applications/mspaint/CMakeLists.txt b/reactos/base/applications/mspaint/CMakeLists.txt index 68bc5ed3367..3f112003c01 100644 --- a/reactos/base/applications/mspaint/CMakeLists.txt +++ b/reactos/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 atlnew uuid) -add_importlibs(mspaint hhctrl comdlg32 shell32 user32 gdi32 advapi32 comctl32 msvcrt kernel32 rpcrt4 shlwapi) +add_importlibs(mspaint hhctrl comdlg32 shell32 user32 gdi32 gdiplus 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/reactos/base/applications/mspaint/dib.cpp b/reactos/base/applications/mspaint/dib.cpp index de98fee2905..8dc5453f5b6 100644 --- a/reactos/base/applications/mspaint/dib.cpp +++ b/reactos/base/applications/mspaint/dib.cpp @@ -83,8 +83,8 @@ void ShowFileLoadError(LPCTSTR name) void LoadDIBFromFile(HBITMAP * hBitmap, LPCTSTR name, LPSYSTEMTIME time, int *size, int *hRes, int *vRes) { - CImage img; - img.Load(name); // TODO: error handling + using namespace Gdiplus; + Bitmap img(CStringW(name), FALSE); // always use WCHAR string if (!hBitmap) { @@ -92,7 +92,7 @@ LoadDIBFromFile(HBITMAP * hBitmap, LPCTSTR name, LPSYSTEMTIME time, int *size, i return; } - *hBitmap = img.Detach(); + img.GetHBITMAP(Color(255, 255, 255), hBitmap); // update time and size HANDLE hFile = @@ -112,7 +112,9 @@ LoadDIBFromFile(HBITMAP * hBitmap, LPCTSTR name, LPSYSTEMTIME time, int *size, i if (size) *size = GetFileSize(hFile, NULL); - // TODO: update hRes and vRes + // update hRes and vRes + *hRes = (int) (img.GetHorizontalResolution() * 1000 / 25.4); + *vRes = (int) (img.GetVerticalResolution() * 1000 / 25.4); CloseHandle(hFile); }