Función CoGetMarshalSizeMax (combaseapi.h)
Devuelve un límite superior en el número de bytes necesarios para calcular las referencias del puntero de interfaz especificado al objeto especificado.
Sintaxis
HRESULT CoGetMarshalSizeMax(
[out] ULONG *pulSize,
[in] REFIID riid,
[in] LPUNKNOWN pUnk,
[in] DWORD dwDestContext,
[in, optional] LPVOID pvDestContext,
[in] DWORD mshlflags
);
Parámetros
[out] pulSize
Puntero al valor de límite superior del tamaño, en bytes, del paquete de datos que se va a escribir en el flujo de serialización. Si este parámetro es 0, se desconoce el tamaño del paquete.
[in] riid
Referencia al identificador de la interfaz cuyo puntero se va a serializar. Esta interfaz debe derivarse de la interfaz IUnknown .
[in] pUnk
Puntero a la interfaz que se va a serializar. Esta interfaz debe derivarse de la interfaz IUnknown .
[in] dwDestContext
Contexto de destino en el que la interfaz especificada se va a desmarmar. Los valores de dwDestContext proceden de la enumeración MSHCTX.
[in, optional] pvDestContext
Este parámetro está reservado y debe ser NULL.
[in] mshlflags
Indica si los datos que se van a serializar se van a transmitir de vuelta al proceso de cliente en el caso normal o se escriben en una tabla global, donde varios clientes pueden recuperarlos. Los valores proceden de la enumeración MSHLFLAGS.
Valor devuelto
Esta función puede devolver el valor devuelto estándar E_UNEXPECTED, así como los siguientes valores.
Código devuelto | Descripción |
---|---|
|
El límite superior se devolvió correctamente. |
|
Para poder llamar a esta función, se debe llamar a la función CoInitialize o OleInitialize . |
Comentarios
Esta función realiza las siguientes tareas:
- Consulta el objeto de un puntero IMarshal o, si el objeto no implementa IMarshal, obtiene un puntero al serializador estándar de COM.
- Con el puntero obtenido en el elemento anterior, llama a IMarshal::GetMarshalSizeMax.
- Agrega al valor devuelto por la llamada a GetMarshalSizeMax el tamaño del encabezado de datos de serialización y, posiblemente, el del CLSID de proxy para obtener el tamaño máximo en bytes de la cantidad de datos que se van a escribir en el flujo de serialización.
Se garantiza que el valor devuelto por este método es válido solo siempre que el estado interno del objeto que se serializa no cambie. Por lo tanto, la serialización real debe realizarse inmediatamente después de que se devuelva esta función, o el código auxiliar corre el riesgo de que el objeto, debido a algún cambio en el estado, podría requerir más memoria para serializar la que se indicó originalmente.
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 |