다음을 통해 공유


COM 맵 전역 함수

이러한 함수는 COM 맵 IUnknown 구현을 지원합니다.

함수 설명
AtlInternalQueryInterface IUnknown 집계되지 않은 개체의 대리자입니다.
InlineIsEqualIUnknown 인터페이스를 비교하기 위한 효율적인 코드를 생성합니다 IUnknown.

요구 사항

헤더: atlbase.h

AtlInternalQueryInterface

요청된 인터페이스에 대한 포인터를 검색합니다.

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

매개 변수

pThis
[in] 에 노출된 인터페이스의 COM 맵을 포함하는 개체에 대한 QueryInterface포인터입니다.

pEntries
[in] 사용 가능한 인터페이스의 _ATL_INTMAP_ENTRY 맵에 액세스하는 구조체의 배열입니다.

iid
[in] 요청되는 인터페이스의 GUID입니다.

ppvObject
[out] iid에 지정된 인터페이스 포인터에 대한 포인터이거나, 인터페이스를 찾을 수 없는 경우 NULL입니다.

Return Value

표준 HRESULT 값 중 하나입니다.

설명

AtlInternalQueryInterface에서는 COM 맵 테이블의 인터페이스만 처리됩니다. 개체가 집계된 AtlInternalQueryInterface 경우 알 수 없는 외부에 위임하지 않습니다. 매크로 COM_INTERFACE_ENTRY 또는 변형 중 하나를 사용하여 COM 맵 테이블에 인터페이스를 입력할 수 있습니다.

예시

// 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 ();
}

InlineIsEqualIUnknown

에 대한 테스트의 특수 사례에 대해 이 함수를 호출합니다 IUnknown.

BOOL InlineIsEqualUnknown(REFGUID rguid1);

매개 변수

rguid1
[in] 비교할 GUID입니다 IID_IUnknown.

참고 항목

함수
COM 맵 매크로