Condividi tramite


Funzioni globali di mappa COM

Queste funzioni forniscono il supporto per le implementazioni della mappa IUnknown COM.

Funzione Descrizione
AtlInternalQueryInterface Delega all'oggetto IUnknown di un oggetto nonaggregato.
InlineIsEqualIUnknown Genera codice efficiente per confrontare le interfacce con IUnknown.

Requisiti

Intestazione: atlbase.h

AtlInternalQueryInterface

Recupera un puntatore all'interfaccia richiesta.

HRESULT AtlInternalQueryInterface(
    void* pThis,
    const _ATL_INTMAP_ENTRY* pEntries,
    REFIID iid,
    void** ppvObject);

Parametri

pThis
[in] Puntatore all'oggetto contenente la mappa COM di interfacce esposte a QueryInterface.

pEntries
[in] Matrice di _ATL_INTMAP_ENTRY strutture che accedono a una mappa delle interfacce disponibili.

Iid
[in] GUID dell'interfaccia richiesta.

ppvObject
[out] Puntatore al puntatore dell'interfaccia specificato in iid o NULL se l'interfaccia non viene trovata.

Valore restituito

Uno dei valori HRESULT standard.

Osservazioni:

AtlInternalQueryInterface gestisce solo le interfacce nella tabella di mappe COM. Se l'oggetto è aggregato, AtlInternalQueryInterface non delega all'oggetto sconosciuto esterno. È possibile immettere le interfacce nella tabella mappa COM con la macro COM_INTERFACE_ENTRY o una delle relative varianti.

Esempio

// 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

Chiamare questa funzione per il caso speciale di test per IUnknown.

BOOL InlineIsEqualUnknown(REFGUID rguid1);

Parametri

rguid1
[in] GUID da confrontare con IID_IUnknown.

Vedi anche

Funzioni
Macro di mappa COM