Compartir a través de


Función CreateItemMoniker (objbase.h)

Crea un moniker de elemento que identifica un objeto dentro de un objeto contenedor (normalmente un documento compuesto).

Sintaxis

HRESULT CreateItemMoniker(
  [in]  LPCOLESTR lpszDelim,
  [in]  LPCOLESTR lpszItem,
  [out] LPMONIKER *ppmk
);

Parámetros

[in] lpszDelim

Puntero a una cadena de caracteres anchos (dos bytes por carácter) cadena terminada en cero que contiene el delimitador (normalmente "!") que se usa para separar el nombre para mostrar de este elemento del nombre para mostrar de su objeto contenedor.

[in] lpszItem

Puntero a una cadena terminada en cero que indica el nombre del objeto contenedor para el objeto que se identifica. Este nombre se puede usar más adelante para recuperar un puntero al objeto en una llamada a IOleItemContainer::GetObject.

[out] ppmk

Dirección de una variable de puntero IMoniker* que recibe el puntero de interfaz al moniker de elemento. Cuando se ejecuta correctamente, la función ha llamado a AddRef en el moniker de elemento y el autor de la llamada es responsable de llamar a Release. Si se produce un error, el puntero de interfaz proporcionado tiene un valor NULL .

Valor devuelto

Esta función puede devolver los valores devueltos estándar E_OUTOFMEMORY y S_OK.

Comentarios

Un proveedor de moniker, que entrega monikers para identificar sus objetos para que sean accesibles para otras partes, llamaría a CreateItemMoniker para identificar sus objetos con monikers de elementos. Los monikers de elementos se basan en una cadena e identifican los objetos contenidos en otro objeto y se pueden identificar individualmente mediante una cadena. El objeto contenedor también debe implementar la interfaz IOleContainer .

La mayoría de los proveedores de moniker son aplicaciones OLE que admiten la vinculación. Las aplicaciones que admiten la vinculación a objetos menores que los documentos basados en archivos, como una aplicación de servidor que permite vincular a una selección dentro de un documento, deben usar monikers de elementos para identificar los objetos. Las aplicaciones contenedoras que permiten vincular a objetos incrustados usan monikers de elementos para identificar los objetos incrustados.

El parámetro lpszItem es el nombre utilizado por el documento para identificar el objeto de forma única. Por ejemplo, si el objeto que se identifica es un rango de celdas de una hoja de cálculo, un nombre adecuado podría ser similar a "A1:E7". Un nombre adecuado cuando el objeto que se identifica es un objeto incrustado podría ser algo parecido a "embedobj1". El objeto contenedor debe proporcionar una implementación de la interfaz IOleItemContainer que puede interpretar este nombre y buscar el objeto correspondiente. Esto permite que el moniker de elemento se enlace al objeto que identifica.

Los monikers de elementos no se usan de forma aislada. Deben estar compuestos con un moniker que identifique también el objeto contenedor. Por ejemplo, si el objeto que se identifica es un rango de celdas contenido en un documento basado en archivos, el moniker de elemento que identifica ese objeto debe estar compuesto con el moniker de archivo que identifica ese documento, lo que da como resultado un moniker compuesto que es el equivalente de "C:\work\sales.xls! A1:E7."

También se permiten contenedores anidados, como en el caso de que un objeto se encuentre dentro de un objeto incrustado dentro de otro documento. El moniker completo de este objeto sería el equivalente de "C:\work\report.doc!embedobj1! A1:E7." En este caso, cada objeto contenedor debe llamar a CreateItemMoniker y proporcionar su propia implementación de la interfaz IOleItemContainer .

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows 2000 Server [aplicaciones de escritorio | Aplicaciones para UWP]
Plataforma de destino Windows
Encabezado objbase.h
Library Ole32.lib
Archivo DLL Ole32.dll
Conjunto de API ext-ms-win-com-ole32-l1-1-0 (introducido en Windows 8)

Consulte también

Imoniker

IMoniker::ComposeWith

IOleContainer

IOleItemContainer