Função CoGetMarshalSizeMax (combaseapi.h)
Retorna um limite superior no número de bytes necessários para realizar marshaling do ponteiro de interface especificado para o objeto especificado.
Sintaxe
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
Um ponteiro para o valor de limite superior no tamanho, em bytes, do pacote de dados a ser gravado no fluxo de marshaling. Se esse parâmetro for 0, o tamanho do pacote será desconhecido.
[in] riid
Uma referência ao identificador da interface cujo ponteiro deve ser empacotado. Essa interface deve ser derivada da interface IUnknown .
[in] pUnk
Um ponteiro para a interface a ser empacotada. Essa interface deve ser derivada da interface IUnknown .
[in] dwDestContext
O contexto de destino em que a interface especificada deve ser desmarsalada. Os valores de dwDestContext vêm da enumeração MSHCTX.
[in, optional] pvDestContext
Esse parâmetro é reservado e deve ser NULL.
[in] mshlflags
Indica se os dados a serem empacotados devem ser transmitidos de volta para o processo do cliente, caso normal ou gravados em uma tabela global, em que podem ser recuperados por vários clientes. Os valores vêm da enumeração MSHLFLAGS.
Retornar valor
Essa função pode retornar o valor retornado padrão E_UNEXPECTED, bem como os valores a seguir.
Código de retorno | Descrição |
---|---|
|
O limite superior foi retornado com êxito. |
|
Antes que essa função possa ser chamada, a função CoInitialize ou OleInitialize deve ser chamada. |
Comentários
Essa função executa as seguintes tarefas:
- Consulta o objeto para um ponteiro IMarshal ou, se o objeto não implementar IMarshal, obtém um ponteiro para o marshaler padrão do COM.
- Usando o ponteiro obtido no item anterior, chama IMarshal::GetMarshalSizeMax.
- Adiciona ao valor retornado pela chamada a GetMarshalSizeMax o tamanho do cabeçalho de dados de marshaling e, possivelmente, o do PROXY CLSID para obter o tamanho máximo em bytes da quantidade de dados a serem gravados no fluxo de marshaling.
O valor retornado por esse método tem a garantia de ser válido apenas desde que o estado interno do objeto que está sendo realizado em marshaling não seja alterado. Portanto, o marshaling real deve ser feito imediatamente após o retorno dessa função ou o stub executa o risco de que o objeto, devido a alguma alteração no estado, possa exigir mais memória para realizar marshaling do que o indicado originalmente.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 2000 Professional [aplicativos da área de trabalho | Aplicativos UWP] |
Servidor mínimo com suporte | Windows 2000 Server [aplicativos da área de trabalho | Aplicativos UWP] |
Plataforma de Destino | Windows |
Cabeçalho | combaseapi.h (inclua Objbase.h) |
Biblioteca | Ole32.lib |
DLL | Ole32.dll |