CAxWindow 類別
這個類別提供用來操作裝載 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 | 設定物件所使用的CAxWindow 外部IDocHostUIHandler 介面。 |
操作員
運算子 | 描述 |
---|---|
operator = | 將 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
的範例,請參閱使用 ATL AXHost 裝載 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]要連接到 iidSink 所指定之自主物件之連接點之接收物件的介面指標IUnknown
。
dwResID
[in]HTML 資源的資源標識碼。 WebBrowser 控件將會使用指定的資源來建立和載入。
傳回值
標準 HRESULT 值。
備註
這個方法類似於 CAxWindow::CreateControl,但與該方法不同, CreateControlEx
也可讓您接收新建立控件的介面指標,並設定事件接收接收控件所引發的事件。
請參閱 CAxWindow2T::CreateControlLicEx 來建立、初始化及裝載授權的 ActiveX 控制件。
範例
如需使用 CreateControlEx
的範例,請參閱使用 ATL AXHost 裝載 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 控件是執行這項作業的一個控件。