Compartilhar via


A função type_UserFree

A <função type>_UserFree é uma função auxiliar para os atributos [ wire_marshal] e [ user_marshal]. Os stubs chamam essa função para liberar os dados no lado do servidor. A função é definida como:

void __RPC_USER  <type>_UserFree(
    unsigned long __RPC_FAR * pFlags,
    <type_name>  __RPC_FAR *  pMyObj );

O <tipo> no nome da função significa o tipo de usuário especificado na definição de tipo [wire_marshal] ou [user_marshal] .

O parâmetro pFlags é um ponteiro para um campo de sinalizador longo sem sinal . A palavra superior do sinalizador contém sinalizadores de representação de dados NDR, conforme definido pelo OSF DCE para representações de ponto flutuante, ordem de bytes e caracteres. A palavra inferior contém um sinalizador de contexto de marshaling, conforme definido pelo canal COM. O layout exato dos sinalizadores dentro do campo é descrito na Função type_UserSize.

O parâmetro pMyObj é um ponteiro para um objeto de tipo de usuário. O mecanismo NDR libera o objeto de nível superior. Você é responsável por liberar todos os objetos para os quais o objeto de nível superior pode apontar.

As exceções devem ser capturadas e tratadas localmente, as exceções não devem ter permissão para propigar a pilha de chamadas.

Regras de marshaling para user_marshal e wire_marshal

wire_marshal

user_marshal