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 浏览器控件)使用。

另请参阅

IAxWinAmbientDispatch 接口
CAxWindow::QueryHost
AtlAxGetHost