Atribut IDL
Secara tradisional, mempertahankan file .idl berarti Anda harus:
Pahami struktur dan sintaks file .idl untuk dapat memodifikasinya.
Mengandalkan wizard, yang memungkinkan Anda mengubah beberapa aspek file .idl.
Sekarang, Anda dapat memodifikasi file .idl dari dalam file kode sumber menggunakan atribut IDL Visual C++. Dalam banyak kasus, atribut IDL Visual C++ memiliki nama yang sama dengan atribut MIDL. Ketika nama atribut IDL Visual C++ dan atribut MIDL sama, itu berarti bahwa menempatkan atribut Visual C++ dalam file kode sumber Anda akan menghasilkan file .idl yang berisi atribut MIDL namesake-nya. Namun, atribut IDL Visual C++ mungkin tidak menyediakan semua fungsionalitas atribut MIDL.
Saat tidak digunakan dengan atribut COM, atribut IDL memungkinkan Anda menentukan antarmuka. Saat kode sumber dikompilasi, atribut digunakan untuk menentukan file .idl yang dihasilkan. Saat digunakan dengan atribut COM dalam proyek ATL, beberapa atribut IDL, seperti coclass
, menyebabkan kode disuntikkan ke dalam proyek.
Perhatikan bahwa idl_quote memungkinkan Anda menggunakan konstruksi MIDL yang tidak didukung dalam versi Visual C++saat ini. Ini dan atribut lain seperti importlib dan includelib membantu Anda menggunakan file .idl yang ada di proyek Visual Studio C++ Anda saat ini.
Atribut | Deskripsi |
---|---|
agregat | Menunjukkan bahwa kontrol dapat diagregasi oleh kontrol lain. |
appobject | Mengidentifikasi kolase sebagai objek aplikasi, yang terkait dengan aplikasi EXE lengkap, dan menunjukkan bahwa fungsi dan properti kolase tersedia secara global di pustaka jenis ini. |
async_uuid | Menentukan UUID yang mengarahkan pengompilasi MIDL untuk menentukan versi antarmuka COM yang sinkron dan asinkron. |
dapat diikat | Menunjukkan bahwa properti mendukung pengikatan data. |
call_as | Memungkinkan fungsi yang tidak dapat dimodifikasi untuk dipetakan ke fungsi jarak jauh. |
case | Digunakan dengan atribut switch_type dalam serikat. |
coclass | Menempatkan definisi kelas ke dalam file .idl sebagai coclass. |
kontrol | Menentukan bahwa jenis yang ditentukan pengguna adalah kontrol. |
cpp_quote | Memancarkan string yang ditentukan, tanpa karakter kutipan, ke dalam file header yang dihasilkan. |
defaultbind | Menunjukkan properti tunggal yang dapat diikat yang paling mewakili objek. |
defaultcollelem | Digunakan untuk pengoptimalan kode Visual Basic. |
defaultvalue | Memungkinkan spesifikasi nilai default untuk parameter opsional yang ditik. |
Default | Menunjukkan bahwa kustom atau dispinterface yang ditentukan dalam kolase mewakili antarmuka keterprograman default. |
defaultvtable | Mendefinisikan antarmuka sebagai antarmuka vtable default untuk kontrol. |
dispinterface | Menempatkan antarmuka dalam file .idl sebagai antarmuka pengiriman. |
displaybind | Menunjukkan properti yang harus ditampilkan kepada pengguna sebagai dapat diikat. |
dual | Menempatkan antarmuka dalam file .idl sebagai antarmuka ganda. |
lema | Menentukan fungsi atau konstanta yang diekspor dalam modul dengan mengidentifikasi titik masuk di DLL. |
first_is | Menentukan indeks elemen array pertama yang akan ditransmisikan. |
helpcontext | Menentukan ID konteks yang memungkinkan pengguna melihat informasi tentang elemen ini dalam file Bantuan. |
helpfile | Mengatur nama file Bantuan untuk pustaka tipe. |
helpstringcontext | Menentukan ID topik bantuan dalam file .hlp atau .chm. |
helpstringdll | Menentukan nama DLL yang akan digunakan untuk melakukan pencarian string dokumen (pelokalan). |
helpstring | Menentukan string karakter yang digunakan untuk menjelaskan elemen yang diterapkannya. |
sembunyi | Menunjukkan bahwa item ada tetapi tidak boleh ditampilkan di browser berorientasi pengguna. |
idl_module | Menentukan titik masuk dalam DLL. |
idl_quote | Memungkinkan Anda menggunakan atribut atau konstruksi IDL yang tidak didukung dalam versi Visual C++saat ini. |
id | Menentukan DISPID untuk fungsi anggota (baik properti atau metode, dalam antarmuka atau dispinterface). |
iid_is | Menentukan IID antarmuka COM yang ditunjukkan oleh penunjuk antarmuka. |
imediatebind | Menunjukkan bahwa database akan segera diberi tahu tentang semua perubahan pada properti objek yang terikat data. |
importlib | Membuat tipe yang telah dikompilasi ke pustaka tipe lain tersedia untuk pustaka tipe yang sedang dibuat. |
impor | Menentukan file .idl, .odl, atau header lain yang berisi definisi yang ingin Anda referensikan dari file .idl utama Anda. |
termasuk | Menentukan satu atau beberapa file header yang akan disertakan dalam file .idl yang dihasilkan. |
includelib | Menyebabkan file .idl atau .h disertakan dalam file .idl yang dihasilkan. |
in | Menunjukkan bahwa parameter akan diteruskan dari prosedur panggilan ke prosedur yang disebut. |
last_is | Menentukan indeks elemen array terakhir yang akan ditransmisikan. |
Icid | Memungkinkan Anda meneruskan pengidentifikasi lokal ke fungsi. |
length_is | Menentukan jumlah elemen array yang akan ditransmisikan. |
Berlisensi | Menunjukkan bahwa kolase yang diterapkannya berlisensi, dan harus dibuat menggunakan IClassFactory2 . |
lokal | Memungkinkan Anda menggunakan pengkompilasi MIDL sebagai generator header saat digunakan di header antarmuka. Ketika digunakan dalam fungsi individual, menunjuk prosedur lokal yang tidak ada ganja yang dihasilkan. |
max_is | Menunjuk nilai maksimum untuk indeks array yang valid. |
module | Menentukan blok pustaka dalam file .idl. |
ms_union | Mengontrol perataan representasi data jaringan dari serikat yang tidak dienkapsulasi. |
no_injected_text | Mencegah pengkompilasi memasukkan kode sebagai akibat dari penggunaan atribut. |
tidak dapat ditumbuhi | Menunjukkan bahwa anggota antarmuka tidak boleh ditampilkan di browser properti. |
tidak dapat di-noncreatable | Menentukan objek yang tidak dapat diinstansiasi dengan sendirinya. |
tidak dapat diperluas | Menentukan bahwa IDispatch implementasi hanya mencakup properti dan metode yang tercantum dalam deskripsi antarmuka dan tidak dapat diperluas dengan anggota tambahan pada waktu proses. |
object | Mengidentifikasi antarmuka kustom; identik dengan atribut kustom. |
odl | Mengidentifikasi antarmuka sebagai antarmuka Object Description Language (ODL). |
oleautomasi | Menunjukkan bahwa antarmuka kompatibel dengan Automation. |
opsional | Menentukan parameter opsional untuk fungsi anggota. |
out | Mengidentifikasi parameter pointer yang dikembalikan dari prosedur yang disebut ke prosedur panggilan (dari server ke klien). |
pointer_default | Menentukan atribut pointer default untuk semua penunjuk kecuali penunjuk tingkat atas yang muncul dalam daftar parameter. |
pragma | Memancarkan string yang ditentukan, tanpa karakter kutipan, ke dalam file .idl yang dihasilkan. |
progid | Menentukan ProgID untuk objek COM. |
propget | Menentukan fungsi aksesor properti (get). |
propputref | Menentukan fungsi pengaturan properti yang menggunakan referensi alih-alih nilai. |
propput | Menentukan fungsi pengaturan properti. |
ptr | Menunjuk penunjuk sebagai penunjuk penuh. |
public | Memastikan bahwa typedef akan masuk ke pustaka jenis meskipun tidak dirujuk dari dalam file .idl. |
rentang | Menentukan rentang nilai yang diperbolehkan untuk argumen atau bidang yang nilainya diatur pada waktu proses. |
hanyabaca | Melarang penugasan ke variabel. |
ref | Mengidentifikasi penunjuk referensi. |
requestedit | Menunjukkan bahwa properti mendukung pemberitahuan OnRequestEdit . |
Dibatasi | Menentukan bahwa pustaka, atau anggota modul, antarmuka, atau dispinterface tidak dapat dipanggil secara sembarangan. |
retval | Menunjuk parameter yang menerima nilai pengembalian anggota. |
size_is | Menentukan ukuran memori yang dialokasikan untuk penunjuk berukuran, penunjuk berukuran ke penunjuk berukuran, dan array tunggal atau multidimensi. |
sumber | Menunjukkan bahwa anggota kelas, properti, atau metode adalah sumber peristiwa. |
tali | Menunjukkan bahwa array satu dimensi char , , wchar_t , byte atau yang setara atau penunjuk ke array tersebut harus diperlakukan sebagai string. |
switch_is | Menentukan ekspresi atau pengidentifikasi yang bertindak sebagai diskriminan serikat pekerja yang memilih anggota serikat pekerja. |
switch_type | Mengidentifikasi jenis variabel yang digunakan sebagai diskriminan serikat. |
transmit_as | Menginstruksikan pengkompilasi untuk mengaitkan jenis yang disajikan, aplikasi klien dan server mana yang dimanipulasi, dengan jenis yang ditransmisikan. |
uidefault | Menunjukkan bahwa anggota informasi jenis adalah anggota default untuk ditampilkan di antarmuka pengguna. |
unique | Menentukan penunjuk unik. |
usesgetlasterror | Memberi tahu pemanggil bahwa jika ada kesalahan saat memanggil fungsi tersebut, pemanggil kemudian dapat memanggil GetLastError untuk mengambil kode kesalahan. |
uuid | Menentukan ID unik untuk kelas atau antarmuka. |
v1_enum | Mengarahkan bahwa jenis enumerasi yang ditentukan ditransmisikan sebagai entitas 32-bit, bukan default 16-bit. |
vararg | Menentukan bahwa fungsi mengambil jumlah variabel argumen. |
vi_progid | Menentukan bentuk progID independen versi. |
wire_marshal | Menentukan jenis data yang akan digunakan untuk transmisi alih-alih jenis data khusus aplikasi. |