Don't handle RPC_E_CHANGED_MODE return of OleInitialize() as an error.

This error means that OLE had already been initialized so from our point of
view it counts as a success.

Closes #12516.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65914 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2010-10-24 23:03:31 +00:00
parent 71f5b0e7da
commit 35f82b01cf

View File

@@ -36,12 +36,19 @@
// return true if ok, false otherwise
inline bool wxOleInitialize()
{
// we need to initialize OLE library
HRESULT
#ifdef __WXWINCE__
if ( FAILED(::CoInitializeEx(NULL, COINIT_MULTITHREADED)) )
hr = ::CoInitializeEx(NULL, COINIT_MULTITHREADED);
#else
if ( FAILED(::OleInitialize(NULL)) )
hr = ::OleInitialize(NULL);
#endif
// RPC_E_CHANGED_MODE indicates that OLE had been already initialized
// before, albeit with different mode. Don't consider it to be an error as
// we don't actually care ourselves about the mode used so this allows the
// main application to call OleInitialize() on its own before we do if it
// needs non-default mode.
if ( hr != RPC_E_CHANGED_MODE && FAILED(hr) )
{
wxLogError(_("Cannot initialize OLE"));