X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/02b7b6b072762ff1e02950109a751815ac7429fd..8cee4a304f691adf6a8863abd303ea7ae34fefd5:/src/msw/clipbrd.cpp diff --git a/src/msw/clipbrd.cpp b/src/msw/clipbrd.cpp index cd848901bd..aa6edf6fad 100644 --- a/src/msw/clipbrd.cpp +++ b/src/msw/clipbrd.cpp @@ -17,10 +17,6 @@ // headers // --------------------------------------------------------------------------- -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) - #pragma implementation "clipbrd.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -28,10 +24,6 @@ #pragma hdrstop #endif -#ifndef WX_PRECOMP - #include "wx/setup.h" -#endif - #if wxUSE_CLIPBOARD #ifndef WX_PRECOMP @@ -54,9 +46,10 @@ #include #include "wx/msw/private.h" +#include "wx/msw/ole/oleutils.h" #if wxUSE_WXDIB -#include "wx/msw/dib.h" + #include "wx/msw/dib.h" #endif // wxDataObject is tied to OLE/drag and drop implementation, therefore so are @@ -534,6 +527,10 @@ IMPLEMENT_DYNAMIC_CLASS(wxClipboard, wxObject) wxClipboard::wxClipboard() { +#if wxUSE_OLE_CLIPBOARD + wxOleInitialize(); +#endif + m_clearOnExit = false; m_isOpened = false; } @@ -544,24 +541,30 @@ wxClipboard::~wxClipboard() { Clear(); } + +#if wxUSE_OLE_CLIPBOARD + wxOleUninitialize(); +#endif } void wxClipboard::Clear() { #if wxUSE_OLE_CLIPBOARD - if ( FAILED(OleSetClipboard(NULL)) ) + HRESULT hr = OleSetClipboard(NULL); + if ( FAILED(hr) ) { - wxLogLastError(wxT("OleSetClipboard(NULL)")); + wxLogApiError(wxT("OleSetClipboard(NULL)"), hr); } -#endif +#endif // wxUSE_OLE_CLIPBOARD } bool wxClipboard::Flush() { #if wxUSE_OLE_CLIPBOARD - if ( FAILED(OleFlushClipboard()) ) + HRESULT hr = OleFlushClipboard(); + if ( FAILED(hr) ) { - wxLogLastError(wxT("OleFlushClipboard")); + wxLogApiError(wxT("OleFlushClipboard"), hr); return false; }