Compartilhar via


Função BindMoniker (objbase.h)

Localiza um objeto por meio de seu moniker, ativa o objeto se ele está inativo e recupera um ponteiro para a interface especificada nesse objeto.

Sintaxe

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

Parâmetros

[in] pmk

Um ponteiro para o moniker do objeto. Veja IMoniker.

[in] grfOpt

Esse parâmetro é reservado para uso futuro e deve ser 0.

[in] iidResult

O identificador de interface a ser usado para se comunicar com o objeto .

[out] ppvResult

O endereço da variável de ponteiro que recebe o ponteiro de interface solicitado em iidResult. Após o retorno bem-sucedido, *ppvResult contém o ponteiro de interface solicitado. Se ocorrer um erro, *ppvResult será NULL. Se a chamada for bem-sucedida, o chamador será responsável por liberar o ponteiro com uma chamada para o método IUnknown::Release do objeto.

Retornar valor

Essa função pode retornar os seguintes códigos de erro ou qualquer um dos valores de erro retornados pelo método IMoniker::BindToObject .

Código de retorno Descrição
S_OK
O objeto foi localizado e ativado, se necessário, e um ponteiro para a interface solicitada foi retornado.
MK_E_NOOBJECT
Não foi possível encontrar o objeto que o objeto moniker identificou.

Comentários

BindMoniker é uma função auxiliar fornecida como uma maneira conveniente para um cliente que tem o moniker de um objeto para obter um ponteiro para uma das interfaces desse objeto. BindMoniker empacota as seguintes chamadas:

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

CreateBindCtx cria um objeto de contexto de associação que dá suporte à implementação do sistema de IBindContext. O parâmetro pmk é, na verdade, um ponteiro para a implementação do IMoniker em um objeto moniker. O método BindToObject dessa implementação fornece o ponteiro para o ponteiro de interface solicitado.

Se você tiver vários monikers para associar em sucessão rápida e se souber que esses monikers ativarão o mesmo objeto, talvez seja mais eficiente chamar o método IMoniker::BindToObject diretamente, o que permite que você use o mesmo objeto de contexto de associação para todos os monikers. Consulte a interface IBindCtx para obter mais informações.

Aplicativos de contêiner que permitem que seus documentos contenham objetos vinculados são um cliente especial que geralmente não faz chamadas diretas para métodos IMoniker . Em vez disso, o cliente manipula os objetos vinculados por meio da interface IOleLink . O manipulador padrão implementa essa interface e chama os métodos IMoniker apropriados conforme necessário.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows 2000 Server [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho objbase.h
Biblioteca Ole32.lib
DLL Ole32.dll
Conjunto de APIs ext-ms-win-com-ole32-l1-1-5 (introduzido em Windows 10, versão 10.0.15063)

Confira também

Createbindctx

IMoniker::BindToObject