]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msw/ole/oleutils.h
fixing warning and compile error against 10.4
[wxWidgets.git] / include / wx / msw / ole / oleutils.h
index a9891f8fca6fd83fca7db0615002fa086275bb6b..655c938b6863f67d19f8b06c9617d6a11f668fd9 100644 (file)
 // 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"));