extracted code calling {Ole|Co}[Un]Initialize() to wxOle[Un]Initialize() functions in oleutils.h
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32754 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
61ad154c01
commit
360ae33f43
@ -18,6 +18,8 @@
|
|||||||
|
|
||||||
#include "wx/defs.h"
|
#include "wx/defs.h"
|
||||||
|
|
||||||
|
#if wxUSE_OLE
|
||||||
|
|
||||||
// get IUnknown, REFIID &c
|
// get IUnknown, REFIID &c
|
||||||
#include <ole2.h>
|
#include <ole2.h>
|
||||||
|
|
||||||
@ -25,6 +27,39 @@
|
|||||||
// General purpose functions and macros
|
// General purpose functions and macros
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// initialize/cleanup OLE
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// call OleInitialize() or CoInitialize[Ex]() depending on the platform
|
||||||
|
//
|
||||||
|
// return true if ok, false otherwise
|
||||||
|
inline bool wxOleInitialize()
|
||||||
|
{
|
||||||
|
// we need to initialize OLE library
|
||||||
|
#ifdef __WXWINCE__
|
||||||
|
if ( FAILED(::CoInitializeEx(NULL, COINIT_MULTITHREADED)) )
|
||||||
|
#else
|
||||||
|
if ( FAILED(::OleInitialize(NULL)) )
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
wxLogError(_("Cannot initialize OLE"));
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void wxOleUninitialize()
|
||||||
|
{
|
||||||
|
#ifdef __WXWINCE__
|
||||||
|
::CoUninitialize();
|
||||||
|
#else
|
||||||
|
::OleUninitialize();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// misc helper functions/macros
|
// misc helper functions/macros
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
@ -205,6 +240,16 @@ BSTR wxConvertStringToOle(const wxString& str);
|
|||||||
// Convert string from BSTR to wxString
|
// Convert string from BSTR to wxString
|
||||||
wxString wxConvertStringFromOle(BSTR bStr);
|
wxString wxConvertStringFromOle(BSTR bStr);
|
||||||
|
|
||||||
|
#else // !wxUSE_OLE
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// stub functions to avoid #if wxUSE_OLE in the main code
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
inline bool wxOleInitialize() { return false; }
|
||||||
|
inline void wxOleUninitialize() { }
|
||||||
|
|
||||||
|
#endif // wxUSE_OLE/!wxUSE_OLE
|
||||||
|
|
||||||
#endif //_WX_OLEUTILS_H
|
#endif //_WX_OLEUTILS_H
|
||||||
|
|
||||||
|
@ -54,6 +54,7 @@
|
|||||||
#include "wx/dynlib.h"
|
#include "wx/dynlib.h"
|
||||||
|
|
||||||
#include "wx/msw/private.h"
|
#include "wx/msw/private.h"
|
||||||
|
#include "wx/msw/ole/oleutils.h"
|
||||||
|
|
||||||
#if wxUSE_TOOLTIPS
|
#if wxUSE_TOOLTIPS
|
||||||
#include "wx/tooltip.h"
|
#include "wx/tooltip.h"
|
||||||
@ -299,20 +300,7 @@ bool wxApp::Initialize(int& argc, wxChar **argv)
|
|||||||
InitCommonControls();
|
InitCommonControls();
|
||||||
#endif // __WIN95__
|
#endif // __WIN95__
|
||||||
|
|
||||||
#if wxUSE_OLE || wxUSE_DRAG_AND_DROP
|
wxOleInitialize();
|
||||||
|
|
||||||
#if wxUSE_OLE
|
|
||||||
// we need to initialize OLE library
|
|
||||||
#ifdef __WXWINCE__
|
|
||||||
if ( FAILED(::CoInitializeEx(NULL, COINIT_MULTITHREADED)) )
|
|
||||||
wxLogError(_("Cannot initialize OLE"));
|
|
||||||
#else
|
|
||||||
if ( FAILED(::OleInitialize(NULL)) )
|
|
||||||
wxLogError(_("Cannot initialize OLE"));
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // wxUSE_OLE
|
|
||||||
|
|
||||||
RegisterWindowClasses();
|
RegisterWindowClasses();
|
||||||
|
|
||||||
@ -489,13 +477,7 @@ void wxApp::CleanUp()
|
|||||||
wxCleanUpPenWin();
|
wxCleanUpPenWin();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if wxUSE_OLE
|
wxOleUninitialize();
|
||||||
#ifdef __WXWINCE__
|
|
||||||
::CoUninitialize();
|
|
||||||
#else
|
|
||||||
::OleUninitialize();
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// for an EXE the classes are unregistered when it terminates but DLL may
|
// for an EXE the classes are unregistered when it terminates but DLL may
|
||||||
// be loaded several times (load/unload/load) into the same process in
|
// be loaded several times (load/unload/load) into the same process in
|
||||||
|
Loading…
Reference in New Issue
Block a user