X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/082e5b985677852db873ed956da8fad5ae5abc4b..1680c3561bc4f44c63a026e0d1a5324a39336156:/src/msw/printdlg.cpp diff --git a/src/msw/printdlg.cpp b/src/msw/printdlg.cpp index b9b89b6210..205009999b 100644 --- a/src/msw/printdlg.cpp +++ b/src/msw/printdlg.cpp @@ -42,6 +42,53 @@ #include +// smart pointer like class using OpenPrinter and ClosePrinter +class WinPrinter +{ +public: + // default ctor + WinPrinter() + { + m_hPrinter = (HANDLE)NULL; + } + + WinPrinter( const wxString& printerName ) + { + Open( printerName ); + } + + ~WinPrinter() + { + Close(); + } + + BOOL Open( const wxString& printerName, LPPRINTER_DEFAULTS pDefault=(LPPRINTER_DEFAULTS)NULL ) + { + Close(); + return OpenPrinter( (LPTSTR)printerName.wx_str(), &m_hPrinter, pDefault ); + } + + BOOL Close() + { + BOOL result = TRUE; + if( m_hPrinter ) + { + result = ClosePrinter( m_hPrinter ); + m_hPrinter = (HANDLE)NULL; + } + return result; + } + + operator HANDLE() { return m_hPrinter; } + operator bool() { return m_hPrinter != (HANDLE)NULL; } + +private: + HANDLE m_hPrinter; + + wxDECLARE_NO_COPY_CLASS(WinPrinter); +}; + + //---------------------------------------------------------------------------- // wxWindowsPrintNativeData //---------------------------------------------------------------------------- @@ -154,7 +201,7 @@ bool wxWindowsPrintNativeData::TransferTo( wxPrintData &data ) //// Orientation if (devMode->dmFields & DM_ORIENTATION) - data.SetOrientation( devMode->dmOrientation ); + data.SetOrientation( (wxPrintOrientation)devMode->dmOrientation ); //// Collation if (devMode->dmFields & DM_COLLATE)