Condividi tramite


Metodo IMarshal::ReleaseMarshalData (objidl.h)

Elimina definitivamente un pacchetto di dati sottoposto a marshalling.

Sintassi

HRESULT ReleaseMarshalData(
  [in] IStream *pStm
);

Parametri

[in] pStm

Puntatore a un flusso che contiene il pacchetto di dati da eliminare definitivamente.

Valore restituito

Questo metodo può restituire i valori restituiti standard S_OK e E_FAIL, nonché qualsiasi errore di accesso al flusso per l'interfaccia IStream .

Commenti

Se il pacchetto di dati sottoposto a marshalling di un oggetto non viene sincronizzato nello spazio di elaborazione client e il pacchetto non è più necessario, il client chiama ReleaseMarshalData sull'implementazione IMarshal del proxy per indicare all'oggetto di eliminare definitivamente il pacchetto di dati. La chiamata viene eseguita all'interno della funzione CoReleaseMarshalData . Il pacchetto di dati funge da riferimento aggiuntivo sull'oggetto e il rilascio dei dati è simile al rilascio di un puntatore all'interfaccia chiamando Release.

Se il pacchetto di dati sottoposto a marshalling in qualche modo non arriva nel processo client o se ReleaseMarshalData non viene ricreato correttamente nel proxy, COM può chiamare questo metodo sull'oggetto stesso.

Note ai chiamanti

Raramente si avrà l'occasione di chiamare questo metodo manualmente. Una possibile eccezione sarebbe se si implementi IMarshal in una class factory per un oggetto classe in cui si sta implementando anche IMarshal. In questo caso, se si esegue il marshalling dell'oggetto in una tabella in cui potrebbe essere recuperato da più client, è possibile, come parte della routine di annullamento delmarshaling, chiamare ReleaseMarshalData per rilasciare il pacchetto di dati per ogni proxy.

Note per gli implementatori

Se l'implementazione archivia informazioni sullo stato sui pacchetti di dati di cui è stato eseguito il marshalling, è possibile usare questo metodo per rilasciare le informazioni sullo stato associate al pacchetto di dati rappresentato da pStm. L'implementazione deve anche posizionare il puntatore di ricerca nel flusso oltre l'ultimo byte di dati.

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

CoReleaseMarshalData

IMarshal