Compartilhar via


codificar atributo

O atributo ACF [codificação] especifica que um procedimento ou um tipo de dados precisa de suporte para serialização.

[ 
    encode 
    [ , interface-attribute-list] 
] 
interface interface-name
{
    interface-definition
}

[ encode [ , op-attribute-list] ] proc-name

typedef [encode [ , type-attribute-list] ] type-name

Parâmetros

interface-attribute-list

Especifica outros atributos que se aplicam à interface como um todo.

interface-name

Especifica o nome da interface.

interface-definition

Especifica instruções IDL que formam a definição da interface .

op-attribute-list

Especifica outros atributos operacionais que se aplicam ao procedimento, como [decodificar].

proc-name

Especifica o nome do procedimento.

type-attribute-list

Especifica outros atributos que se aplicam ao tipo como [decodificar] e [alocar].

type-name

Especifica um tipo definido no arquivo IDL.

Comentários

O atributo [encode] faz com que o compilador MIDL gere o código que um aplicativo pode usar para serializar dados em um buffer. O atributo [decode] gera o código para demarsalar dados de um buffer.

Use os atributos [encode] e [decode] em um ACF para gerar código de serialização para procedimentos ou tipos definidos no arquivo IDL de uma interface. Quando usado como um atributo de interface, [codificação] aplica-se a todos os tipos e procedimentos definidos no arquivo IDL. Quando usado como um atributo operacional, [codificação] aplica-se somente ao procedimento especificado. Quando usado como um atributo de tipo, [codificação] aplica-se somente ao tipo especificado.

Quando o atributo [encode] ou [decode] é aplicado a um procedimento, o compilador MIDL gera um stub de serialização de maneira semelhante à medida que stubs remotos são gerados para rotinas remotas. Um procedimento pode ser remoto ou serializador, mas não pode ser ambos. O protótipo da rotina gerada é enviado para o STUB. Arquivo H enquanto o próprio stub entra no arquivo STUB_C.C.

O compilador MIDL gera duas funções para cada tipo ao qual o atributo [codificação] se aplica e uma função adicional para cada tipo ao qual o atributo [decode] se aplica. Por exemplo, para um tipo definido pelo usuário chamado MyType, o compilador gera código para as funções MyType_Encode, MyType_Decode e MyType_AlignSize. Para essas funções, o compilador grava protótipos no STUB. H e código-fonte para STUB_C.C.

Para obter informações adicionais sobre identificadores de serialização e codificação ou decodificação de dados, consulte Serviços de Serialização.

Exemplos

/* 
    ACF file example; 
    Assumes MyType1, MyType2, MyType3, MyProc1, MyProc2, MyProc3 defined 
    in IDL file  
    MyType1, MyType2, MyProc1, MyProc2 have encode and decode 
    serialization support 
    MyType3 and MyProc3 have encode serialization support only 
*/ 
[ 
    encode, 
    implicit_handle(handle_t bh) 
]    
interface regress 
{ 
    typedef [ decode ] MyType1; 
    typedef [ encode, decode ] MyType2; 
    [ decode ] MyProcc1(); 
    [ encode ] MyProc2(); 
}

Confira também

AcF (Arquivo de Configuração de Aplicativo)

Alocar

Decodificar