Metodo IMarshal::UnmarshalInterface (objidl.h)

Annulla ilmarshaling di un puntatore all'interfaccia.

Sintassi

HRESULT UnmarshalInterface(
  [in]  IStream *pStm,
  [in]  REFIID  riid,
  [out] void    **ppv
);

Parametri

[in] pStm

Puntatore al flusso da cui deve essere scollegato il puntatore di interfaccia.

[in] riid

Riferimento all'identificatore dell'interfaccia da annullare.

[out] ppv

Indirizzo della variabile del puntatore che riceve il puntatore dell'interfaccia. Al termine della restituzione, *ppv contiene il puntatore di interfaccia richiesto dell'interfaccia da annullare.

Valore restituito

Questo metodo può restituire il valore restituito standard E_FAIL, nonché i valori seguenti.

Codice restituito Descrizione
S_OK
Il puntatore all'interfaccia è stato scollegato correttamente.
E_NOINTERFACE
L'interfaccia specificata non è supportata.

Commenti

La libreria COM nel processo in cui si verifica unmarshaling chiama l'implementazione del proxy di questo metodo.

Note ai chiamanti

Questo metodo non viene chiamato direttamente, Esistono tuttavia alcune situazioni in cui è possibile chiamarla indirettamente tramite una chiamata a CoUnmarshalInterface. Ad esempio, se si implementa uno stub, l'implementazione chiamerebbe CoUnmarshalInterface quando lo stub riceve un puntatore di interfaccia come parametro in una chiamata al metodo.

Note per gli implementatori

L'implementazione del proxy deve leggere i dati scritti nel flusso dall'implementazione dell'oggetto originale di IMarshal::MarshalInterface e usare tali dati per inizializzare l'oggetto proxy il cui CLSID è stato restituito dalla chiamata dello stub di marshalling all'implementazione dell'oggetto originale di IMarshal::GetUnmarshalClass.

Per restituire il puntatore di interfaccia appropriato, l'implementazione del proxy può semplicemente chiamare QueryInterface su se stessa, passando i parametri riid e ppv . Tuttavia, l'implementazione di UnmarshalInterface è libera di creare un oggetto diverso e, se necessario, restituire un puntatore.

Subito prima dell'uscita, anche se si esce con un errore, l'implementazione deve riposizionare il puntatore seek nel flusso immediatamente dopo l'ultimo byte di dati letti.

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)

Vedi anche

CoUnmarshalInterface

IMarshal