CAxWindow 類別

注意

Active Template Library(ATL)持續支援。 不過,我們不再新增功能或更新文件。

這個類別提供用來操作裝載 ActiveX 控制件之視窗的方法。

重要

這個類別及其成員不能用於在 Windows 執行階段 中執行的應用程式。

語法

class CAxWindow : public CWindow

成員

方法

函式 描述
AttachControl 將現有的 ActiveX 控制件附加至 CAxWindow 物件。
CAxWindow 建構 CAxWindow 物件。
CreateControl 建立 ActiveX 控制件、初始化它,並在視窗中裝載它 CAxWindow 。
CreateControlEx 建立 ActiveX 控制件,並從控件擷取介面指標(或指標)。
GetWndClassName (靜態)擷取物件的預先定義類別名稱 CAxWindow 。
QueryControl IUnknown擷取載入 ActiveX 控制件的 。
QueryHost IUnknown擷取 物件的指標CAxWindow。
SetExternalDispatch 設定物件所使用的 CAxWindow 外部分派介面。
SetExternalUIHandler 設定物件所使用的IDocHostUIHandler外部CAxWindow介面。

操作員

運算子 描述
算符 = 將 HWND 指派給現有的 CAxWindow 物件。

備註

這個類別提供用來操作裝載 ActiveX 控制件之視窗的方法。 裝載是由 「AtlAxWin80」 提供,由包裝。CAxWindow

類別 CAxWindow 會實作為 類別的 CAxWindowT 特製化。 此特製化宣告為:

typedef CAxWindowT<CWindow> CAxWindow;

如果您需要變更基類,您可以使用 CAxWindowT 並指定新的基類做為樣板自變數。

需求

標頭: atlwin.h

CAxWindow::AttachControl

如果尚未存在,並且將指定的控件附加至主機,則建立新的主機物件。

HRESULT AttachControl(
    IUnknown* pControl,
    IUnknown** ppUnkContainer);

參數

pControl
[in]控件的指標 IUnknown 。

ppUnkContainer
[out]主機的指標 IUnknown ( AxWin 物件)。

傳回值

標準 HRESULT 值。

備註

在呼叫 AttachControl之前,必須先正確初始化所附加的控件物件。

CAxWindow::CAxWindow

CAxWindow使用現有的視窗物件句柄建構 物件。

CAxWindow(HWND hWnd = NULL);

參數

hWnd
現有窗口物件的句柄。

CAxWindow::CreateControl

建立 ActiveX 控制項、將它初始化,然後將它裝載於指定的視窗中。

HRESULT CreateControl(
    LPCOLESTR lpszName,
    IStream* pStream = NULL,
    IUnknown** ppUnkContainer = NULL);

HRESULT CreateControl(
    DWORD dwResID,
    IStream* pStream = NULL,
    IUnknown** ppUnkContainer = NULL);

參數

lpszName
要建立控件之字串的指標。 必須以下欄其中一種方式格式化:

  • ProgID,例如 "MSCAL.Calendar.7"

  • CLSID,例如 "{8E27C92B-1264-101C-8A2F-040224009C02}"

  • URL,例如 "<https://www.microsoft.com>"

  • 使用中文件的參考,例如 "file://\\\Documents\MyDoc.doc"

  • HTML 片段,例如 "MSHTML:\<HTML>\<BODY>This is a line of text\</BODY>\</HTML>"

    注意

    "MSHTML:" 必須位於 HTML 片段之前,才能將其指定為 MSHTML 數據流。 Windows Mobile 平臺僅支援 ProgID 和 CLSID。 Windows CE 內嵌平臺,除了支援 CE IE 支援的所有類型,包括 ProgID、CLSID、URL、使用中文件的參考,以及 HTML 片段。

pStream
[in]用來初始化 控件屬性之數據流的指標。 可以是 NULL。

ppUnkContainer
[out]將接收 IUnknown 容器之的指標位址。 可以是 NULL。

dwResID
HTML 資源的資源標識碼。 WebBrowser 控件將會使用指定的資源來建立和載入。

傳回值

標準 HRESULT 值。

備註

如果使用此方法的第二個版本,則會建立 HTML 控件,並系結至 dwResID 所識別的資源。

此方法提供與呼叫相同的結果:

AtlAxCreateControlEx(lpszName, hWnd, pStream, NULL, NULL, GUID_NULL, NULL);

請參閱 CAxWindow2T::CreateControlLic 來建立、初始化及裝載授權的 ActiveX 控制件。

範例

如需使用 的範例,請參閱CreateControl 裝載 ActiveX 控制件。

CAxWindow::CreateControlEx

建立 ActiveX 控制項、將它初始化,然後將它裝載於指定的視窗中。

HRESULT CreateControlEx(
    LPCOLESTR lpszName,
    IStream* pStream = NULL,
    IUnknown** ppUnkContainer = NULL,
    IUnknown** ppUnkControl = NULL,
    REFIID iidSink = IID_NULL,
    IUnknown* punkSink = NULL);

HRESULT CreateControlEx(
    DWORD dwResID,
    IStream* pStream = NULL,
    IUnknown** ppUnkContainer = NULL,
    IUnknown** ppUnkControl = NULL,
    REFIID iidSink = IID_NULL,
    IUnknown* punkSink = NULL);

參數

lpszName
要建立控件之字串的指標。 必須以下欄其中一種方式格式化:

  • ProgID,例如 "MSCAL.Calendar.7"

  • CLSID,例如 "{8E27C92B-1264-101C-8A2F-040224009C02}"

  • URL,例如 "<https://www.microsoft.com>"

  • 使用中文件的參考,例如 "file://\\\Documents\MyDoc.doc"

  • HTML 片段,例如 "MSHTML:\<HTML>\<BODY>This is a line of text\</BODY>\</HTML>"

    注意

    "MSHTML:" 必須位於 HTML 片段之前,才能將其指定為 MSHTML 數據流。 Windows Mobile 平臺僅支援 ProgID 和 CLSID。 Windows CE 內嵌平臺,除了支援 CE IE 支援的所有類型,包括 ProgID、CLSID、URL、使用中文件的參考,以及 HTML 片段。

pStream
[in]用來初始化 控件屬性之數據流的指標。 可以是 NULL。

ppUnkContainer
[out]將接收 IUnknown 容器之的指標位址。 可以是 NULL。

ppUnkControl
[out]將接收 IUnknown 控件 之指標的位址。 可以是 NULL。

iidSink
[in]自主物件上傳出介面的介面標識碼。 可以是IID_NULL。

punkSink
[in]要連接到 iidSinkIUnknown指定之自主物件之連接點之接收物件的介面指標。

dwResID
[in]HTML 資源的資源標識碼。 WebBrowser 控件將會使用指定的資源來建立和載入。

傳回值

標準 HRESULT 值。

備註

這個方法類似於 CAxWindow::CreateControl,但與該方法不同, CreateControlEx 也可讓您接收新建立控件的介面指標,並設定事件接收接收控件所引發的事件。

請參閱 CAxWindow2T::CreateControlLicEx 來建立、初始化及裝載授權的 ActiveX 控制件。

範例

如需使用 的範例,請參閱CreateControlEx 裝載 ActiveX 控制件。

CAxWindow::GetWndClassName

擷取視窗類別的名稱。

static LPCTSTR GetWndClassName();

傳回值

字串的指標,包含可裝載無授權 ActiveX 控件之視窗類別的名稱。

CAxWindow::operator =

將 HWND 指派給現有的 CAxWindow 物件。

CAxWindow<TBase>& operator=(HWND hWnd);

參數

hWnd
現有視窗的句柄。

傳回值

傳回目前 CAxWindow 物件的參考。

CAxWindow::QueryControl

擷取裝載控件的指定介面。

HRESULT QueryControl(REFIID iid, void** ppUnk);
template <class  Q>
HRESULT QueryControl(Q** ppUnk);

參數

iid
[in]指定控制項介面的 IID。

ppUnk
[out]控件介面的指標。 在此方法的範本版本中,只要傳遞具有相關聯 UUID 的具型別介面,就不需要參考標識符。

Q
[in]要查詢的介面。

傳回值

標準 HRESULT 值。

CAxWindow::QueryHost

傳回主機的指定介面。

HRESULT QueryHost(REFIID iid, void** ppUnk);
template <class  Q>
HRESULT QueryHost(Q** ppUnk);

參數

iid
[in]指定控制項介面的 IID。

ppUnk
[out]主機上介面的指標。 在此方法的範本版本中,只要傳遞具有相關聯 UUID 的具型別介面,就不需要參考標識符。

Q
[in]要查詢的介面。

傳回值

標準 HRESULT 值。

備註

主機的介面允許存取由 實 AxWin作之窗口裝載程式代碼的基礎功能。

CAxWindow::SetExternalDispatch

設定物件的外部分派介面 CAxWindow 。

HRESULT SetExternalDispatch(IDispatch* pDisp);

參數

pDisp
[in]介面的 IDispatch 指標。

傳回值

標準 HRESULT 值。

CAxWindow::SetExternalUIHandler

設定物件的外部 IDocHostUIHandlerDispatch 介面 CAxWindow 。

HRESULT SetExternalUIHandler(IDocHostUIHandlerDispatch* pUIHandler);

參數

pUIHandler
[in]介面的 IDocHostUIHandlerDispatch 指標。

傳回值

標準 HRESULT 值。

備註

外部 IDocHostUIHandlerDispatch 介面是由查詢主機網站之 IDocHostUIHandlerDispatch 介面的控制項所使用。 WebBrowser 控件是執行這項作業的一個控件。

另請參閱

ATLCON 範例
CWindow 類別
複合控制項基本概念
類別概觀
控件內含專案常見問題