Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Opmerking
De ATL (Active Template Library) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.
Deze functies bieden ondersteuning voor COM Map-implementaties IUnknown .
| Functie | Description |
|---|---|
| AtlInternalQueryInterface | Gedelegeerden aan een IUnknown niet-samengevoegd object. |
| InlineIsEqualIUnknown | Hiermee genereert u efficiƫnte code voor het vergelijken van interfaces ten IUnknownopzichte van . |
Requirements
Header: atlbase.h
AtlInternalQueryInterface
Hiermee wordt een aanwijzer naar de aangevraagde interface opgehaald.
HRESULT AtlInternalQueryInterface(
void* pThis,
const _ATL_INTMAP_ENTRY* pEntries,
REFIID iid,
void** ppvObject);
Parameterwaarden
pThis
[in] Een aanwijzer naar het object dat de COM-kaart bevat van interfaces die beschikbaar zijn voor QueryInterface.
pEntries
[in] Een matrix met _ATL_INTMAP_ENTRY structuren die toegang hebben tot een kaart met beschikbare interfaces.
iid
[in] De GUID van de interface die wordt aangevraagd.
ppvObject
[uit] Een aanwijzer naar de interfacepointer die is opgegeven in iid of NULL als de interface niet wordt gevonden.
Retourwaarde
Een van de standaard HRESULT-waarden.
Opmerkingen
AtlInternalQueryInterface verwerkt alleen interfaces in de COM-kaarttabel. Als uw object is samengevoegd, AtlInternalQueryInterface wordt deze niet gedelegeerd aan het buitenste onbekende object. U kunt interfaces invoeren in de COM-kaarttabel met de macro COM_INTERFACE_ENTRY of een van de varianten.
Example
// 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
Roep deze functie aan voor het speciale geval van testen voor IUnknown.
BOOL InlineIsEqualUnknown(REFGUID rguid1);
Parameterwaarden
rguid1
[in] De GUID die moet worden vergeleken met IID_IUnknown.