Compartilhar via


Método IOleObject::SetMoniker (oleidl.h)

Notifica um objeto do moniker de seu contêiner, o próprio moniker do objeto em relação ao contêiner ou o moniker completo do objeto.

Sintaxe

HRESULT SetMoniker(
  [in] DWORD    dwWhichMoniker,
  [in] IMoniker *pmk
);

Parâmetros

[in] dwWhichMoniker

O moniker é passado em pmk. Os valores possíveis são da enumeração OLEWHICHMK.

[in] pmk

Ponteiro para onde retornar o moniker.

Retornar valor

Esse método retorna S_OK em caso de êxito. Outros valores retornados possíveis incluem o seguinte.

Código de retorno Descrição
E_FAIL
Falha na operação.

Comentários

Um contêiner que dá suporte a links para objetos inseridos deve ser capaz de informar um objeto inserido quando seu moniker for alterado. Caso contrário, as tentativas subsequentes por clientes de link para associar ao objeto falharão. O método IOleObject::SetMoniker fornece uma maneira de um contêiner comunicar essas informações.

O contêiner pode passar seu próprio moniker, o moniker de um objeto em relação ao contêiner ou o moniker completo de um objeto. Na prática, se um contêiner passar algo diferente do moniker completo de um objeto, cada objeto chamará o contêiner de volta para solicitar a atribuição do moniker completo, que o objeto exige para se registrar na tabela de objetos em execução.

O moniker de um objeto relativo ao seu contêiner é armazenado pelo manipulador de objetos como parte do estado persistente do objeto. No entanto, o moniker do contêiner do objeto não deve ser armazenado persistentemente dentro do objeto porque o contêiner pode ser renomeado a qualquer momento.

Anotações aos Chamadores

Um contêiner chama IOleObject::SetMoniker quando o contêiner foi renomeado e os objetos inseridos do contêiner atualmente ou podem potencialmente servir como fontes de link. Os contêineres chamam SetMoniker principalmente no contexto de vinculação porque um objeto inserido já está ciente de seu moniker. Mesmo no contexto de vinculação, chamar esse método é opcional porque os objetos podem chamar IOleClientSite::GetMoniker para forçar a atribuição de um novo moniker.

Observações aos implementadores

Ao receber uma chamada para IOleObject::SetMoniker, um objeto deve registrar seu moniker completo na tabela de objetos em execução e enviar uma notificação IAdviseSink::OnRename para todos os coletores de aviso que existem para o objeto.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho oleidl.h

Confira também

CreateItemMoniker

IAdviseSink::OnRename

IOleClientSite::GetMoniker

Ioleobject

IOleObject::GetMoniker