Ekstensi Binding-Handle Microsoft RPC
Ekstensi Microsoft ke bahasa IDL mendukung beberapa parameter handel yang muncul di posisi selain parameter pertama, paling kiri, . Langkah-langkah berikut menjelaskan urutan yang dilalui pengkompilasi MIDL untuk menyelesaikan parameter penanganan pengikatan dalam mode kompatibilitas DCE (/osf), dan dalam mode default (Diperluas Microsoft).
- Handel pengikatan yang muncul di posisi pertama.
- Paling kiri [dalam parameter, context_handle] .
- Handel pengikatan implisit yang ditentukan oleh [implicit_handle] atau [auto_handle].
- Jika tidak ada ACF, default untuk menggunakan [auto_handle].
- Handel pengikatan eksplisit paling kiri.
- Handel pengikatan implisit yang ditentukan oleh [implicit_handle] atau [auto_handle].
- Jika tidak ada ACF, default untuk menggunakan [auto_handle].
Pengkompilasi IDL DCE mencari handel pengikatan eksplisit sebagai parameter pertama. Ketika parameter pertama bukan handel pengikatan dan satu atau beberapa handel konteks ditentukan, handel konteks paling kiri digunakan sebagai handel pengikatan. Ketika parameter pertama bukan handel dan tidak ada handel konteks, prosedur menggunakan pengikatan implisit menggunakan atribut ACF [implicit_handle] atau [auto_handle].
Ekstensi Microsoft ke IDL memungkinkan handel pengikatan berada di posisi selain parameter pertama. Parameter paling kiri [di] eksplisit-handle parameter–baik itu handel primitif, terdefinisi programmer, atau konteks–adalah handel pengikatan. Ketika tidak ada parameter handle, prosedur menggunakan pengikatan implisit menggunakan atribut ACF [implicit_handle] atau [auto_handle].
Aturan berikut berlaku untuk mode kompatibilitas DCE (/osf) dan mode default:
- Pengikatan penanganan otomatis digunakan ketika tidak ada ACF.
- [eksplisit dalam] atau [di, keluar] menangani untuk fungsi individual preempt setiap pengikatan implisit yang ditentukan untuk antarmuka.
- Beberapa [di] atau [di, out] handel primitif tidak didukung.
- Beberapa [dalam] atau [di, out] handel konteks eksplisit diizinkan.
- Semua parameter handle yang ditentukan programmer kecuali parameter handle pengikatan diperlakukan sebagai data yang dapat ditransmisikan.
Tabel berikut berisi contoh dan menjelaskan bagaimana handel pengikatan ditetapkan dalam setiap mode kompilator.
Contoh | Deskripsi |
---|---|
|
Tidak ada handel eksplisit yang ditentukan. Handel pengikatan implisit, yang ditentukan oleh [ implicit_handle] atau [ auto_handle], digunakan. Ketika tidak ada ACF, handel otomatis digunakan. |
|
Handel eksplisit jenis handle_t ditentukan. Parameter H adalah handel pengikatan untuk prosedur. |
|
Parameter pertama bukan handel. Dalam mode default, parameter handle paling kiri, H, adalah handel pengikatan. Dalam mode /osf, pengikatan implisit digunakan. Kesalahan dilaporkan karena parameter kedua diharapkan dapat ditransmisikan, dan handle_t tidak dapat ditransmisikan. |
|
Parameter pertama bukan handel. Dalam mode default, parameter handle paling kiri, H, adalah handel pengikatan. Stub memanggil rutinitas yang disediakan pengguna MY_HDL_bind dan MY_HDL_unbind. Dalam mode/osf, pengikatan implisit digunakan. Parameter handle yang ditentukan programmer H diperlakukan sebagai data yang dapat ditransmisikan. |
|
Parameter pertama adalah handel pengikatan. Parameter H adalah parameter handle pengikatan. Parameter handel kedua yang ditentukan programmer diperlakukan sebagai data yang dapat ditransmisikan. |
|
Handel pengikatan adalah handel konteks. Parameter H adalah handel pengikatan. |