AtlGetObjectSourceInterface

Chiamare la funzione per recuperare le informazioni sull'interfaccia di origine predefinita di un oggetto.

Nota importanteImportante

Questa funzione non può essere utilizzata nelle applicazioni eseguite in Windows Runtime.

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

Parametri

  • punkObj
    [in] il puntatore Alle informazioni dell'oggetto per il quale deve essere restituito.

  • plibid
    [out] puntatore Al LIBID della libreria dei tipi contenente la definizione dell'interfaccia di origine.

  • piid
    [out] puntatore All'ID dell'interfaccia di origine dell'impostazione predefinita dell'oggetto.

  • pdwMajor
    [out] puntatore Al numero di versione principale della libreria dei tipi contenente la definizione dell'interfaccia di origine.

  • pdwMinor
    [out] puntatore Al numero di versione secondaria della libreria dei tipi contenente la definizione dell'interfaccia di origine.

Valore restituito

Un valore HRESULT standard.

Note

AtlGetObjectSourceInterface può fornire con l'id dell'interfaccia di origine predefinita, con il LIBID e dei numeri di versione principale e secondaria della libreria dei tipi che descrive tale interfaccia.

[!NOTA]

Affinché questa funzione correttamente recuperare le informazioni richieste, l'oggetto rappresentato da punkObj deve implementare IDispatch (e informazioni del tipo restituito da IDispatch::GetTypeInfo) più deve implementare anche IProvideClassInfo2 o IPersist.Le informazioni sul tipo per l'interfaccia di origine devono trovarsi nella stessa libreria dei tipi di informazioni sul tipo per IDispatch.

Esempio

L'esempio riportato di seguito viene illustrato come definire una classe del sink di evento, CEasySink, che riduce il numero di argomenti di modello che è possibile passare a IDispEventImpl i concetti di base nudi.EasyAdvise e EasyUnadvise utilizzano AtlGetObjectSourceInterface per inizializzare i membri IDispEventImpl prima di chiamare DispEventAdvise o 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);
   }
};

Requisiti

Header: atlcom.h

Vedere anche

Riferimenti

Classe di IDispEventImpl

Classe IDispEventSimpleImpl

Altre risorse

Funzioni globali del controllo composito