Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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_IUnknown
der verglichen werden soll.