atribut pesan
Atribut [pesan] menunjukkan bahwa panggilan prosedur jarak jauh akan diperlakukan sebagai pesan dari klien ke server.
[message, optional-attribute-list] void function-name(
[in, optional-parameter-attributes] param-name,. . .);
Parameter
-
optional-attribute-list
-
Atribut lain yang berlaku untuk fungsi . Hanya atribut [local], [nocode], [code], dan [optimize] yang dapat digunakan dengan atribut [message ].
-
nama fungsi
-
Nama fungsi seperti yang didefinisikan dalam file IDL.
-
atribut parameter opsional
-
Nol atau lebih atribut MIDL yang akan diterapkan ke parameter .
-
param-name
-
Nama parameter seperti yang didefinisikan dalam file IDL.
Keterangan
Saat pesan dari klien, panggilan prosedur jarak jauh dengan atribut [pesan] dikirimkan ke server secara asinkron melalui transportasi antrean pesan ncadg_mq . Anda dapat menunjukkan pesan mode sinkron dengan menentukan protokol transportasi ncadg_mq tanpa menggunakan atribut [pesan ].
Dengan menentukan pesan mode asinkron, atribut [pesan] memungkinkan klien untuk segera melakukan panggilan prosedur jarak jauh dan kembali, bahkan ketika aplikasi server tidak merespons. Jika server target tidak tersedia, panggilan akan disimpan sampai server tersedia.
Selain itu, olahpesan mode asinkron memungkinkan Anda mengontrol properti antrean pesan dari antrean terima untuk server. Lihat RpcBindingSetOption untuk informasi selengkapnya tentang memilih kualitas layanan, prioritas panggilan, dan masa pakai panggilan untuk proses server.
Pembatasan berikut juga berlaku untuk atribut [pesan] :
- Antrean Pesan Microsoft harus diimplementasikan dalam sistem klien dan server dan sistem harus terlihat satu sama lain seperti yang ditentukan oleh cakupan penginstalan antrean pesan.
- Pengikatan harus menggunakan titik akhir terkenal dan protokol transportasi ncadg_mq .
- Fungsi tidak boleh berisi parameter output atau jenis pengembalian selain kekosongan. Perhatikan bahwa pembatasan terakhir membuat atribut [pesan] tidak cocok untuk metode antarmuka COM (objek), saat ini. Rilis MIDL berikutnya akan mengizinkan fungsi [pesan] untuk mengembalikan error_status_t atau HRESULT.
- Antarmuka apa pun yang berisi setidaknya satu panggilan [pesan] harus didaftarkan dengan memanggil RpcServerRegisterIf atau RpcServerRegisterIfEx sebelum memanggil RpcServerUseProtseqEpEx(ncadg_mq). Jika tidak, panggilan yang menunggu antrean untuk server akan dibaca sebelum antarmuka terdaftar, dan panggilan akan gagal.
Contoh
[message] void DisplayString(
[in, string] char * p1);
[message] void VarDataArray(
[in, size_is(iSize)] ARRAY_TYPE lpMyArray,
[in] int iSize,
[in] unsigned long ulChksum);
Lihat juga