]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/ole/automtn.cpp
Output the extracted number from wxString::ToXXX() even if it returns false.
[wxWidgets.git] / src / msw / ole / automtn.cpp
index b99c9c8d92a8bc3efd2b3386305bf457e938c774..31348b791a723686905918a67a14491bf59641cf 100644 (file)
@@ -159,7 +159,7 @@ bool wxAutomationObject::Invoke(const wxString& member, int action,
     {
         namedArgCount = 1;
         dispIds[1] = DISPID_PROPERTYPUT;
-        vReturnPtr = (VARIANTARG*) NULL;
+        vReturnPtr = NULL;
     }
 
     // Convert the wxVariants to VARIANTARGs
@@ -220,7 +220,7 @@ bool wxAutomationObject::Invoke(const wxString& member, int action,
             // Mustn't release the dispatch pointer
             if (vReturn.vt == VT_DISPATCH)
             {
-                vReturn.pdispVal = (IDispatch*) NULL;
+                vReturn.pdispVal = NULL;
             }
             ReleaseVariant(& vReturn);
         }
@@ -440,7 +440,7 @@ WXIDISPATCH* wxAutomationObject::GetDispatchProperty(const wxString& property, i
         }
     }
 
-    return (WXIDISPATCH*) NULL;
+    return NULL;
 }
 
 // Uses DISPATCH_PROPERTYGET
@@ -458,7 +458,7 @@ WXIDISPATCH* wxAutomationObject::GetDispatchProperty(const wxString& property, i
         }
     }
 
-    return (WXIDISPATCH*) NULL;
+    return NULL;
 }
 
 
@@ -538,8 +538,13 @@ bool wxAutomationObject::CreateInstance(const wxString& classId) const
         return false;
     }
 
-    // start a new copy of Excel, grab the IDispatch interface
-    if (FAILED(CoCreateInstance(clsId, NULL, CLSCTX_ALL, IID_IDispatch, (void**)&m_dispatchPtr)))
+    // get the server IDispatch interface
+    //
+    // NB: using CLSCTX_INPROC_HANDLER results in failure when getting
+    //     Automation interface for Microsoft Office applications so don't use
+    //     CLSCTX_ALL which includes it
+    if (FAILED(CoCreateInstance(clsId, NULL, CLSCTX_SERVER, IID_IDispatch,
+                                (void**)&m_dispatchPtr)))
     {
         wxLogWarning(wxT("Cannot start an instance of this class."));
         return false;
@@ -726,7 +731,7 @@ wxConvertOleToVariant(const VARIANTARG& oleVariant, wxVariant& variant)
                 break;
 
             default:
-                wxLogDebug(_T("unhandled VT_ARRAY type %x in wxConvertOleToVariant"),
+                wxLogDebug(wxT("unhandled VT_ARRAY type %x in wxConvertOleToVariant"),
                            oleVariant.vt & VT_TYPEMASK);
                 variant = wxVariant();
                 ok = false;