atribut enkode

Atribut ACF [encode] menentukan bahwa prosedur atau jenis data memerlukan dukungan serialisasi.

[ 
    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

Menentukan atribut lain yang berlaku untuk antarmuka secara keseluruhan.

nama antarmuka

Menentukan nama antarmuka.

definisi antarmuka

Menentukan pernyataan IDL yang membentuk definisi antarmuka.

op-attribute-list

Menentukan atribut operasional lain yang berlaku untuk prosedur seperti [dekode].

proc-name

Menentukan nama prosedur.

type-attribute-list

Menentukan atribut lain yang berlaku untuk jenis seperti [dekode] dan [alokasikan].

type-name

Menentukan jenis yang ditentukan dalam file IDL.

Keterangan

Atribut [encode] menyebabkan pengkompilasi MIDL menghasilkan kode yang dapat digunakan aplikasi untuk menserialisasikan data ke dalam buffer. Atribut [decode] menghasilkan kode untuk membatalkan nama data dari buffer.

Gunakan atribut [encode] dan [dekode] dalam ACF untuk menghasilkan kode serialisasi untuk prosedur atau jenis yang ditentukan dalam file IDL antarmuka. Saat digunakan sebagai atribut antarmuka, [encode] berlaku untuk semua jenis dan prosedur yang ditentukan dalam file IDL. Saat digunakan sebagai atribut operasional, [encode] hanya berlaku untuk prosedur yang ditentukan. Saat digunakan sebagai atribut type, [encode] hanya berlaku untuk jenis yang ditentukan.

Ketika atribut [encode] atau [decode] diterapkan pada prosedur, kompilator MIDL menghasilkan rintangan serialisasi dengan cara yang sama karena rintangan jarak jauh dihasilkan untuk rutinitas jarak jauh. Prosedur dapat berupa prosedur jarak jauh atau serialisasi, tetapi tidak boleh keduanya. Prototipe rutin yang dihasilkan dikirim ke STUB. File H sementara stub itu sendiri masuk ke file STUB_C.C.

Pengkompilasi MIDL menghasilkan dua fungsi untuk setiap jenis yang berlaku untuk atribut [encode] , dan satu fungsi tambahan untuk setiap jenis atribut [decode] berlaku untuk. Misalnya, untuk jenis yang ditentukan pengguna bernama MyType, pengkompilasi menghasilkan kode untuk fungsi MyType_Encode, MyType_Decode, dan MyType_AlignSize. Untuk fungsi-fungsi ini, pengkompilasi menulis prototipe ke STUB. H dan kode sumber ke STUB_C.C.

Untuk informasi tambahan tentang handel serialisasi dan pengodean atau pendekodean data, lihat Layanan Serialisasi.

Contoh

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

Lihat juga

File Konfigurasi Aplikasi (ACF)

mengalokasikan

Decode