summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
71f5b0e)
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
// return true if ok, false otherwise
inline bool wxOleInitialize()
{
// return true if ok, false otherwise
inline bool wxOleInitialize()
{
- // we need to initialize OLE library
- if ( FAILED(::CoInitializeEx(NULL, COINIT_MULTITHREADED)) )
+ hr = ::CoInitializeEx(NULL, COINIT_MULTITHREADED);
- if ( FAILED(::OleInitialize(NULL)) )
+ hr = ::OleInitialize(NULL);
+
+ // 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"));
{
wxLogError(_("Cannot initialize OLE"));