次の方法で共有


AtlInternalQueryInterface

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

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

パラメーター

  • pThis
    [入力]インターフェイスの COM マップを含むオブジェクトへのポインターは QueryInterfaceに発行します。

  • pEntries
    [出力]使用できるインターフェイス マップにアクセス _ATL_INTMAP_ENTRY の構造体の配列。

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

  • ppvObject
    [入力]インターフェイスがない場合 iidで指定されたインターフェイス ポインターへのポインターまたは NULL

戻り値

標準の HRESULT 値のいずれか 1 つが。

解説

AtlInternalQueryInterface の COM マップの表のハンドルのインターフェイスだけ。独自のオブジェクトを集約すると、AtlInternalQueryInterface は不明の外部に転送されません。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.hHeader:

参照

関連項目

CComObjectRootEx::InternalAddRef

CComObjectRootEx::InternalRelease

その他の技術情報

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