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_IUnknown
der verglichen werden soll.