+class wxIEContainer : public wxActiveXContainer
+{
+public:
+ wxIEContainer(wxWindow *parent, REFIID iid, IUnknown *pUnk, DocHostUIHandler* uiHandler = NULL);
+ virtual ~wxIEContainer();
+ virtual bool QueryClientSiteInterface(REFIID iid, void **_interface, const char *&desc);
+private:
+ DocHostUIHandler* m_uiHandler;
+};
+
+class DocHostUIHandler : public wxIDocHostUIHandler
+{
+public:
+ DocHostUIHandler(wxWebView* browser) { m_browser = browser; }
+ virtual ~DocHostUIHandler() {}
+
+ virtual HRESULT wxSTDCALL ShowContextMenu(DWORD dwID, POINT *ppt,
+ IUnknown *pcmdtReserved,
+ IDispatch *pdispReserved);
+
+ virtual HRESULT wxSTDCALL GetHostInfo(DOCHOSTUIINFO *pInfo);
+
+ virtual HRESULT wxSTDCALL ShowUI(DWORD dwID,
+ IOleInPlaceActiveObject *pActiveObject,
+ IOleCommandTarget *pCommandTarget,
+ IOleInPlaceFrame *pFrame,
+ IOleInPlaceUIWindow *pDoc);
+
+ virtual HRESULT wxSTDCALL HideUI(void);
+
+ virtual HRESULT wxSTDCALL UpdateUI(void);
+
+ virtual HRESULT wxSTDCALL EnableModeless(BOOL fEnable);
+
+ virtual HRESULT wxSTDCALL OnDocWindowActivate(BOOL fActivate);
+
+ virtual HRESULT wxSTDCALL OnFrameWindowActivate(BOOL fActivate);
+
+ virtual HRESULT wxSTDCALL ResizeBorder(LPCRECT prcBorder,
+ IOleInPlaceUIWindow *pUIWindow,
+ BOOL fRameWindow);
+
+ virtual HRESULT wxSTDCALL TranslateAccelerator(LPMSG lpMsg,
+ const GUID *pguidCmdGroup,
+ DWORD nCmdID);
+
+ virtual HRESULT wxSTDCALL GetOptionKeyPath(LPOLESTR *pchKey,
+ DWORD dw);
+
+ virtual HRESULT wxSTDCALL GetDropTarget(IDropTarget *pDropTarget,
+ IDropTarget **ppDropTarget);
+
+ virtual HRESULT wxSTDCALL GetExternal(IDispatch **ppDispatch);
+
+ virtual HRESULT wxSTDCALL TranslateUrl(DWORD dwTranslate,
+ OLECHAR *pchURLIn,
+ OLECHAR **ppchURLOut);
+
+ virtual HRESULT wxSTDCALL FilterDataObject(IDataObject *pDO,
+ IDataObject **ppDORet);
+ //IUnknown
+ DECLARE_IUNKNOWN_METHODS;
+
+private:
+ wxWebView* m_browser;
+};
+
+class wxFindPointers
+{
+public:
+ wxFindPointers(wxIMarkupPointer *ptrBegin, wxIMarkupPointer *ptrEnd)
+ {
+ begin = ptrBegin;
+ end = ptrEnd;
+ }
+ //The two markup pointers.
+ wxIMarkupPointer *begin, *end;
+};