+
+// 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 // wxUSE_ACTIVEX
+