Método IMarshal::UnmarshalInterface (objidl.h)
Desmarshala un puntero de interfaz.
Sintaxis
HRESULT UnmarshalInterface(
[in] IStream *pStm,
[in] REFIID riid,
[out] void **ppv
);
Parámetros
[in] pStm
Puntero a la secuencia desde la que se va a desmarcar el puntero de interfaz.
[in] riid
Referencia al identificador de la interfaz que se va a desmarcar.
[out] ppv
Dirección de la variable de puntero que recibe el puntero de interfaz. Tras la devolución correcta, *ppv contiene el puntero de interfaz solicitado de la interfaz que se va a desmarcar.
Valor devuelto
Este método puede devolver el valor devuelto estándar E_FAIL, así como los siguientes valores.
Código devuelto | Descripción |
---|---|
|
El puntero de interfaz se desmarshaló correctamente. |
|
No se admite la interfaz especificada. |
Comentarios
La biblioteca COM del proceso en el que se va a producir un desmarshaling llama a la implementación del proxy de este método.
Notas a los autores de llamadas
No se llama a este método directamente. Sin embargo, hay algunas situaciones en las que podría llamarla indirectamente a través de una llamada a CoUnmarshalInterface. Por ejemplo, si va a implementar un código auxiliar, la implementación llamaría a CoUnmarshalInterface cuando el código auxiliar recibe un puntero de interfaz como parámetro en una llamada al método.Notas para los implementadores
La implementación del proxy debe leer los datos escritos en la secuencia por la implementación del objeto original de IMarshal::MarshalInterface y usar esos datos para inicializar el objeto proxy cuyo CLSID devolvió la llamada del código auxiliar de serialización a la implementación del objeto original de IMarshal::GetUnmarshalClass.Para devolver el puntero de interfaz adecuado, la implementación del proxy simplemente puede llamar a QueryInterface en sí misma, pasando los parámetros riid y ppv . Sin embargo, la implementación de UnmarshalInterface es libre de crear un objeto diferente y, si es necesario, devolverle un puntero.
Justo antes de salir, incluso si se sale con un error, la implementación debe cambiar la posición del puntero de búsqueda en la secuencia inmediatamente después del último byte de los datos leídos.
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 | objidl.h (incluya ObjIdl.h) |