Función CoUnmarshalInterface (combaseapi.h)
Inicializa un proxy recién creado mediante los datos escritos en la secuencia mediante una llamada anterior a la función CoMarshalInterface y devuelve un puntero de interfaz a ese proxy.
Sintaxis
HRESULT CoUnmarshalInterface(
[in] LPSTREAM pStm,
[in] REFIID riid,
[out] LPVOID *ppv
);
Parámetros
[in] pStm
Puntero a la secuencia desde la que se va a desenlazar la interfaz.
[in] riid
Referencia al identificador de la interfaz que se va a desmarmar. Para IID_NULL, la interfaz devuelta es la definida por la secuencia, objref.iid.
[out] ppv
Dirección de la variable de puntero que recibe el puntero de interfaz solicitado en riid. Tras la devolución correcta, *ppv contiene el puntero de interfaz solicitado para la interfaz no desactivada.
Valor devuelto
Esta función puede devolver el valor devuelto estándar E_FAIL, los errores devueltos por CoCreateInstance y los valores siguientes.
Código devuelto | Descripción |
---|---|
|
El puntero de interfaz se desenlazó correctamente. |
|
pStm es un puntero no válido. |
|
No se llamó a la función CoInitialize o OleInitialize en el subproceso actual antes de llamar a esta función. |
|
La aplicación de objeto se ha desconectado del sistema de comunicación remota (por ejemplo, como resultado de una llamada a la función CoDisconnectObject ). |
|
Error al leer la base de datos de registro. |
|
QueryInterface final de esta función para la interfaz solicitada devolvió E_NOINTERFACE. |
Comentarios
Nota de seguridad: Llamar a este método con datos que no son de confianza es un riesgo de seguridad. Llame a este método solo con datos de confianza.
- Lee de la secuencia el CLSID que se va a usar para crear una instancia del proxy.
- Obtiene un puntero IMarshal al proxy que va a realizar la desacoplación. Si el objeto usa la implementación de serialización predeterminada de COM, el puntero obtenido es para una instancia del objeto proxy genérico. Si la serialización se está produciendo entre dos subprocesos en el mismo proceso, el puntero es a una instancia del serializador de subprocesos sin subprocesos en proceso. Si el objeto proporciona su propio código de serialización, CoUnmarshalInterface llama a la función CoCreateInstance y pasa el CLSID que lee de la secuencia de serialización. CoCreateInstance crea una instancia del proxy del objeto y devuelve un puntero de interfaz IMarshal al proxy.
- Con cualquier puntero de interfaz IMarshal que haya adquirido, la función llama a IMarshal::UnmarshalInterface y, si procede, IMarshal::ReleaseMarshalData.
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 | combaseapi.h (incluya Objbase.h) |
Library | Ole32.lib |
Archivo DLL | Ole32.dll |