Funzione CoSwitchCallContext (combaseapi.h)
Commuta l'oggetto contesto di chiamata usato da CoGetCallContext.
Sintassi
HRESULT CoSwitchCallContext(
[in, optional] IUnknown *pNewObject,
[out] IUnknown **ppOldObject
);
Parametri
[in, optional] pNewObject
Puntatore a un'interfaccia nel nuovo oggetto contesto di chiamata. COM archivia questo puntatore senza aggiungere un riferimento al puntatore fino a quando CoSwitchCallContext viene chiamato con un altro oggetto. Questo parametro può essere NULL se si chiama CoSwitchCallContext per tornare al contesto di chiamata originale, ma non è stato presente alcun contesto di chiamata originale.
[out] ppOldObject
Indirizzo della variabile puntatore che riceve un puntatore all'oggetto contesto della chiamata attualmente in corso. Questo valore viene restituito in modo che il contesto di chiamata originale possa essere ripristinato dal marshaller personalizzato. Il puntatore restituito sarà NULL se non è stata eseguita alcuna chiamata in corso.
Valore restituito
Questa funzione può restituire i valori seguenti.
Codice restituito | Descrizione |
---|---|
|
La funzione ha avuto esito positivo. |
|
Memoria insufficiente. |
Commenti
I marshaller personalizzati chiamano CoSwitchCallContext per modificare l'oggetto contesto di chiamata usato dalla funzione CoGetCallContext . Prima di inviare una chiamata in arrivo, i marshaller personalizzati chiamano CoSwitchCallContext, specificando il nuovo oggetto contesto. Dopo l'invio di una risposta, è necessario ripristinare il contesto di chiamata originale chiamando di nuovo CoSwitchCallContext , questa volta passando un puntatore all'oggetto contesto originale.
CoSwitchCallContext non aggiunge un riferimento al nuovo oggetto contesto. I marshaller personalizzati devono garantire che la durata dell'oggetto contesto continui durante la chiamata e fino a quando la chiamata per ripristinare il contesto originale. I marshaller personalizzati non devono rilasciare il valore inserito nel parametro ppOldObject quando impostano il contesto.
Chiamare gli oggetti di contesto forniti dai marshaller personalizzati devono supportare l'interfaccia IServerSecurity .
Requisiti
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 | combaseapi.h (include Objbase.h) |
Libreria | Ole32.lib |
DLL | Ole32.dll |