Compartilhar via


Função CreateObjrefMoniker (objbase.h)

Cria um moniker OBJREF com base em um ponteiro para um objeto .

Sintaxe

HRESULT CreateObjrefMoniker(
  [in, optional] LPUNKNOWN punk,
  [out]          LPMONIKER *ppmk
);

Parâmetros

[in, optional] punk

Um ponteiro para a interface IUnknown no objeto que o moniker deve representar.

[out] ppmk

Endereço de um ponteiro para a interface IMoniker no moniker OBJREF que foi criado.

Valor retornado

Essa função pode retornar os valores de retorno padrão E_OUTOFMEMORY, E_UNEXPECTED e S_OK.

Comentários

Os clientes usam monikers OBJREF para obter um ponteiro marshaled para um objeto em execução no espaço de endereço dos servidores.

O servidor normalmente chama CreateObjrefMoniker para criar um moniker OBJREF e, em seguida, chama IMoniker::GetDisplayName e, por fim, libera o moniker. O nome de exibição de um moniker OBJREF é do formulário:

OBJREF:nnnnnnnn

Onde nnnnnnnn é uma codificação base-64 arbitrariamente longa que encapsula a localização do computador, o ponto de extremidade do processo e a ID do ponteiro de interface (IPID) do objeto em execução

Em seguida, o nome de exibição pode ser transferido para o cliente como texto. Por exemplo, o nome de exibição pode residir em uma página HTML baixada pelo cliente.

O cliente pode passar o nome de exibição para MkParseDisplayName, que cria um moniker OBJREF com base no nome de exibição. Uma chamada para o método monikers IMoniker::BindToObject obtém um ponteiro marshaled para a instância em execução no servidor.

Por exemplo, um componente COM do lado do servidor contido em uma Página do Active Server pode criar um moniker OBJREF, obter seu nome de exibição e gravar o nome de exibição na saída HTML enviada para o navegador cliente. Um script executado no lado do cliente pode usar o nome de exibição para obter acesso ao próprio objeto em execução. Um script do Visual Basic do lado do cliente, por exemplo, poderia armazenar o nome de exibição em uma variável chamada strMyName e incluir esta linha:

objMyInstance = GetObject(strMyName)

O mecanismo de script faz internamente as chamadas para MkParseDisplayName e IMoniker::BindToObject, e o script pode usar objMyInstance para se referir diretamente ao objeto em execução.

Requisitos

   
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 no Windows 10, versão 10.0.15063)

Confira também

Imoniker