X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0c589ad076cb531a3ef7808aaedadc03c8286942..032af30f523adca8fb1606c92bc2975a1ae2cd1e:/src/msw/printwin.cpp diff --git a/src/msw/printwin.cpp b/src/msw/printwin.cpp index d09ddc2dd9..0f05f72618 100644 --- a/src/msw/printwin.cpp +++ b/src/msw/printwin.cpp @@ -87,7 +87,11 @@ wxWindowsPrinter::wxWindowsPrinter(wxPrintDialogData *data) wxWindowsPrinter::~wxWindowsPrinter() { + // avoids mingw warning about statement with no effect (FreeProcInstance + // doesn't do anything under Win32) +#ifndef __GNUWIN32__ FreeProcInstance((FARPROC) m_lpAbortProc); +#endif } bool wxWindowsPrinter::Print(wxWindow *parent, wxPrintout *printout, bool prompt) @@ -99,7 +103,11 @@ bool wxWindowsPrinter::Print(wxWindow *parent, wxPrintout *printout, bool prompt return FALSE; printout->SetIsPreview(FALSE); - printout->OnPreparePrinting(); + + // 4/9/99, JACS: this is a silly place to allow preparation, considering + // the DC and no parameters have been set in the printout object. + // Moved further down. + // printout->OnPreparePrinting(); // Get some parameters from the printout, if defined int fromPage, toPage; @@ -186,11 +194,17 @@ bool wxWindowsPrinter::Print(wxWindow *parent, wxPrintout *printout, bool prompt // Create an abort window wxBeginBusyCursor(); + printout->OnPreparePrinting(); + wxWindow *win = CreateAbortWindow(parent, printout); wxYield(); #if defined(__BORLANDC__) || defined(__GNUWIN32__) || defined(__SALFORDC__) || !defined(__WIN32__) +#ifdef STRICT + ::SetAbortProc((HDC) dc->GetHDC(), (ABORTPROC) m_lpAbortProc); +#else ::SetAbortProc((HDC) dc->GetHDC(), (FARPROC) m_lpAbortProc); +#endif #else ::SetAbortProc((HDC) dc->GetHDC(), (int (_stdcall *) // cast it to right type only if required @@ -207,7 +221,7 @@ bool wxWindowsPrinter::Print(wxWindow *parent, wxPrintout *printout, bool prompt if (!win) { wxEndBusyCursor(); - wxLogDebug("Could not create an abort dialog."); + wxLogDebug(wxT("Could not create an abort dialog.")); delete dc; }