+// events
+class wxActiveXEvent : public wxCommandEvent
+{
+private:
+ friend class wxActiveXEvents;
+
+ wxVariant m_params;
+
+public:
+
+ virtual wxEvent *Clone() const { return new wxActiveXEvent(*this); }
+
+ wxString EventName();
+ int ParamCount() const;
+ wxString ParamType(int idx);
+ wxString ParamName(int idx);
+ wxVariant operator[] (int idx) const;
+ wxVariant& operator[] (int idx);
+ wxVariant operator[] (wxString name) const;
+ wxVariant& operator[] (wxString name);
+};
+
+const wxEventType& RegisterActiveXEvent(const wxChar *eventName);
+const wxEventType& RegisterActiveXEvent(DISPID event);
+
+typedef void (wxEvtHandler::*wxActiveXEventFunction)(wxActiveXEvent&);
+
+#define EVT_ACTIVEX(id, eventName, fn) DECLARE_EVENT_TABLE_ENTRY(RegisterActiveXEvent(wxT(eventName)), id, -1, (wxObjectEventFunction) (wxEventFunction) wxStaticCastEvent( wxActiveXEventFunction, & fn ), (wxObject *) NULL ),
+#define EVT_ACTIVEX_DISPID(id, eventDispId, fn) DECLARE_EVENT_TABLE_ENTRY(RegisterActiveXEvent(eventDispId), id, -1, (wxObjectEventFunction) (wxEventFunction) wxStaticCastEvent( wxActiveXEventFunction, & fn ), (wxObject *) NULL ),
+
+//util
+bool MSWVariantToVariant(VARIANTARG& va, wxVariant& vx);
+bool VariantToMSWVariant(wxVariant& vx, VARIANTARG& va);
+