Share via


COM Map Global Functions

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.

Zie ook

Functies
COM-kaartmacro's