CoGetMarshalSizeMax
9/8/2008
Essa função retorna um limite superior do número de bytes necessário para empacotar o ponteiro interface especificado para o objeto especificado.
Syntax
STDAPI CoGetMarshalSizeMax(
ULONG* pulSize,
REFIID riid,
IUnknown* pUnk,
DWORD dwDestContext,
LPVOID pvDestContext,
DWORD mshlflags
);
Parameters
- pulSize
[out] Ponteiro para a superior-ligado valor sobre o tamanho, em bytes, da pacote de dados a serem gravados para transmitir o empacotamento; Um valor de zero significa que o tamanho do pacote é desconhecido.
- riid
[no] Referência ao identificador da interface cujo ponteiro é para ser empacotado. Esta interface deve ser derivado a partir de IUnknown interface.
- pUnk
[no] Ponteiro para a interface para ser empacotado. Esta interface deve ser derivado a partir de IUnknown interface.
- dwDestContext
[no] Contexto de destino em que a interface especificada deve ser unmarshaled. Valores para dwDestContext veio de enumeração MSHCTX.
- pvDestContext
[no] Reservado para uso futuro; deve ser NULL.
- mshlflags
[no] Sinalizador que indica se os dados ser empacotado é para serem transmitidos voltar para o processo cliente — a maiúsculas e minúsculas normal — ou gravado em uma tabela global, onde ele pode ser recuperado por múltiplo clientes. Valores provenientes de enumeração MSHLFLAGS.
Return Value
Essa função suporta o padrão valor de retorno E_UNEXPECTED, bem como o seguinte:
- S_OK
O limite superior retornou com êxito.
- CO_E_NOTINITIALIZED
O CoInitialize função não foi chamado na atual segmento antes essa função foi chamado.
Remarks
Esta função executa a seguinte tarefas:
- Consultas de objeto para um IMarshal ponteiro ou, se o objeto não implementar IMarshal, obtém um ponteiro para padrão do COM empacotador.
- Usando o ponteiro é obtido na acima etapa, chamadas IMarshal::GetMarshalSizeMax.
- Adiciona o valor retornado pela chamar para GetMarshalSizeMax o tamanho do empacotamento cabeçalho dados e, possivelmente, que o proxy CLSID para obter o tamanho máximo em bytes da quantidade de dados a serem gravados para transmitir o empacotamento.
Você não fizer isso explicitamente chamar esta função, a menos que você estiver implementando IMarshal, no qual maiúsculas e minúsculas o stub empacotamento deve chamar esta função para o tamanho correto do pacote de dados para ser empacotado get.
O valor retornado por esse método é garantida seja válido apenas desde que o estado interno do objeto sendo empacotado não alteração.
Portanto, o real empacotamento deve ser feito logo após essa função retorna, ou de stub é executada o risco que o objeto, because of alguma alteração no estado, talvez necessitam mais memória para empacotar que originalmente indicado.
Para determinar se a plataforma oferece suporte a essa função, consulte Determinando suporte COM APIs.
Requirements
Header | objbase.h |
Library | ole32.lib |
Windows Embedded CE | Windows CE 3.0 and later |
Windows Mobile | Windows Mobile Version 5.0 and later |