Add wxActiveXContainer::QueryClientSiteInterface to allow customisation of ActiveX controls.
Closes #13784. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70361 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -169,6 +169,7 @@ public:
|
|||||||
void OnSetFocus(wxFocusEvent&);
|
void OnSetFocus(wxFocusEvent&);
|
||||||
void OnKillFocus(wxFocusEvent&);
|
void OnKillFocus(wxFocusEvent&);
|
||||||
virtual bool MSWTranslateMessage(WXMSG* pMsg);
|
virtual bool MSWTranslateMessage(WXMSG* pMsg);
|
||||||
|
virtual bool QueryClientSiteInterface(REFIID iid, void **_interface, const char *&desc);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
friend class FrameSite;
|
friend class FrameSite;
|
||||||
|
@@ -267,7 +267,7 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
wxIMPLEMENT_DYNAMIC_CLASS(wxPDFMediaBackend, wxMediaBackend);
|
wxIMPLEMENT_DYNAMIC_CLASS(wxPDFMediaBackend, wxMediaBackend);
|
||||||
|
|
||||||
// Put this in one of your existing source files and then create a wxMediaCtrl with
|
// Put this in one of your existing source files and then create a wxMediaCtrl with
|
||||||
wxMediaCtrl* mymediactrl = new wxMediaCtrl(this, "myfile.pdf", wxID_ANY,
|
wxMediaCtrl* mymediactrl = new wxMediaCtrl(this, "myfile.pdf", wxID_ANY,
|
||||||
wxDefaultPosition, wxSize(300,300),
|
wxDefaultPosition, wxSize(300,300),
|
||||||
@@ -297,5 +297,18 @@ public:
|
|||||||
Interface of ActiveX control.
|
Interface of ActiveX control.
|
||||||
*/
|
*/
|
||||||
wxActiveXContainer(wxWindow* parent, REFIID iid, IUnknown* pUnk);
|
wxActiveXContainer(wxWindow* parent, REFIID iid, IUnknown* pUnk);
|
||||||
|
/**
|
||||||
|
Queries host's site for interface.
|
||||||
|
|
||||||
|
@param iid
|
||||||
|
The iid of the required interface.
|
||||||
|
@param _interface
|
||||||
|
Double pointer to outgoing interface. Supply your own interface if desired.
|
||||||
|
@param desc
|
||||||
|
The description of the outgoing interface.
|
||||||
|
@return bool
|
||||||
|
Return true if interface supplied else return false.
|
||||||
|
*/
|
||||||
|
virtual bool QueryClientSiteInterface(REFIID iid, void **_interface, const char *&desc);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -633,6 +633,10 @@ public:
|
|||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
friend bool QueryClientSiteInterface(FrameSite *self, REFIID iid, void **_interface, const char *&desc)
|
||||||
|
{
|
||||||
|
return self->m_window->QueryClientSiteInterface(iid,_interface,desc);
|
||||||
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
wxActiveXContainer * m_window;
|
wxActiveXContainer * m_window;
|
||||||
@@ -670,6 +674,7 @@ DEFINE_OLE_TABLE(FrameSite)
|
|||||||
OLE_IINTERFACE(IOleDocumentSite)
|
OLE_IINTERFACE(IOleDocumentSite)
|
||||||
OLE_IINTERFACE(IAdviseSink)
|
OLE_IINTERFACE(IAdviseSink)
|
||||||
OLE_IINTERFACE(IOleControlSite)
|
OLE_IINTERFACE(IOleControlSite)
|
||||||
|
OLE_INTERFACE_CUSTOM(QueryClientSiteInterface)
|
||||||
END_OLE_TABLE
|
END_OLE_TABLE
|
||||||
|
|
||||||
|
|
||||||
@@ -1276,4 +1281,17 @@ bool wxActiveXContainer::MSWTranslateMessage(WXMSG* pMsg)
|
|||||||
return wxWindow::MSWTranslateMessage(pMsg);
|
return wxWindow::MSWTranslateMessage(pMsg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
// wxActiveXContainer::QueryClientSiteInterface
|
||||||
|
//
|
||||||
|
// Called in the host's site's query method for other interfaces.
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
bool wxActiveXContainer::QueryClientSiteInterface(REFIID iid, void **_interface, const char *&desc)
|
||||||
|
{
|
||||||
|
wxUnusedVar(iid);
|
||||||
|
wxUnusedVar(_interface);
|
||||||
|
wxUnusedVar(desc);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
#endif // wxUSE_ACTIVEX
|
#endif // wxUSE_ACTIVEX
|
||||||
|
Reference in New Issue
Block a user