Freigeben über


Globale COM-Zuordnungs-Funktionen

Diese Funktionen bieten Unterstützung für COM-Kartenimplementierungen IUnknown .

Funktion Beschreibung
AtlInternalQueryInterface Delegiert an das IUnknown nicht aggregierte Objekt.
InlineIsEqualIUnknown Generiert effizienten Code zum Vergleichen von Schnittstellen mit IUnknown.

Anforderungen

Kopfzeile: atlbase.h

AtlInternalQueryInterface

Ruft einen Zeiger auf die angeforderte Schnittstelle ab.

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

Parameter

pThis
[in] Ein Zeiger auf das Objekt, das die COM-Zuordnung von Schnittstellen enthält, die verfügbar gemacht werden QueryInterface.

pEntries
[in] Ein Array von _ATL_INTMAP_ENTRY Strukturen, die auf eine Zuordnung verfügbarer Schnittstellen zugreifen.

iid
[in] Die GUID der angeforderten Schnittstelle.

ppvObject
[out] Ein Zeiger auf den in iid angegebenen Schnittstellenzeiger oder NULL, wenn die Schnittstelle nicht gefunden wird.

Rückgabewert

Einer der HRESULT-Standardwerte.

Hinweise

AtlInternalQueryInterface behandelt nur Schnittstellen in der COM-Zuordnungstabelle. Wenn Das Objekt aggregiert ist, AtlInternalQueryInterface wird es nicht an das äußere Unbekannte delegiert. Sie können Schnittstellen in die COM-Zuordnungstabelle mit dem Makro COM_INTERFACE_ENTRY oder einer seiner Varianten eingeben.

Beispiel

// 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

Rufen Sie diese Funktion für den Speziellfall von Tests für IUnknown.

BOOL InlineIsEqualUnknown(REFGUID rguid1);

Parameter

rguid1
[in] Die GUID, mit IID_IUnknownder verglichen werden soll.

Siehe auch

Funktionen
COM-Zuordnungs-Makros