Partager via


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.

Voir aussi

Fonctions
Macros de mappage COM