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 |
---|---|
|
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 |