Compartir a través de


Funciones globales de mapa de COM

Estas funciones proporcionan compatibilidad con las implementaciones IUnknown de mapa COM.

Función Descripción
AtlInternalQueryInterface Delega al objeto IUnknown de un objeto no agregado.
InlineIsEqualIUnknown Genera código eficaz para comparar interfaces con IUnknown.

Requisitos

Encabezado: atlbase.h

AtlInternalQueryInterface

Recupera un puntero a la interfaz solicitada.

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

Parámetros

pThis
[in] Puntero al objeto que contiene el mapa COM de interfaces expuestas a QueryInterface.

pEntries
[in] Matriz de estructuras _ATL_INTMAP_ENTRY que acceden a un mapa de interfaces disponibles.

iid
[in] GUID de la interfaz que se solicita.

ppvObject
[out] Puntero al puntero de interfaz especificado en iid o NULL si no se encuentra la interfaz.

Valor devuelto

Uno de los valores HRESULT estándar.

Comentarios

AtlInternalQueryInterface solo administra interfaces de la tabla de asignación COM. Si el objeto se agrega, AtlInternalQueryInterface no delega al desconocido externo. Para especificar interfaces en la tabla de asignación COM, puede usar la macro COM_INTERFACE_ENTRY o cualquiera de sus variantes.

Ejemplo

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

Llame a esta función en el caso especial de prueba de IUnknown.

BOOL InlineIsEqualUnknown(REFGUID rguid1);

Parámetros

rguid1
[in] GUID que se va a comparar con IID_IUnknown.

Consulte también

Funciones
Macros de mapa COM