Compartir a través de


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

Notifica a un objeto del moniker de su contenedor, el propio moniker del objeto en relación con el contenedor o el moniker completo del objeto.

Sintaxis

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

Parámetros

[in] dwWhichMoniker

El moniker se pasa en pmk. Los valores posibles son de la enumeración OLEWHICHMK.

[in] pmk

Puntero a dónde devolver el moniker.

Valor devuelto

Este método devuelve S_OK cuando funciona correctamente. Otros posibles valores devueltos son los siguientes.

Código devuelto Descripción
E_FAIL
Error en la operación.

Comentarios

Un contenedor que admita vínculos a objetos incrustados debe ser capaz de informar a un objeto incrustado cuando su moniker ha cambiado. De lo contrario, se producirá un error en los intentos posteriores por los clientes de vínculo para enlazar con el objeto. El método IOleObject::SetMoniker proporciona una manera de que un contenedor comunique esta información.

El contenedor puede pasar su propio moniker, el moniker de un objeto en relación con el contenedor o el moniker completo de un objeto. En la práctica, si un contenedor pasa algo distinto del moniker completo de un objeto, cada objeto llama al contenedor de nuevo para solicitar la asignación del moniker completo, que el objeto requiere para registrarse en la tabla de objetos en ejecución.

El controlador de objetos almacena el moniker de un objeto relativo a su contenedor como parte del estado persistente del objeto. Sin embargo, el moniker del contenedor del objeto no debe almacenarse de forma persistente dentro del objeto porque se puede cambiar el nombre del contenedor en cualquier momento.

Notas a los autores de llamadas

Un contenedor llama a IOleObject::SetMoniker cuando se ha cambiado el nombre del contenedor y los objetos incrustados del contenedor actualmente o pueden servir como orígenes de vínculos. Los contenedores llaman a SetMoniker principalmente en el contexto de vinculación porque un objeto incrustado ya es consciente de su moniker. Incluso en el contexto de vinculación, llamar a este método es opcional porque los objetos pueden llamar a IOleClientSite::GetMoniker para forzar la asignación de un nuevo moniker.

Notas para los implementadores

Al recibir una llamada a IOleObject::SetMoniker, un objeto debe registrar su moniker completo en la tabla de objetos en ejecución y enviar la notificación IAdviseSink::OnRename a todos los receptores que existen para el objeto.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado oleidl.h

Consulte también

CreateItemMoniker

IAdviseSink::OnRename

IOleClientSite::GetMoniker

IOleObject

IOleObject::GetMoniker