atributo de codificación

El atributo ACF [encode] especifica que un procedimiento o un tipo de datos necesita compatibilidad con la serialización.

[ 
    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 otros atributos que se aplican a la interfaz en su conjunto.

interface-name

Especifica el nombre de la interfaz.

interfaz-definición

Especifica instrucciones IDL que forman la definición de la interfaz.

op-attribute-list

Especifica otros atributos operativos que se aplican al procedimiento como [descodificación].

proc-name

Especifica el nombre del procedimiento.

type-attribute-list

Especifica otros atributos que se aplican al tipo como [descodificación] y [allocate].

type-name

Especifica un tipo definido en el archivo IDL.

Comentarios

El atributo [encode] hace que el compilador MIDL genere código que una aplicación pueda usar para serializar los datos en un búfer. El atributo [descodificar] genera el código para desmarizar datos de un búfer.

Use los atributos [encode] y [decode] de un ACF para generar código de serialización para procedimientos o tipos definidos en el archivo IDL de una interfaz. Cuando se usa como atributo de interfaz, [encode] se aplica a todos los tipos y procedimientos definidos en el archivo IDL. Cuando se usa como atributo operativo, [codificar] solo se aplica al procedimiento especificado. Cuando se usa como atributo de tipo, [codificar] solo se aplica al tipo especificado.

Cuando se aplica el atributo [encode] o [decode] a un procedimiento, el compilador MIDL genera un código auxiliar de serialización de forma similar a los códigos auxiliares remotos que se generan para rutinas remotas. Un procedimiento puede ser un procedimiento remoto o un procedimiento de serialización, pero no puede ser ambos. El prototipo de la rutina generada se envía al STUB. Archivo H mientras el código auxiliar entra en el archivo STUB_C.C.

El compilador MIDL genera dos funciones para cada tipo al que se aplica el atributo [encode] y se aplica una función adicional para cada tipo al que se aplica el atributo [decode]. Por ejemplo, para un tipo definido por el usuario denominado MyType, el compilador genera código para las funciones MyType_Encode, MyType_Decode y MyType_AlignSize. Para estas funciones, el compilador escribe prototipos en STUB. H y código fuente para STUB_C.C.

Para obtener información adicional sobre los identificadores de serialización y la codificación o descodificación de datos, vea Serialization Services.

Ejemplos

/* 
    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(); 
}

Vea también

Archivo de configuración de la aplicación (ACF)

Asignar

Decodificar