Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tyto funkce poskytují podporu pro implementace modelu COM Map IUnknown .
| Function | Popis |
|---|---|
| AtlInternalQueryInterface | Deleguje na IUnknown neagregovaný objekt. |
| InlineIsEqualIUnknown | Generuje efektivní kód pro porovnávání rozhraní s IUnknown. |
Požadavky
Hlavička: atlbase.h
AtlInternalQueryInterface
Načte ukazatel na požadované rozhraní.
HRESULT AtlInternalQueryInterface(
void* pThis,
const _ATL_INTMAP_ENTRY* pEntries,
REFIID iid,
void** ppvObject);
Parametry
PThis
[v] Ukazatel na objekt, který obsahuje mapu modelu COM rozhraní vystavených QueryInterface.
PEntries
[v] Pole _ATL_INTMAP_ENTRY struktur, které přistupují k mapě dostupných rozhraní.
iid
[v] Identifikátor GUID požadovaného rozhraní.
ppvObject
[ven] Ukazatel na ukazatel rozhraní zadaný v iid nebo NULL, pokud rozhraní není nalezeno.
Návratová hodnota
Jedna ze standardních hodnot HRESULT.
Poznámky
AtlInternalQueryInterface zpracovává pouze rozhraní v tabulce mapování modelu COM. Pokud je objekt agregovaný, AtlInternalQueryInterface neleguje na vnější neznámý objekt. Rozhraní můžete zadat do tabulky mapování modelu COM s makrem COM_INTERFACE_ENTRY nebo některou z jejích variant.
Příklad
// 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
Volejte tuto funkci pro speciální případ testování pro IUnknown.
BOOL InlineIsEqualUnknown(REFGUID rguid1);
Parametry
rguid1
[v] Identifikátor GUID pro porovnání s IID_IUnknown.