Funzione CoGetInterfaceAndReleaseStream (combaseapi.h)

Annulla il marshalling di un buffer contenente un puntatore dell'interfaccia e rilascia il flusso quando un puntatore dell'interfaccia è stato eseguito il marshalling da un altro thread al thread chiamante.

Sintassi

HRESULT CoGetInterfaceAndReleaseStream(
  [in]  LPSTREAM pStm,
  [in]  REFIID   iid,
  [out] LPVOID   *ppv
);

Parametri

[in] pStm

Puntatore all'interfaccia IStream nel flusso da annullare.

[in] iid

Riferimento all'identificatore dell'interfaccia richiesta dall'oggetto non gestito.

[out] ppv

Indirizzo della variabile puntatore che riceve il puntatore dell'interfaccia richiesto in riid. Al termine della restituzione, *ppv contiene il puntatore dell'interfaccia richiesto all'interfaccia non modificata.

Valore restituito

Questa funzione può restituire i valori restituiti standard S_OK e E_INVALIDARG, nonché uno dei valori restituiti da CoUnmarshalInterface.

Commenti

Importante  

Nota sulla sicurezza: la chiamata a questo metodo con dati non attendibili è un rischio di sicurezza. Chiamare questo metodo solo con dati attendibili.

 
La funzione CoGetInterfaceAndReleaseStream esegue le attività seguenti:
  • Chiama CoUnmarshalInterface per annullare ilmarshal di un puntatore di interfaccia passato in precedenza in una chiamata a CoMarshalInterThreadInterfaceInStream.
  • Rilascia il puntatore di flusso. Anche se il nonmarshaling ha esito negativo, il flusso viene ancora rilasciato perché non esiste alcun modo efficace per ripristinare da un errore di questo tipo.

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

CoMarshalInterThreadInterfaceInStream

CoUnmarshalInterface