Atribut Bidang
Atribut bidang adalah atribut yang dapat diterapkan ke bidang array, struktur, union, atau array karakter:
- [abaikan], [size_is]
- [max_is]
- [length_is]
- [first_is]
- [last_is]
- [switch_is]
- [string]
- atribut penunjuk
Misalnya, atribut bidang digunakan bersama dengan deklarasi array untuk menentukan ukuran array atau bagian array yang berisi data yang valid. Ini dilakukan dengan mengaitkan parameter, bidang struktur, atau ekspresi konstanta lain dengan array .
Atribut [abaikan] menunjuk bidang penunjuk untuk diabaikan selama proses marshaling. Bidang yang diabaikan tersebut diatur ke NULL di sisi penerima.
MIDL menyediakan array yang sesuai, bervariasi, dan terbuka . Array disebut sesuai jika batasnya ditentukan pada durasi. Atribut [size_is] menunjuk batas atas pada ukuran alokasi array dan atribut [max_is] menunjuk batas atas pada nilai indeks array yang valid. Untuk informasi selengkapnya, lihat [arrays].
Array disebut bervariasi jika batasnya ditentukan pada waktu kompilasi, tetapi rentang elemen yang ditransmisikan ditentukan pada durasi. Array terbuka (juga disebut array variasi yang sesuai) adalah array yang batas atas dan rentang elemen yang ditransmisikan ditentukan pada durasi. Untuk menentukan rentang elemen array yang ditransmisikan, deklarasi array harus menyertakan atribut [length_is], [first_is], atau [last_is] .
Atribut [length_is] menunjuk jumlah elemen array yang akan ditransmisikan dan atribut [first_is] menunjuk indeks elemen array pertama yang akan ditransmisikan. Atribut [last_is] menunjuk indeks elemen array terakhir yang akan ditransmisikan.
Atribut bidang [switch_is] menunjuk diskriminator serikat. Ketika serikat adalah parameter prosedur, diskriminator serikat harus menjadi parameter lain dari prosedur yang sama. Ketika serikat adalah bidang struktur, diskriminator harus menjadi bidang struktur lain pada tingkat yang sama dengan bidang serikat. Diskriminator harus boolean, karakter, int, atau jenis enum , atau jenis yang diselesaikan ke salah satu jenis ini. Untuk informasi selengkapnya, lihat Union yang tidak dienkapsulasi dan [switch_is].
Atribut bidang [string] menunjuk bahwa karakter satu dimensi atau array byte, atau penunjuk ke karakter yang dihentikan nol atau aliran byte, akan diperlakukan sebagai string. Atribut string hanya berlaku untuk array dan pointer satu dimensi. Jenis elemen terbatas pada karakter, byte, wchar_t, atau jenis bernama yang diselesaikan ke salah satu jenis ini.
Untuk informasi tentang konteks di mana atribut bidang muncul, lihat MidL Arrays, MIDL Structures, dan MIDL Unions.