Fungsi type_UserUnmarshal
Fungsi>_UserUnmarshal jenis<adalah fungsi pembantu untuk atribut [ wire_marshal] dan [ user_marshal] . Stub memanggil fungsi ini untuk membatalkan amarshal data di sisi klien atau server. Fungsi ini didefinisikan sebagai:
unsigned char __RPC_FAR * __RPC_USER <type>_UserUnmarshal(
unsigned long __RPC_FAR * pFlags,
unsigned char __RPC_FAR * pBuffer,
<type> __RPC_FAR * pMyObj);
Jenis <> dalam nama fungsi berarti jenis pengguna yang ditentukan dalam definisi jenis [wire_marshal] atau [user_marshal]. Jenis ini mungkin tidak dapat ditransmisikan atau bahkan—saat digunakan dengan atribut [user_marshal]—tidak diketahui oleh pengkompilasi MIDL. Nama jenis kawat (nama jenis yang dapat ditransmisikan) tidak digunakan dalam prototipe fungsi. Namun, perhatikan bahwa jenis kawat mendefinisikan tata letak kawat untuk data seperti yang ditentukan oleh OSF DCE.
Parameter pFlags adalah penunjuk ke bidang bendera panjang tidak ditandatangani. Kata atas bendera berisi bendera representasi data NDR seperti yang didefinisikan oleh OSF DCE untuk representasi titik pecahan, urutan byte, dan karakter. Kata yang lebih rendah berisi bendera konteks marshaling seperti yang didefinisikan oleh saluran COM. Tata letak bendera yang tepat dalam bidang dijelaskan dalam Fungsi type_UserSize.
Parameter pBuffer adalah penunjuk buffer saat ini. Penunjuk ini mungkin atau mungkin tidak diratakan pada entri. Fungsi>_UserUnmarshal jenis<Anda harus menyelaraskan penunjuk buffer dengan tepat, membatalkan nama data, dan mengembalikan posisi buffer baru, yang merupakan alamat byte pertama setelah objek yang belum dirusak.
Parameter pMyObj adalah penunjuk ke objek jenis yang ditentukan pengguna.
Dalam lingkungan heterogen, mesin NDR melakukan konversi data apa pun yang diperlukan sebelum memanggil jenis>_UserUnmarshal fungsi<. Perhatikan bahwa mesin NDR melakukan konversi data ini sesuai dengan definisi jenis kawat yang disediakan untuk jenis data pengguna ini. Bendera menunjukkan representasi data pengirim.
Topik terkait
-
Aturan Marshaling untuk user_marshal dan wire_marshal