CAxWindow クラス
このクラスは、ActiveX コントロールをホストするウィンドウを操作するメソッドを提供します。
重要
このクラスとそのメンバーは、Windows ランタイムで実行するアプリケーションで使用することはできません。
構文
class CAxWindow : public CWindow
メンバー
メソッド
関数 | 説明 |
---|---|
AttachControl | CAxWindow オブジェクトに既存の ActiveX をアタッチします。 |
CAxWindow | CAxWindow オブジェクトを構築します。 |
CreateControl | ActiveX コントロールを作成して初期化し、CAxWindow ウィンドウでホストします。 |
CreateControlEx | ActiveX コントロールを作成し、そのコントロールから 1 つ (または複数) のインターフェイス ポインターを取得します。 |
GetWndClassName | (静的) CAxWindow オブジェクトの定義済みのクラス名を取得します。 |
QueryControl | ホストされている ActiveX コントロールの IUnknown を取得します。 |
QueryHost | CAxWindow オブジェクトの IUnknown ポインターを取得します。 |
SetExternalDispatch | CAxWindow オブジェクトによって使用される外部ディスパッチ インターフェイスを設定します。 |
SetExternalUIHandler | CAxWindow オブジェクトによって使用される外部 IDocHostUIHandler インターフェイスを設定します。 |
演算子
演算子 | 説明 |
---|---|
operator = | 既存の CAxWindow オブジェクトに HWND を代入します。 |
解説
このクラスでは、ActiveX コントロールをホストするウィンドウを操作するためのメソッドが提供されます。 このホスティングは、CAxWindow
によってラップされる "AtlAxWin80" により提供されます。
クラス CAxWindow
は CAxWindowT
クラスの特殊化として実装されます。 この特殊化は、次のように宣言されます。
typedef CAxWindowT<CWindow> CAxWindow;
基本クラスを変更する必要がある場合は、CAxWindowT
を使用して、新しい基本クラスをテンプレート引数として指定できます。
要件
ヘッダー: atlwin.h
CAxWindow::AttachControl
存在しない場合は新しいホスト オブジェクトを作成し、指定されたコントロールをホストにアタッチします。
HRESULT AttachControl(
IUnknown* pControl,
IUnknown** ppUnkContainer);
パラメーター
pControl
[入力] コントロールの IUnknown
へのポインター。
ppUnkContainer
[出力] ホスト (AxWin
オブジェクト) の IUnknown
へのポインター。
戻り値
標準の 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>"
など)Note
"MSHTML:"
は HTML フラグメントの前に置いて、MSHTML ストリームであることを指定する必要があります。 Windows Mobile プラットフォームでは、ProgID と CLSID のみがサポートされます。 Windows CE の埋め込みプラットフォーム (CE IE がサポートされる Windows Mobile 以外) では、ProgID、CLSID、URL、アクティブ ドキュメントへの参照、HTML のフラグメントなど、すべてのタイプがサポートされています。
pStream
[入力] コントロールのプロパティを初期化するために使用されるストリームへのポインター。 NULL にすることができます。
ppUnkContainer
[出力] コンテナーの IUnknown
を受け取るポインターのアドレス。 NULL にすることができます。
dwResID
HTML リソースのリソース ID。 WebBrowser コントロールが作成され、指定されたリソースと共に読み込まれます。
戻り値
標準の HRESULT 値。
解説
このメソッドの 2 番目のバージョンを使用すると、HTML コントロールが作成され、dwResID によって識別されるリソースにバインドされます。
このメソッドでは、以下を呼び出す場合と同じ結果が得られます。
AtlAxCreateControlEx(lpszName, hWnd, pStream, NULL, NULL, GUID_NULL, NULL);
ライセンスされた ActiveX コントロールを作成、初期化、およびホストする場合は、「CAxWindow2T::CreateControlLic」を参照してください。
例
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>"
など)Note
"MSHTML:"
は HTML フラグメントの前に置いて、MSHTML ストリームであることを指定する必要があります。 Windows Mobile プラットフォームでは、ProgID と CLSID のみがサポートされます。 Windows CE の埋め込みプラットフォーム (CE IE がサポートされる Windows Mobile 以外) では、ProgID、CLSID、URL、アクティブ ドキュメントへの参照、HTML のフラグメントなど、すべてのタイプがサポートされています。
pStream
[入力] コントロールのプロパティを初期化するために使用されるストリームへのポインター。 NULL にすることができます。
ppUnkContainer
[出力] コンテナーの IUnknown
を受け取るポインターのアドレス。 NULL にすることができます。
ppUnkControl
[出力] コントロールの IUnknown
を受け取るポインターのアドレス。 NULL にすることができます。
iidSink
[入力] 含まれるオブジェクトの発信インターフェイスのインターフェイス識別子。 IID_NULL にすることができます。
punkSink
[入力] iidSink で指定された含まれるオブジェクトの接続ポイントに接続されるシンク オブジェクトの IUnknown
インターフェイスへのポインター。
dwResID
[入力] HTML リソースのリソース ID。 WebBrowser コントロールが作成され、指定されたリソースと共に読み込まれます。
戻り値
標準の HRESULT 値。
解説
このメソッドは CAxWindow::CreateControl に似ていますが、そのメソッドとは異なり、CreateControlEx
では、新しく作成されたコントロールへのインターフェイス ポインターを受け取り、コントロールによって発生するイベントを受け取るようにイベント シンクを設定することもできます。
ライセンスされた ActiveX コントロールを作成、初期化、およびホストする場合は、「CAxWindow2T::CreateControlLicEx」を参照してください。
例
CreateControlEx
を使用する例については、「ATL AXHost を使用して ActiveX コントロールをホストする」を参照してください。
CAxWindow::GetWndClassName
ウィンドウ クラスの名前を取得します。
static LPCTSTR GetWndClassName();
戻り値
非ライセンス ActiveX コントロールをホストできるウィンドウ クラスの名前を含む文字列へのポインター。
CAxWindow::operator =
既存の CAxWindow
オブジェクトに HWND を代入します。
CAxWindow<TBase>& operator=(HWND hWnd);
パラメーター
hWnd
既存のウィンドウのハンドル。
戻り値
現在の CAxWindow
オブジェクトへの参照を返します。
CAxWindow::QueryControl
ホストされているコントロールの指定されたインターフェイスを取得します。
HRESULT QueryControl(REFIID iid, void** ppUnk);
template <class Q>
HRESULT QueryControl(Q** ppUnk);
パラメーター
iid
[入力] コントロールのインターフェイスの IID を指定します。
ppUnk
[入力] コントロールのインターフェイスへのポインター。 このメソッドのテンプレート バージョンでは、UUID が関連付けられている型指定されたインターフェイスが渡される限り、参照 ID は必要ありません。
Q
[入力] クエリが実行されるインターフェイス。
戻り値
標準の HRESULT 値。
CAxWindow::QueryHost
ホストの指定されたインターフェイスを返します。
HRESULT QueryHost(REFIID iid, void** ppUnk);
template <class Q>
HRESULT QueryHost(Q** ppUnk);
パラメーター
iid
[入力] コントロールのインターフェイスの IID を指定します。
ppUnk
[入力] ホスト上のインターフェイスへのポインター。 このメソッドのテンプレート バージョンでは、UUID が関連付けられている型指定されたインターフェイスが渡される限り、参照 ID は必要ありません。
Q
[入力] クエリが実行されるインターフェイス。
戻り値
標準の HRESULT 値。
解説
ホストのインターフェイスを使用すると、AxWin
によって実装されるウィンドウ ホスティング コードの基になる機能にアクセスできます。
CAxWindow::SetExternalDispatch
CAxWindow
オブジェクトの外部ディスパッチ インターフェイスを設定します。
HRESULT SetExternalDispatch(IDispatch* pDisp);
パラメーター
pDisp
[入力] IDispatch
インターフェイスへのポインター。
戻り値
標準の HRESULT 値。
CAxWindow::SetExternalUIHandler
CAxWindow
オブジェクトの外部 IDocHostUIHandlerDispatch インターフェイスを設定します。
HRESULT SetExternalUIHandler(IDocHostUIHandlerDispatch* pUIHandler);
パラメーター
pUIHandler
[入力] IDocHostUIHandlerDispatch
インターフェイスへのポインター。
戻り値
標準の HRESULT 値。
解説
外部 IDocHostUIHandlerDispatch
インターフェイスは、IDocHostUIHandlerDispatch
インターフェイスについて、ホストのサイトにクエリを実行するコントロールによって使用されます。 WebBrowser コントロールは、これを行う 1 つのコントロールです。
関連項目
ATLCON サンプル
CWindow クラス
複合コントロールの基本
クラスの概要
コントロールコンテインメントに関する FAQ