Función BindMoniker (objbase.h)

Busca un objeto mediante su moniker, activa el objeto si está inactivo y recupera un puntero a la interfaz especificada en ese objeto.

Sintaxis

HRESULT BindMoniker(
  [in]  LPMONIKER pmk,
  [in]  DWORD     grfOpt,
  [in]  REFIID    iidResult,
  [out] LPVOID    *ppvResult
);

Parámetros

[in] pmk

Puntero al moniker del objeto. Vea IMoniker.

[in] grfOpt

Este parámetro está reservado para uso futuro y debe ser 0.

[in] iidResult

Identificador de interfaz que se va a usar para comunicarse con el objeto .

[out] ppvResult

Dirección de la variable de puntero que recibe el puntero de interfaz solicitado en iidResult. Tras la devolución correcta, *ppvResult contiene el puntero de interfaz solicitado. Si se produce un error, *ppvResult es NULL. Si la llamada se realiza correctamente, el autor de la llamada es responsable de liberar el puntero con una llamada al método IUnknown::Release del objeto.

Valor devuelto

Esta función puede devolver los siguientes códigos de error o cualquiera de los valores de error devueltos por el método IMoniker::BindToObject .

Código devuelto Descripción
S_OK
El objeto se ha localizado y activado, si es necesario, y se ha devuelto un puntero a la interfaz solicitada.
MK_E_NOOBJECT
No se encontró el objeto de moniker identificado.

Comentarios

BindMoniker es una función auxiliar proporcionada como una manera cómoda para un cliente que tiene el moniker de un objeto para obtener un puntero a una de las interfaces de ese objeto. BindMoniker empaqueta las siguientes llamadas:

CreateBindCtx(0, &pbc);
pmk->BindToObject(pbc, NULL, riid, ppvObj);

CreateBindCtx crea un objeto de contexto de enlace que admite la implementación del sistema de IBindContext. El parámetro pmk es realmente un puntero a la implementación de IMoniker en un objeto de moniker. El método BindToObject de esta implementación proporciona el puntero al puntero de interfaz solicitado.

Si tiene varios monikers para enlazar en sucesión rápida y si sabe que esos monikers activarán el mismo objeto, puede ser más eficaz llamar al método IMoniker::BindToObject directamente, lo que le permite usar el mismo objeto de contexto de enlace para todos los monikers. Consulte la interfaz IBindCtx para obtener más información.

Las aplicaciones contenedora que permiten que sus documentos contengan objetos vinculados son un cliente especial que generalmente no realiza llamadas directas a métodos IMoniker . En su lugar, el cliente manipula los objetos vinculados a través de la interfaz IOleLink . El controlador predeterminado implementa esta interfaz y llama a los métodos IMoniker adecuados según sea necesario.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows 2000 Server [aplicaciones de escritorio | Aplicaciones para UWP]
Plataforma de destino Windows
Encabezado objbase.h
Library Ole32.lib
Archivo DLL Ole32.dll
Conjunto de API ext-ms-win-com-ole32-l1-1-5 (introducido en Windows 10, versión 10.0.15063)

Consulte también

CreateBindCtx

IMoniker::BindToObject