Partager via


AtlGetObjectSourceInterface

Appelez cette fonction pour extraire des informations sur l'interface source par défaut d'un objet.

Important

Cette fonction ne peut pas être utilisée dans les applications qui s'exécutent dans Windows Runtime.

ATLAPI AtlGetObjectSourceInterface( 
IUnknown* punkObj, 
GUID* plibid, 
IID* piid, 
unsigned short* pdwMajor, 
unsigned short* pdwMinor 
);

Paramètres

  • punkObj
    [in] Pointeur vers l'objet pour lequel les informations doivent être retournées.

  • plibid
    [out] Pointeur vers le LIBID de la bibliothèque de types qui contient la définition de l'interface source.

  • piid
    [out] Pointeur vers l'ID d'interface de l'interface source par défaut de l'objet.

  • pdwMajor
    [out] Pointeur vers le numéro de version principale de la bibliothèque de types qui contient la définition de l'interface source.

  • pdwMinor
    [out] Pointeur vers le numéro de version secondaire de la bibliothèque de types qui contient la définition de l'interface source.

Valeur de retour

Une valeur HRESULT standard.

Notes

AtlGetObjectSourceInterface peut vous permettre l'ID d'interface de l'interface source par défaut, avec le LIBID et les numéros de version secondaire de la bibliothèque de types décrivant cette interface.

Notes

Pour que cette fonction récupérer correctement les informations demandées, l'objet représenté par punkObj doit implémenter IDispatch (et les informations de type de retour par IDispatch::GetTypeInfo) ainsi que celui-ci doit également implémenter IProvideClassInfo2 ou IPersist.Les informations de type pour l'interface source doivent être à la même bibliothèque de types que les informations de type pour IDispatch.

Exemple

L'exemple suivant montre comment vous pouvez définir une classe de récepteur d'événements, CEasySink, ce qui réduit le nombre d'arguments template que vous pouvez passer à IDispEventImpl aux bases nues. EasyAdvise et EasyUnadvise utilisent AtlGetObjectSourceInterface pour initialiser les membres d' IDispEventImpl avant d'appeler DispEventAdvise ou DispEventUnadvise.

template <UINT nID, class T>
class CEasySink : public IDispEventImpl<nID, T>
{
public:
   HRESULT EasyAdvise(IUnknown* pUnk) 
   { 
      AtlGetObjectSourceInterface(pUnk,
         &m_libid, &m_iid, &m_wMajorVerNum, &m_wMinorVerNum);
      return DispEventAdvise(pUnk, &m_iid);
   }
   HRESULT EasyUnadvise(IUnknown* pUnk) 
   {
      AtlGetObjectSourceInterface(pUnk,
         &m_libid, &m_iid, &m_wMajorVerNum, &m_wMinorVerNum);
      return DispEventUnadvise(pUnk, &m_iid);
   }
};

Configuration requise

Header: atlcom.h

Voir aussi

Référence

IDispEventImpl, classe

IDispEventSimpleImpl, classe

Autres ressources

Fonctions globales de contrôle composite