Share via


Codieren des Attributs

Das ACF-Attribut [encode] gibt an, dass eine Prozedur oder ein Datentyp Serialisierungsunterstützung benötigt.

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

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

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

Parameter

interface-attribute-list

Gibt andere Attribute an, die für die Schnittstelle als Ganzes gelten.

Schnittstellenname

Gibt den Namen der Schnittstelle an.

Schnittstellendefinition

Gibt IDL-Anweisungen an, die die Definition der Schnittstelle bilden.

op-attribute-list

Gibt andere operative Attribute an, die für die Prozedur gelten, z. B. [decodieren].

proc-name

Gibt den Namen der Prozedur an.

type-attribute-list

Gibt andere Attribute an, die für den Typ gelten, z. B. [decodieren] und [allocate].

type-name

Gibt einen typ an, der in der IDL-Datei definiert ist.

Bemerkungen

Das Attribut [encode] bewirkt, dass der MIDL-Compiler Code generiert, den eine Anwendung zum Serialisieren von Daten in einen Puffer verwenden kann. Das [decode] -Attribut generiert den Code zum Aufheben derMardierung von Daten aus einem Puffer.

Verwenden Sie die Attribute [codieren] und [decodieren] in einem ACF, um Serialisierungscode für Prozeduren oder Typen zu generieren, die in der IDL-Datei einer Schnittstelle definiert sind. Bei Verwendung als Schnittstellenattribute gilt [encode] für alle Typen und Prozeduren, die in der IDL-Datei definiert sind. Bei Verwendung als operatives Attribut gilt [encode] nur für die angegebene Prozedur. Bei Verwendung als Typattribute gilt [encode] nur für den angegebenen Typ.

Wenn das Attribut [encode] oder [decode] auf eine Prozedur angewendet wird, generiert der MIDL-Compiler auf ähnliche Weise einen Serialisierungsstub, wie Remotestubs für Remoteroutinen generiert werden. Eine Prozedur kann entweder eine Remoteprozedur oder eine serialisierende Prozedur sein, aber sie kann nicht beides sein. Der Prototyp der generierten Routine wird an den STUB gesendet. H-Datei, während der Stub selbst in die Datei STUB_C.C wechselt.

Der MIDL-Compiler generiert zwei Funktionen für jeden Typ, für den das Attribut [encode] gilt, und eine zusätzliche Funktion für jeden Typ, für den das Attribut [decodierung] gilt. Beispielsweise generiert der Compiler für einen benutzerdefinierten Typ namens MyType Code für die Funktionen MyType_Encode, MyType_Decode und MyType_AlignSize. Für diese Funktionen schreibt der Compiler Prototypen in STUB. H und Quellcode für STUB_C.C.

Weitere Informationen zu Serialisierungshandles und zum Codieren oder Decodieren von Daten finden Sie unter Serialisierungsdienste.

Beispiele

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

Weitere Informationen

Anwendungskonfigurationsdatei (Application Configuration File, ACF)

Zuordnen

Decodieren