Metodo IOleObject::Close (oleidl.h)
Modifica un oggetto incorporato dall'oggetto in esecuzione allo stato caricato. Disconnette un oggetto collegato dall'origine del collegamento.
Sintassi
HRESULT Close(
[in] DWORD dwSaveOption
);
Parametri
[in] dwSaveOption
Indica se l'oggetto deve essere salvato come parte della transizione allo stato caricato. I valori validi vengono ricavati dall'enumerazione OLECLOSE.
Valore restituito
Questo metodo restituisce S_OK se l'operazione ha esito positivo. Gli altri valori restituiti possibili includono i seguenti:
Codice restituito | Descrizione |
---|---|
|
All'utente è stato richiesto di salvare ma è stato scelto il pulsante Annulla dalla finestra di messaggio del prompt. |
Commenti
Note ai chiamanti
Un'applicazione contenitore chiama IOleObject::Close quando vuole spostare l'oggetto da un oggetto in esecuzione a uno stato caricato. Dopo una chiamata di questo tipo, l'oggetto viene ancora visualizzato nel contenitore, ma non è aperto per la modifica. La chiamata a IOleObject::Close su un oggetto caricato ma non in esecuzione non ha alcun effetto. La chiusura di un oggetto collegato significa semplicemente disconnetterla.Note per gli implementatori
Quando si riceve una chiamata a IOleObject::Close, un oggetto in esecuzione deve eseguire le operazioni seguenti:- Se l'oggetto è stato modificato dopo l'ultima apertura per la modifica, deve richiedere di essere salvato o meno, in base alle istruzioni specificate in dwSaveOption. Se l'opzione consiste nel salvare l'oggetto, deve chiamare l'interfaccia IOleClientSite::SaveObject del contenitore.
- Se l'oggetto dispone di connessioni IDataObject::D Advise con flag ADVF_DATAONSTOP, deve inviare una notifica IAdviseSink::OnDataChange . Per informazioni dettagliate, vedere IDataObject::D Advise .
- Se l'oggetto è attualmente proprietario degli Appunti, lo svuota chiamando OleFlushClipboard.
- Se l'oggetto è attualmente visibile, inviare una notifica al contenitore chiamando IOleClientSite::OnShowWindow con l'argomento fshow impostato su FALSE.
- Inviare notifiche IAdviseSink::OnClose ai sink appropriati.
- Infine, tagliare forzatamente tutti i client remoti chiamando CoDisconnectObject.
La chiamata a IOleObject::Close su un oggetto collegato la disconnette, ma non arresta, l'applicazione di origine. Un'applicazione di origine visibile all'utente quando l'oggetto viene chiuso rimane visibile e in esecuzione dopo la disconnessione e non invia una notifica IAdviseSink::OnClose al contenitore di collegamento.
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 |