Condividi tramite


Metodo IMarshal::ReleaseMarshalData (objidlbase.h)

Elimina un pacchetto di dati con marshalling.

Sintassi

HRESULT ReleaseMarshalData(
  [in] IStream *pStm
);

Parametri

[in] pStm

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

Valore restituito

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

Commenti

Se il pacchetto di dati marshallato di un oggetto non viene risolto nello spazio del processo client e il pacchetto non è più necessario, il client chiama ReleaseMarshalData nell'implementazione IMarshalData del proxy per indicare all'oggetto di eliminare il pacchetto di dati. La chiamata si verifica all'interno della funzione CoReleaseMarshalData . Il pacchetto di dati funge da riferimento aggiuntivo sull'oggetto e rilascia i dati è simile al rilascio di un puntatore dell'interfaccia chiamando Release.

Se il pacchetto di dati con 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, se mai si ha l'occasione di chiamare questo metodo. Una possibile eccezione sarebbe se si implementa IMarshal in una classe 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 può essere recuperato da più client, è possibile che, come parte della routine di nonmarshaling, chiamare ReleaseMarshalData per rilasciare il pacchetto di dati per ogni proxy.

Note per gli implementatori

Se l'implementazione archivia le informazioni sullo stato sui pacchetti di dati con 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 objidlbase.h (include ObjIdl.h)

Vedi anche

CoReleaseMarshalData

IMarshal