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
.