X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/47b378bd88260611387af8604a1c8f62355350ab..b02dd12239c8a59b9a545d9fcb04974f8ad02c6b:/include/wx/msw/ole/automtn.h diff --git a/include/wx/msw/ole/automtn.h b/include/wx/msw/ole/automtn.h index dea726397b..d38de41be7 100644 --- a/include/wx/msw/ole/automtn.h +++ b/include/wx/msw/ole/automtn.h @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: automtn.h +// Name: wx/msw/ole/automtn.h // Purpose: OLE automation utilities // Author: Julian Smart // Modified by: @@ -26,27 +26,43 @@ typedef unsigned short* WXBSTR; #undef GetObject #endif +// Flags used with wxAutomationObject::GetInstance() +enum wxAutomationInstanceFlags +{ + // Only use the existing instance, never create a new one. + wxAutomationInstance_UseExistingOnly = 0, + + // Create a new instance if there are no existing ones. + wxAutomationInstance_CreateIfNeeded = 1, + + // Do not log errors if we failed to get the existing instance because none + // is available. + wxAutomationInstance_SilentIfNone = 2 +}; + /* * wxAutomationObject * Wraps up an IDispatch pointer and invocation; does variant conversion. */ -class WXDLLEXPORT wxAutomationObject: public wxObject +class WXDLLIMPEXP_CORE wxAutomationObject: public wxObject { public: wxAutomationObject(WXIDISPATCH* dispatchPtr = NULL); virtual ~wxAutomationObject(); // Set/get dispatch pointer - inline void SetDispatchPtr(WXIDISPATCH* dispatchPtr) { m_dispatchPtr = dispatchPtr; } - inline WXIDISPATCH* GetDispatchPtr() const { return m_dispatchPtr; } + void SetDispatchPtr(WXIDISPATCH* dispatchPtr) { m_dispatchPtr = dispatchPtr; } + WXIDISPATCH* GetDispatchPtr() const { return m_dispatchPtr; } + bool IsOk() const { return m_dispatchPtr != NULL; } // Get a dispatch pointer from the current object associated - // with a class id, such as "Excel.Application" - bool GetInstance(const wxString& classId) const; + // with a ProgID, such as "Excel.Application" + bool GetInstance(const wxString& progId, + int flags = wxAutomationInstance_CreateIfNeeded) const; - // Get a dispatch pointer from a new instance of the the class - bool CreateInstance(const wxString& classId) const; + // Get a dispatch pointer from a new instance of the class + bool CreateInstance(const wxString& progId) const; // Low-level invocation function. Pass either an array of variants, // or an array of pointers to variants. @@ -64,7 +80,7 @@ public: const wxVariant& arg5 = wxNullVariant, const wxVariant& arg6 = wxNullVariant); // Get/Put property - wxVariant GetProperty(const wxString& property, int noArgs = 0, wxVariant args[] = (wxVariant*) NULL) const; + wxVariant GetProperty(const wxString& property, int noArgs = 0, wxVariant args[] = NULL) const; wxVariant GetPropertyArray(const wxString& property, int noArgs, const wxVariant **args) const; wxVariant GetProperty(const wxString& property, const wxVariant& arg1, const wxVariant& arg2 = wxNullVariant, @@ -87,13 +103,13 @@ public: // A way of initialising another wxAutomationObject with a dispatch object, // without having to deal with nasty IDispatch pointers. - bool GetObject(wxAutomationObject& obj, const wxString& property, int noArgs = 0, wxVariant args[] = (wxVariant*) NULL) const; + bool GetObject(wxAutomationObject& obj, const wxString& property, int noArgs = 0, wxVariant args[] = NULL) const; bool GetObject(wxAutomationObject& obj, const wxString& property, int noArgs, const wxVariant **args) const; public: WXIDISPATCH* m_dispatchPtr; - DECLARE_NO_COPY_CLASS(wxAutomationObject) + wxDECLARE_NO_COPY_CLASS(wxAutomationObject); }; #endif // wxUSE_OLE_AUTOMATION