X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/888dde65f43d5f57e8fb2028b27191cca1741403..591cc82deb5bc6dd0af6047ecfa7ce7cf4f8d859:/src/msw/dcprint.cpp?ds=sidebyside diff --git a/src/msw/dcprint.cpp b/src/msw/dcprint.cpp index 628e6e81b2..dfa9d3e656 100644 --- a/src/msw/dcprint.cpp +++ b/src/msw/dcprint.cpp @@ -228,7 +228,7 @@ void wxPrinterDCImpl::EndPage() } -wxRect wxPrinterDCImpl::GetPaperRect() +wxRect wxPrinterDCImpl::GetPaperRect() const { if (!IsOk()) return wxRect(0, 0, 0, 0); @@ -327,17 +327,21 @@ WXHDC WXDLLEXPORT wxGetPrinterDC(const wxPrintData& printDataConst) } - HGLOBAL hDevMode = (HGLOBAL)(DWORD) data->GetDevMode(); + GlobalPtrLock lockDevMode; + const HGLOBAL devMode = data->GetDevMode(); + if ( devMode ) + lockDevMode.Init(devMode); - DEVMODE *lpDevMode = hDevMode ? (DEVMODE *)::GlobalLock(hDevMode) : NULL; - - HDC hDC = ::CreateDC(NULL, deviceName.wx_str(), NULL, lpDevMode); + HDC hDC = ::CreateDC + ( + NULL, // no driver name as we use device name + deviceName.wx_str(), + NULL, // unused + static_cast(lockDevMode.Get()) + ); if ( !hDC ) wxLogLastError(_T("CreateDC(printer)")); - if ( lpDevMode ) - ::GlobalUnlock(hDevMode); - return (WXHDC) hDC; #endif // PostScript/Windows printing } @@ -418,7 +422,7 @@ bool wxPrinterDCImpl::DoBlit(wxCoord xdest, wxCoord ydest, wxCoord width, wxCoord height, wxDC *source, wxCoord WXUNUSED(xsrc), wxCoord WXUNUSED(ysrc), - int WXUNUSED(rop), bool useMask, + wxRasterOperationMode WXUNUSED(rop), bool useMask, wxCoord WXUNUSED(xsrcMask), wxCoord WXUNUSED(ysrcMask)) { wxDCImpl *impl = source->GetImpl();