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" により提供されます。

クラス CAxWindowCAxWindowT クラスの特殊化として実装されます。 この特殊化は、次のように宣言されます。

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