IAxWinHostWindow 接口
此接口提供用于操作控件及其主机对象的方法。
重要
无法在 Windows 运行时中执行的应用程序中使用此类及其成员。
语法
interface IAxWinHostWindow : IUnknown
成员
方法
名称 | 描述 |
---|---|
AttachControl | 将现有控件附加到主机对象。 |
CreateControl | 创建控件,并将其附加到主机对象。 |
CreateControlEx | 创建控件,将其附加到主机对象,并选择性地设置事件处理程序。 |
QueryControl | 返回指向托管控件的接口指针。 |
SetExternalDispatch | 设置外部 IDispatch 接口。 |
SetExternalUIHandler | 设置外部 IDocHostUIHandlerDispatch 接口。 |
注解
此接口由 ATL 的 ActiveX 控件托管对象公开。 调用此接口上的方法,以创建和/或将控件附加到主机对象、从托管控件获取接口,或设置托管 Web 浏览器时要使用的外部 dispinterface 或 UI 处理程序。
要求
此接口的定义可用作 IDL 或 C++,如下所示。
定义类型 | 文件 |
---|---|
IDL | ATLIFace.idl |
C++ | ATLIFace.h(也包含在 ATLBase.h 中) |
IAxWinHostWindow::AttachControl
使用 hWnd 标识的窗口将现有(和以前初始化的)控件附加到主机对象。
STDMETHOD(AttachControl)(IUnknown* pUnkControl, HWND hWnd);
参数
pUnkControl
[in] 指向要附加到主机对象的控件的 IUnknown
接口的指针。
hWnd
[in] 要用于托管的窗口的句柄。
返回值
标准 HRESULT 值。
IAxWinHostWindow::CreateControl
创建一个控件,初始化它,并将其托管在由 hWnd 标识的窗口中。
STDMETHOD(CreateControl)(
LPCOLESTR lpTricsData,
HWND hWnd,
IStream* pStream);
参数
lpTricsData
[in] 标识要创建的控件的字符串。 可以是 CLSID(必须包含大括号)、ProgID、URL 或原始 HTML(以 MSHTML: 为前缀)。
hWnd
[in] 要用于托管的窗口的句柄。
pStream
[in] 包含控件初始化数据的流的接口指针。 可以为 NULL。
返回值
标准 HRESULT 值。
注解
公开此接口的主机对象将子类化此窗口,以便消息能够反映到控件,其他容器功能能够正常工作。
调用此方法等效于调用 IAxWinHostWindow::CreateControlEx。
若要创建许可 ActiveX 控件,请参阅 IAxWinHostWindowLic::CreateControlLic。
IAxWinHostWindow::CreateControlEx
创建 ActiveX 控件,初始化它,并将其托管在指定窗口中,类似于 IAxWinHostWindow::CreateControl。
STDMETHOD(CreateControlEx)(
LPCOLESTR lpszTricsData,
HWND hWnd,
IStream* pStream,
IUnknown** ppUnk,
REFIID riidAdvise,
IUnknown* punkAdvise);
参数
lpTricsData
[in] 标识要创建的控件的字符串。 可以是 CLSID(必须包含大括号)、ProgID、URL 或原始 HTML(以 MSHTML: 为前缀)。
hWnd
[in] 要用于托管的窗口的句柄。
pStream
[in] 包含控件初始化数据的流的接口指针。 可以为 NULL。
ppUnk
[out] 将接收所创建控件 IUnknown
接口的指针的地址。 可以为 NULL。
riidAdvise
[in] 所包含对象的传出接口的接口标识符。 可为 IID_NULL。
punkAdvise
[in] 指向要连接到由 iidSink
指定的所含对象上的连接点的接收器对象的 IUnknown
接口的指针。
返回值
标准 HRESULT 值。
备注
与 CreateControl
方法不同,CreateControlEx
还允许接收指向新创建的控件的接口指针,并设置事件接收器以接收该控件触发的事件。
若要创建许可 ActiveX 控件,请参阅 IAxWinHostWindowLic::CreateControlLicEx。
IAxWinHostWindow::QueryControl
返回由托管控件提供的指定接口指针。
STDMETHOD(QueryControl)(
REFIID riid,
void** ppvObject);
参数
riid
[in] 所请求的控件上的接口的 ID。
ppvObject
[out] 将接收所创建控件的指定接口的指针的地址。
返回值
标准 HRESULT 值。
IAxWinHostWindow::SetExternalDispatch
设置外部调度接口,该接口可通过 IDocHostUIHandlerDispatch::GetExternal 方法用于所含控件。
STDMETHOD(SetExternalDispatch)(IDispatch* pDisp);
参数
pDisp
[in] 指向 IDispatch
接口的指针。
返回值
标准 HRESULT 值。
IAxWinHostWindow::SetExternalUIHandler
调用此函数可为 CAxWindow
对象设置外部 IDocHostUIHandlerDispatch 接口。
STDMETHOD(SetExternalUIHandler)(IDocHostUIHandlerDispatch* pDisp);
参数
pDisp
[in] 指向 IDocHostUIHandlerDispatch
接口的指针。
返回值
标准 HRESULT 值。
备注
此函数由查询主机站点的 IDocHostUIHandlerDispatch
接口的控件(如 Web 浏览器控件)使用。