Fonctions globales de mappage COM
Ces fonctions prennent en charge les implémentations COM Map IUnknown
.
Fonction | Description |
---|---|
AtlInternalQueryInterface | Délégués à l’objet IUnknown non agrégé. |
InlineIsEqualIUnknown | Génère du code efficace pour comparer les interfaces par rapport IUnknown à . |
Spécifications
En-tête : atlbase.h
AtlInternalQueryInterface
Récupère un pointeur vers l'interface demandée.
HRESULT AtlInternalQueryInterface(
void* pThis,
const _ATL_INTMAP_ENTRY* pEntries,
REFIID iid,
void** ppvObject);
Paramètres
pThis
[in] Pointeur vers l’objet qui contient la carte COM des interfaces exposées à QueryInterface
.
pEntries
[in] Tableau de _ATL_INTMAP_ENTRY
structures qui accèdent à une carte d’interfaces disponibles.
iid
[in] GUID de l’interface demandée.
ppvObject
[out] Pointeur vers le pointeur d’interface spécifié dans iid ou NULL si l’interface est introuvable.
Valeur de retour
Une des valeurs HRESULT standard.
Notes
AtlInternalQueryInterface
gère seulement des interfaces dans le tableau de mappage COM. Si votre objet est agrégé, AtlInternalQueryInterface
ne délègue pas à l’inconnu externe. Vous pouvez entrer des interfaces dans la table de mappage COM avec la macro COM_INTERFACE_ENTRY ou l’une de ses variantes.
Exemple
// 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
Appelez cette fonction, pour le cas spécial de test pour IUnknown
.
BOOL InlineIsEqualUnknown(REFGUID rguid1);
Paramètres
rguid1
[in] GUID à comparer à IID_IUnknown
.