Compartilhar via


CoGetMarshalSizeMax

Windows Mobile SupportedWindows Embedded CE Supported

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:

  1. 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.
  2. Usando o ponteiro é obtido na acima etapa, chamadas IMarshal::GetMarshalSizeMax.
  3. 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

See Also

Reference

COM Functions
CoMarshalInterface