次の方法で共有

Facebook x.com LinkedIn 電子メール

AtlInternalQueryInterface

要求されたインターフェイスへのポインターを取得します。

HRESULT AtlInternalQueryInterface(
 void* pThis,
 const _ATL_INTMAP_ENTRY* pEntries,
 REFIID iid,
 void** ppvObject 
);

パラメーター

  • pThis
    [入力] QueryInterface に公開されるインターフェイスの COM マップを保持するオブジェクトへのポインター。

  • pEntries
    [入力] 使用可能なインターフェイスのマップにアクセスする ATL_INTMAP_ENTRY 構造体の配列。

  • iid
    [入力] 要求されているインターフェイスの GUID。

  • ppvObject
    [出力] iid で指定されたインターフェイス ポインターへのポインター。インターフェイスが見つからない場合は NULL になります。

戻り値

標準の HRESULT 値のいずれかを返します。

解説

AtlInternalQueryInterface が処理できるのは、COM マップ テーブルのインターフェイスだけです。 オブジェクトが集約される場合、AtlInternalQueryInterface は外部オブジェクトの Unknown に処理を任せません。 COM マップ テーブルにインターフェイスを入力するには、COM_INTERFACE_ENTRY マクロ、またはそのバリエーションを使用します。

使用例

// MyTimerProc is a callback function passed to SetTimer()
VOID CALLBACK MyTimerProc(HWND /*hwnd*/, UINT /*uMsg*/, UINT /*idEvent*/, 
 DWORD /*dwTime*/)
{
 LPDISPATCH pDisp = NULL;
 // gpMyCtrl is a global variable of type CMyCtrl*
 // _GetEntries() is a static function you get with BEGIN_COM_MAP()
 AtlInternalQueryInterface (gpMyCtrl, CMyCtrl::_GetEntries(), IID_IDispatch, 
 (LPVOID*)&pDisp);
 //...
 pDisp->Release ();
}

必要条件

**ヘッダー:**atlbase.h

参照

参照

CComObjectRootEx::InternalAddRef

CComObjectRootEx::InternalRelease

その他の技術情報

COM マップに関するグローバル関数


  • Last updated on 2011年08月09日