Método IOleClientSite::GetMoniker (oleidl.h)

Recupera un moniker para el sitio cliente del objeto. Un objeto puede forzar la asignación de su propio o el moniker de su contenedor especificando un valor para dwAssign.

Sintaxis

HRESULT GetMoniker(
  [in]  DWORD    dwAssign,
  [in]  DWORD    dwWhichMoniker,
  [out] IMoniker **ppmk
);

Parámetros

[in] dwAssign

Especifica si se va a obtener un moniker solo si ya existe uno, forzar la asignación de un moniker, crear un moniker temporal o quitar un moniker que se haya asignado. En la práctica, normalmente solicitará que la asignación de fuerza de contenedor del moniker. Los valores posibles se toman de la enumeración OLEGETMONIKER .

[in] dwWhichMoniker

Especifica si se va a devolver el moniker del contenedor, el moniker del objeto en relación con el contenedor o el moniker completo del objeto. En la práctica, normalmente solicitará el moniker completo del objeto. Los valores posibles se toman de la enumeración OLEWHICHMK .

[out] ppmk

Puntero a una variable de puntero IMoniker que recibe el puntero de interfaz al moniker del sitio cliente del objeto. Si se produce un error, la implementación debe establecer ppmk en NULL. Cada vez que un contenedor recibe una llamada a IOleClientSite::GetMoniker, debe aumentar el recuento de referencias en el puntero ppmk que devuelve. Es responsabilidad del autor de la llamada llamar a Release cuando termine con el puntero.

Valor devuelto

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

Código devuelto Descripción
E_NOTIMPL
Este contenedor no puede asignar monikers a objetos . Este es el caso de los contenedores OLE 1.

Comentarios

Los contenedores implementan GetMoniker como una forma de pasar monikers para sus objetos incrustados a los clientes que necesitan vincular a esos objetos.

Cuando se realiza un vínculo a un objeto incrustado o a un pseudoobjeto dentro de él (un intervalo de celdas de una hoja de cálculo, por ejemplo), el objeto necesita un moniker para construir el moniker compuesto que indica el origen del vínculo. Si el objeto incrustado aún no tiene un moniker, puede llamar a GetMoniker para solicitar uno.

Cada contenedor que espera contener vínculos a incrustaciones debe admitir GetMoniker para proporcionar OLEWHICHMK_CONTAINER, lo que permite el seguimiento de vínculos cuando el cliente de vínculo y los archivos de origen del vínculo se mueven, pero mantienen la misma posición relativa.

Un objeto no debe almacenar de forma persistente su moniker completo o el moniker de su contenedor, ya que estos pueden cambiar mientras el objeto no se carga. Por ejemplo, se podría cambiar el nombre del contenedor o del objeto, en cuyo caso, almacenar el moniker del contenedor o el moniker completo del objeto haría imposible que un cliente realice un seguimiento de un vínculo al objeto.

En algunos casos muy especializados, es posible que un objeto ya no necesite un moniker previamente asignado y que desee quitarlo como optimización. En tales casos, el objeto puede llamar a GetMoniker con OLEGETMONIKER_UNASSIGN para quitar el moniker.

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

IOleClientSite

IOleClientSite::GetMoniker

IOleObject::SetMoniker