Condividi tramite


Metodo IOleObject::SetMoniker (oleidl.h)

Notifica a un oggetto del moniker del contenitore, al moniker dell'oggetto relativo al contenitore o al moniker completo dell'oggetto.

Sintassi

HRESULT SetMoniker(
  [in] DWORD    dwWhichMoniker,
  [in] IMoniker *pmk
);

Parametri

[in] dwWhichMoniker

Il moniker viene passato in pmk. I valori possibili provengono dall'enumerazione OLEWHICHMK.

[in] pmk

Puntatore a dove restituire il moniker.

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_FAIL
Operazione non riuscita.

Commenti

Un contenitore che supporta collegamenti a oggetti incorporati deve essere in grado di informare un oggetto incorporato quando il relativo moniker è stato modificato. In caso contrario, i tentativi successivi da parte dei client di collegamento per l'associazione all'oggetto avranno esito negativo. Il metodo IOleObject::SetMoniker consente a un contenitore di comunicare queste informazioni.

Il contenitore può passare il proprio moniker, il moniker di un oggetto rispetto al contenitore o il moniker completo di un oggetto. In pratica, se un contenitore passa un moniker diverso da quello completo di un oggetto, ogni oggetto chiama di nuovo il contenitore per richiedere l'assegnazione del moniker completo, che l'oggetto richiede di registrarsi nella tabella degli oggetti in esecuzione.

Il moniker di un oggetto relativo al relativo contenitore viene archiviato dal gestore dell'oggetto come parte dello stato permanente dell'oggetto. Il moniker del contenitore dell'oggetto, tuttavia, non deve essere archiviato in modo permanente all'interno dell'oggetto perché il contenitore può essere rinominato in qualsiasi momento.

Note ai chiamanti

Un contenitore chiama IOleObject::SetMoniker quando il contenitore è stato rinominato e gli oggetti incorporati del contenitore attualmente o possono fungere da origini di collegamento. I contenitori chiamano SetMoniker principalmente nel contesto del collegamento perché un oggetto incorporato è già a conoscenza del relativo moniker. Anche nel contesto del collegamento, la chiamata a questo metodo è facoltativa perché gli oggetti possono chiamare IOleClientSite::GetMoniker per forzare l'assegnazione di un nuovo moniker.

Note per gli implementatori

Dopo aver ricevuto una chiamata a IOleObject::SetMoniker, un oggetto deve registrare il relativo moniker completo nella tabella degli oggetti in esecuzione e inviare la notifica IAdviseSink::OnRename a tutti i sink esistenti per l'oggetto.

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

CreateItemMoniker

IAdviseSink::OnRename

IOleClientSite::GetMoniker

Ioleobject

IOleObject::GetMoniker