Metodo IMarshal::D isconnectObject (objidl.h)
Rilascia tutte le connessioni a un oggetto . Il server dell'oggetto chiama l'implementazione dell'oggetto di questo metodo prima dell'arresto.
Sintassi
HRESULT DisconnectObject(
[in] DWORD dwReserved
);
Parametri
[in] dwReserved
Questo parametro è riservato e deve essere 0.
Valore restituito
Se il metodo ha esito positivo, il valore restituito viene S_OK. In caso contrario, è E_FAIL.
Commenti
Questo metodo viene implementato nell'oggetto, non nel proxy.
Note ai chiamanti
Il caso consueto in cui questo metodo viene chiamato si verifica quando un utente finale chiude forzatamente un server COM con uno o più oggetti in esecuzione che implementano IMarshal. Prima di arrestare, il server chiama la funzione CoDisconnectObject per rilasciare connessioni esterne a tutti gli oggetti in esecuzione. Per ogni oggetto che implementa IMarshal, tuttavia, questa funzione chiama DisconnectObject in modo che ogni oggetto che gestisce il proprio marshalling possa eseguire passaggi per notificare al proxy che sta per essere arrestato.Note per gli implementatori
Come parte del codice di arresto normale, un server deve chiamare CoDisconnectObject, che a sua volta chiama DisconnectObject, su ognuno dei relativi oggetti in esecuzione che implementa IMarshal.Il risultato di qualsiasi implementazione di questo metodo deve essere quello di consentire a un proxy di rispondere a tutte le chiamate successive dal client restituendo RPC_E_DISCONNECTED o CO_E_OBJNOTCONNECTED anziché tentare di inoltrare le chiamate all'oggetto originale. Spetta al client distruggere il proxy.
Se si implementa questo metodo per un oggetto non modificabile, ad esempio un moniker, l'implementazione non deve eseguire alcuna operazione perché tali oggetti vengono in genere copiati interi nello spazio indirizzi del client. Pertanto, non hanno né un proxy né una connessione all'oggetto originale. Per altre informazioni sul marshalling di oggetti non modificabili, vedere la sezione "Quando implementare" dell'argomento IMarshal .
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 | objidl.h (include ObjIdl.h) |