X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e8b6d59d515f93852b4a793a9893f36df6a957e2..f196316400fd247a760b2ef77d5064b4e10e5471:/include/wx/msw/ole/automtn.h?ds=sidebyside diff --git a/include/wx/msw/ole/automtn.h b/include/wx/msw/ole/automtn.h index e43474d58a..dea726397b 100644 --- a/include/wx/msw/ole/automtn.h +++ b/include/wx/msw/ole/automtn.h @@ -6,111 +6,96 @@ // Created: 11/6/98 // RCS-ID: $Id$ // Copyright: (c) 1998, Julian Smart -// Licence: wxWindows Licence +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma interface "automtn.h" -#endif - #ifndef _WX_AUTOMTN_H_ #define _WX_AUTOMTN_H_ +#include "wx/defs.h" + +#if wxUSE_OLE_AUTOMATION + #include "wx/object.h" #include "wx/variant.h" typedef void WXIDISPATCH; typedef unsigned short* WXBSTR; +#ifdef GetObject +#undef GetObject +#endif + /* * wxAutomationObject * Wraps up an IDispatch pointer and invocation; does variant conversion. */ -class wxAutomationObject: public wxObject +class WXDLLEXPORT wxAutomationObject: public wxObject { public: wxAutomationObject(WXIDISPATCH* dispatchPtr = NULL); - ~wxAutomationObject(); + virtual ~wxAutomationObject(); - // Set/get dispatch pointer - inline void SetDispatchPtr(WXIDISPATCH* dispatchPtr) { m_dispatchPtr = dispatchPtr; }; + // Set/get dispatch pointer + inline void SetDispatchPtr(WXIDISPATCH* dispatchPtr) { m_dispatchPtr = dispatchPtr; } inline WXIDISPATCH* GetDispatchPtr() const { return m_dispatchPtr; } - // Get a dispatch pointer from the current object associated - // with a class id, such as "Excel.Application" - bool GetInstance(const wxString& classId) const; + // Get a dispatch pointer from the current object associated + // with a class id, such as "Excel.Application" + bool GetInstance(const wxString& classId) 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 the class + bool CreateInstance(const wxString& classId) const; - // Low-level invocation function. Pass either an array of variants, - // or an array of pointers to variants. + // Low-level invocation function. Pass either an array of variants, + // or an array of pointers to variants. bool Invoke(const wxString& member, int action, wxVariant& retValue, int noArgs, wxVariant args[], const wxVariant* ptrArgs[] = 0) const; - // Invoke a member function - wxVariant CallMethod(const wxString& method, int noArgs, wxVariant args[]); + // Invoke a member function + wxVariant CallMethod(const wxString& method, int noArgs, wxVariant args[]); + wxVariant CallMethodArray(const wxString& method, int noArgs, const wxVariant **args); - // Convenience function - wxVariant CallMethod(const wxString& method, - const wxVariant& arg1 = wxNullVariant, const wxVariant& arg2 = wxNullVariant, - const wxVariant& arg3 = wxNullVariant, const wxVariant& arg4 = wxNullVariant, - const wxVariant& arg5 = wxNullVariant, const wxVariant& arg6 = wxNullVariant); + // Convenience function + wxVariant CallMethod(const wxString& method, + const wxVariant& arg1 = wxNullVariant, const wxVariant& arg2 = wxNullVariant, + const wxVariant& arg3 = wxNullVariant, const wxVariant& arg4 = wxNullVariant, + const wxVariant& arg5 = wxNullVariant, const wxVariant& arg6 = wxNullVariant); - // Get/Put property + // Get/Put property wxVariant GetProperty(const wxString& property, int noArgs = 0, wxVariant args[] = (wxVariant*) NULL) const; - wxVariant GetProperty(const wxString& property, - const wxVariant& arg1, const wxVariant& arg2 = wxNullVariant, - const wxVariant& arg3 = wxNullVariant, const wxVariant& arg4 = wxNullVariant, - const wxVariant& arg5 = wxNullVariant, const wxVariant& arg6 = wxNullVariant); + wxVariant GetPropertyArray(const wxString& property, int noArgs, const wxVariant **args) const; + wxVariant GetProperty(const wxString& property, + const wxVariant& arg1, const wxVariant& arg2 = wxNullVariant, + const wxVariant& arg3 = wxNullVariant, const wxVariant& arg4 = wxNullVariant, + const wxVariant& arg5 = wxNullVariant, const wxVariant& arg6 = wxNullVariant); + bool PutPropertyArray(const wxString& property, int noArgs, const wxVariant **args); bool PutProperty(const wxString& property, int noArgs, wxVariant args[]) ; - bool PutProperty(const wxString& property, - const wxVariant& arg1, const wxVariant& arg2 = wxNullVariant, - const wxVariant& arg3 = wxNullVariant, const wxVariant& arg4 = wxNullVariant, - const wxVariant& arg5 = wxNullVariant, const wxVariant& arg6 = wxNullVariant); - - // Uses DISPATCH_PROPERTYGET - // and returns a dispatch pointer. The calling code should call Release - // on the pointer, though this could be implicit by constructing an wxAutomationObject - // with it and letting the destructor call Release. + bool PutProperty(const wxString& property, + const wxVariant& arg1, const wxVariant& arg2 = wxNullVariant, + const wxVariant& arg3 = wxNullVariant, const wxVariant& arg4 = wxNullVariant, + const wxVariant& arg5 = wxNullVariant, const wxVariant& arg6 = wxNullVariant); + + // Uses DISPATCH_PROPERTYGET + // and returns a dispatch pointer. The calling code should call Release + // on the pointer, though this could be implicit by constructing an wxAutomationObject + // with it and letting the destructor call Release. WXIDISPATCH* GetDispatchProperty(const wxString& property, int noArgs, wxVariant args[]) const; + WXIDISPATCH* GetDispatchProperty(const wxString& property, int noArgs, const wxVariant **args) const; - // 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; - - // Convert variants - static bool ConvertVariantToOle(const wxVariant& variant, VARIANTARG& oleVariant) ; - static bool ConvertOleToVariant(const VARIANTARG& oleVariant, wxVariant& variant) ; + // 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, const wxVariant **args) const; public: WXIDISPATCH* m_dispatchPtr; -}; - -// wrapper around BSTR type (by Vadim Zeitlin) -class BasicString -{ -public: - // ctors & dtor - BasicString(const char *sz); - ~BasicString(); - - // accessors - // just get the string - operator BSTR() const { return m_wzBuf; } - // retrieve a copy of our string - caller must SysFreeString() it later! - BSTR Get() const { return SysAllocString(m_wzBuf); } - -private: - // @@@ not implemented (but should be) - BasicString(const BasicString&); - BasicString& operator=(const BasicString&); - - OLECHAR *m_wzBuf; // actual string + DECLARE_NO_COPY_CLASS(wxAutomationObject) }; -#endif - // _WX_AUTOMTN_H_ +#endif // wxUSE_OLE_AUTOMATION + +#endif // _WX_AUTOMTN_H_