Método IMarshal::ReleaseMarshalData (objidlbase.h)

Destruye un paquete de datos serializado.

Sintaxis

HRESULT ReleaseMarshalData(
  [in] IStream *pStm
);

Parámetros

[in] pStm

Puntero a una secuencia que contiene el paquete de datos que se va a destruir.

Valor devuelto

Este método puede devolver los valores devueltos estándar S_OK y E_FAIL, así como cualquiera de los errores de acceso a secuencias para la interfaz IStream .

Comentarios

Si el paquete de datos serializado de un objeto no se desmarshala en el espacio de proceso del cliente y el paquete ya no es necesario, el cliente llama a ReleaseMarshalData en la implementación de IMarshal del proxy para indicar al objeto que destruya el paquete de datos. La llamada se produce dentro de la función CoReleaseMarshalData . El paquete de datos actúa como referencia adicional en el objeto y liberar los datos es como liberar un puntero de interfaz llamando a Release.

Si el paquete de datos serializado de alguna manera no llega al proceso de cliente o si ReleaseMarshalData no se vuelve a crear correctamente en el proxy, COM puede llamar a este método en el propio objeto.

Notas a los autores de llamadas

Rara vez tendrá ocasión de llamar a este método usted mismo. Una posible excepción sería si implementara IMarshal en un generador de clases para un objeto de clase en el que también va a implementar IMarshal. En este caso, si serializara el objeto en una tabla donde varios clientes podrían recuperarlo, podría llamar a ReleaseMarshalData como parte de la rutina de desmarque, llamar a ReleaseMarshalData para liberar el paquete de datos para cada proxy.

Notas para los implementadores

Si la implementación almacena información de estado sobre paquetes de datos serializado, puede usar este método para liberar la información de estado asociada al paquete de datos representado por pStm. La implementación también debe colocar el puntero de búsqueda en la secuencia más allá del último byte de datos.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows 2000 Server [aplicaciones de escritorio | Aplicaciones para UWP]
Plataforma de destino Windows
Encabezado objidlbase.h (incluya ObjIdl.h)

Consulte también

CoReleaseMarshalData

IMarshal