Encode (attribut)

L’attribut [ encode ] ACF spécifie qu’une procédure ou un type de données a besoin de la prise en charge de la sérialisation.

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

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

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

Paramètres

interface-attribut-List

Spécifie d’autres attributs qui s’appliquent à l’ensemble de l’interface.

nom de l’interface

Spécifie le nom de l’interface.

définition d’interface

Spécifie les instructions IDL qui forment la définition de l’interface.

op-attribut-List

Spécifie d’autres attributs opérationnels qui s’appliquent à la procédure, tels que [ Decode ] .

nom de la procédure

Spécifie le nom de la procédure.

type-attribut-List

Spécifie d’autres attributs qui s’appliquent au type, par exemple [ Decode ] et [ allocate ] .

nom du type

Spécifie un type défini dans le fichier IDL.

Notes

L’attribut [ encode ] fait en sorte que le compilateur MIDL génère du code qu’une application peut utiliser pour sérialiser des données dans une mémoire tampon. L' [ attribut Decode ] génère le code pour démarshaler les données d’une mémoire tampon.

Utilisez les attributs [ encode ] et [ Decode ] dans un CCP pour générer le code de sérialisation des procédures ou des types définis dans le fichier IDL d’une interface. Lorsqu’il est utilisé comme attribut d’interface, [ encode ] s’applique à tous les types et procédures définis dans le fichier IDL. En cas d’utilisation comme attribut opérationnel, [ encode ] s’applique uniquement à la procédure spécifiée. Lorsqu’il est utilisé en tant qu’attribut de type, [ encode ] s’applique uniquement au type spécifié.

Lorsque l’attribut [ ] encode ou [ Decode ] est appliqué à une procédure, le compilateur MIDL génère un stub de sérialisation de la même façon que les stubs distants pour les routines distantes. Une procédure peut être une procédure distante ou de sérialisation, mais elle ne peut pas être à la fois. Le prototype de la routine générée est envoyé au STUB. Fichier H alors que le stub est placé dans le _ fichier c. c du stub.

Le compilateur MIDL génère deux fonctions pour chaque type auquel s’applique l’attribut [ encode ] et une fonction supplémentaire pour chaque type auquel [ s’applique l’attribut Decode ] . Par exemple, pour un type défini par l’utilisateur nommé MyType, le compilateur génère du code pour les _ fonctions de décodage MyType, MyType _ et MyType _ AlignSize. Pour ces fonctions, le compilateur écrit des prototypes dans STUB. H et code source pour STUB _ C.C.

Pour plus d’informations sur les handles de sérialisation et l’encodage ou le décodage des données, consultez services de sérialisation.

Exemples

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

Voir aussi

Fichier de configuration de l’application (ACF)

lui

décoder