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
S_OK
La funzione ha avuto esito positivo.
E_OUT_OF_MEMORY
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

Vedi anche

CoGetCallContext

IServerSecurity

Sicurezza in COM