Funzione CreateItemMoniker (objbase.h)

Crea un moniker dell'elemento che identifica un oggetto all'interno di un oggetto contenente (in genere un documento composto).

Sintassi

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

Parametri

[in] lpszDelim

Puntatore a una stringa di caratteri wide (due byte per carattere) stringa con terminazione zero contenente il delimitatore (in genere "!") usato per separare il nome visualizzato dell'elemento dal nome visualizzato del relativo oggetto contenente.

[in] lpszItem

Puntatore a una stringa con terminazione zero che indica il nome dell'oggetto contenente per l'oggetto identificato. Questo nome può essere usato in seguito per recuperare un puntatore all'oggetto in una chiamata a IOleItemContainer::GetObject.

[out] ppmk

Indirizzo di una variabile puntatore IMoniker* che riceve il puntatore dell'interfaccia al moniker dell'elemento. In caso di esito positivo, la funzione ha chiamato AddRef nel moniker dell'elemento e il chiamante è responsabile della chiamata a Release. Se si verifica un errore, il puntatore dell'interfaccia fornito ha un valore NULL .

Valore restituito

Questa funzione può restituire i valori restituiti standard E_OUTOFMEMORY e S_OK.

Commenti

Un provider moniker, che usa moniker per identificare gli oggetti in modo che siano accessibili ad altre parti, chiamerebbe CreateItemMoniker per identificare gli oggetti con i moniker degli elementi. I moniker degli elementi si basano su una stringa e identificano gli oggetti contenuti all'interno di un altro oggetto e possono essere identificati singolarmente usando una stringa. L'oggetto contenente deve anche implementare l'interfaccia IOleContainer .

La maggior parte dei provider moniker sono applicazioni OLE che supportano il collegamento. Le applicazioni che supportano il collegamento a oggetti più piccoli di documenti basati su file, ad esempio un'applicazione server che consente il collegamento a una selezione all'interno di un documento, devono usare i moniker dell'elemento per identificare gli oggetti. Le applicazioni contenitore che consentono il collegamento a oggetti incorporati usano moniker degli elementi per identificare gli oggetti incorporati.

Il parametro lpszItem è il nome utilizzato dal documento per identificare in modo univoco l'oggetto. Ad esempio, se l'oggetto identificato è un intervallo di celle in un foglio di calcolo, un nome appropriato potrebbe essere simile a "A1:E7". Un nome appropriato quando l'oggetto identificato è un oggetto incorporato potrebbe essere simile a "embedobj1". L'oggetto contenente deve fornire un'implementazione dell'interfaccia IOleItemContainer che può interpretare questo nome e individuare l'oggetto corrispondente. Ciò consente al moniker dell'elemento di essere associato all'oggetto identificato.

I moniker dell'elemento non vengono usati in isolamento. Devono essere composti con un moniker che identifica anche l'oggetto contenente. Ad esempio, se l'oggetto identificato è un intervallo di celle contenuto in un documento basato su file, il moniker dell'elemento che identifica tale oggetto deve essere composto con il moniker file che identifica tale documento, causando un moniker composito equivalente a "C:\work\sales.xls! A1:E7."

I contenitori annidati sono consentiti anche, come nel caso in cui un oggetto sia contenuto in un oggetto incorporato all'interno di un altro documento. Il moniker completo di tale oggetto sarebbe l'equivalente di "C:\work\report.doc!embedobj1! A1:E7." In questo caso, ogni oggetto contenente deve chiamare CreateItemMoniker e fornire la propria implementazione dell'interfaccia IOleItemContainer .

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [app desktop | App UWP]
Server minimo supportato Windows 2000 Server [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione objbase.h
Libreria Ole32.lib
DLL Ole32.dll
Set di API ext-ms-win-com-ole32-l1-1-0 (introdotta in Windows 8)

Vedi anche

Imoniker

IMoniker::ComposeWith

IOleContainer

IOleItemContainer