Condividi tramite


Metodo IOleClientSite::GetMoniker (oleidl.h)

Recupera un moniker per il sito client dell'oggetto. Un oggetto può forzare l'assegnazione del moniker del contenitore specificando un valore per dwAssign.

Sintassi

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

Parametri

[in] dwAssign

Specifica se ottenere un moniker solo se esiste già, forzare l'assegnazione di un moniker, creare un moniker temporaneo o rimuovere un moniker assegnato. In pratica, in genere si richiederà che l'assegnazione del moniker venga forzata dal contenitore. I valori possibili vengono acquisiti dall'enumerazione OLEGETMONIKER .

[in] dwWhichMoniker

Specifica se restituire il moniker del contenitore, il moniker dell'oggetto rispetto al contenitore o il moniker completo dell'oggetto. In pratica, in genere si richiederà il moniker completo dell'oggetto. I valori possibili vengono acquisiti dall'enumerazione OLEWHICHMK .

[out] ppmk

Puntatore a una variabile puntatore IMoniker che riceve il puntatore dell'interfaccia al moniker per il sito client dell'oggetto. Se si verifica un errore, l'implementazione deve impostare ppmk su NULL. Ogni volta che un contenitore riceve una chiamata a IOleClientSite::GetMoniker, deve aumentare il conteggio dei riferimenti sul puntatore ppmk restituito. È responsabilità del chiamante chiamare Release al termine del puntatore.

Valore restituito

Questo metodo restituisce S_OK se l'operazione ha esito positivo. Gli altri valori restituiti possibili includono i seguenti:

Codice restituito Descrizione
E_NOTIMPL
Questo contenitore non può assegnare moniker agli oggetti. Si tratta del caso con i contenitori OLE 1.

Commenti

I contenitori implementano GetMoniker come modo per passare i moniker per gli oggetti incorporati ai client che devono collegare a tali oggetti.

Quando viene eseguito un collegamento a un oggetto incorporato o a uno pseudo-oggetto all'interno di esso (un intervallo di celle in un foglio di calcolo, ad esempio), l'oggetto deve creare un moniker per costruire il moniker composito che indica l'origine del collegamento. Se l'oggetto incorporato non ha già un moniker, può chiamare GetMoniker per richiedere uno.

Ogni contenitore che prevede di contenere collegamenti a incorporamenti deve supportare GetMoniker per fornire OLEWHICHMK_CONTAINER, consentendo così il rilevamento dei collegamenti quando il client di collegamento e i file di origine del collegamento vengono spostati, ma mantengono la stessa posizione relativa.

Un oggetto non deve archiviare in modo permanente il moniker completo o il moniker del contenitore, perché può cambiare mentre l'oggetto non viene caricato. Ad esempio, il contenitore o l'oggetto possono essere rinominati, in cui, in caso, archiviare il moniker del contenitore o il moniker completo dell'oggetto renderebbe impossibile per un client tenere traccia di un collegamento all'oggetto.

In alcuni casi molto specializzati, un oggetto potrebbe non avere più bisogno di un moniker assegnato in precedenza e potrebbe volerlo rimuovere come ottimizzazione. In questi casi, l'oggetto può chiamare GetMoniker con OLEGETMONIKER_UNASSIGN per avere rimosso il moniker.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione oleidl.h

Vedi anche

Ioleclientsite

IOleClientSite::GetMoniker

IOleObject::SetMoniker