X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/bf354396f61a2e1bd5544b67ecde341b6ff9bf35..2ea6c1f77a260bef70d4a699df6c1d5ad1487f6a:/include/wx/msw/ole/activex.h?ds=sidebyside diff --git a/include/wx/msw/ole/activex.h b/include/wx/msw/ole/activex.h index 0c9477e8fe..31a9eb2a4c 100644 --- a/include/wx/msw/ole/activex.h +++ b/include/wx/msw/ole/activex.h @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////// -// Name: wx/activex.h +// Name: wx/msw/ole/activex.h // Purpose: wxActiveXContainer class // Author: Ryan Norton // Modified by: @@ -42,13 +42,18 @@ // WX includes //--------------------------------------------------------------------------- #include "wx/window.h" +#include "wx/variant.h" //--------------------------------------------------------------------------- // MSW COM includes //--------------------------------------------------------------------------- #include #include + +#if !defined(__WXWINCE__) || defined(__WINCE_STANDARDSDK__) #include +#endif + #include // @@ -146,10 +151,6 @@ WX_DECLARE_AUTOOLE(wxAutoIOleInPlaceObject, IOleInPlaceObject) WX_DECLARE_AUTOOLE(wxAutoIOleInPlaceActiveObject, IOleInPlaceActiveObject) WX_DECLARE_AUTOOLE(wxAutoIOleDocumentView, IOleDocumentView) WX_DECLARE_AUTOOLE(wxAutoIViewObject, IViewObject) -WX_DECLARE_AUTOOLE(wxAutoIOleInPlaceSite, IOleInPlaceSite) -WX_DECLARE_AUTOOLE(wxAutoIOleDocument, IOleDocument) -WX_DECLARE_AUTOOLE(wxAutoIPersistStreamInit, IPersistStreamInit) -WX_DECLARE_AUTOOLE(wxAutoIAdviseSink, IAdviseSink) class wxActiveXContainer : public wxWindow { @@ -164,6 +165,7 @@ public: protected: friend class FrameSite; + friend class wxActiveXEvents; wxAutoIDispatch m_Dispatch; wxAutoIOleClientSite m_clientSite; @@ -181,5 +183,49 @@ protected: void CreateActiveX(REFIID, IUnknown*); }; -#endif // _WX_MSW_OLE_ACTIVEXCONTAINER_H_ +// Events +class wxActiveXEvent : public wxCommandEvent +{ +private: + friend class wxActiveXEvents; + wxVariant m_params; + DISPID m_dispid; + +public: + virtual wxEvent *Clone() const + { return new wxActiveXEvent(*this); } + + size_t ParamCount() const + { return m_params.GetCount(); } + + wxString ParamType(size_t idx) const + { + wxASSERT(idx < m_params.GetCount()); + return m_params[idx].GetType(); + } + + wxString ParamName(size_t idx) const + { + wxASSERT(idx < m_params.GetCount()); + return m_params[idx].GetName(); + } + + wxVariant& operator[] (size_t idx) + { + wxASSERT(idx < ParamCount()); + return m_params[idx]; + } + + DISPID GetDispatchId() const + { return m_dispid; } +}; + +#define wxACTIVEX_ID 14001 +DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_MEDIA, wxEVT_ACTIVEX, wxACTIVEX_ID) +typedef void (wxEvtHandler::*wxActiveXEventFunction)(wxActiveXEvent&); +#define EVT_ACTIVEX(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_ACTIVEX, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxActiveXEventFunction) & fn, (wxObject *) NULL ), +#define wxActiveXEventHandler(func) \ + (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxActiveXEventFunction, &func) + +#endif // _WX_MSW_OLE_ACTIVEXCONTAINER_H_