]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/dcprint.cpp
Fixed wxPropertyGridManager::CreatePropertyGrid(), corrected documentation about...
[wxWidgets.git] / src / msw / dcprint.cpp
index 628e6e81b2217364fed0c46add04d756739c6603..dfa9d3e656c0f81799343daaa3321b98922b9a35 100644 (file)
@@ -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<DEVMODE *>(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();