Bagikan melalui


File Proksi Antarmuka

File proksi antarmuka (U_p.c) adalah file C yang berisi rutinitas yang setara dengan yang ada di stub klien dan file stub server antarmuka objek (COM). File ini berisi implementasi rutinitas pengganti untuk klien dan server dalam mode sebaris pengkompilasi atau data dan thunk yang setara dalam mode yang ditafsirkan, serta data lem COM lainnya yang sesuai, seperti proksi dan stub Vtable.

File proksi antarmuka mencakup rutinitas pendukung dan data hanya untuk metode antarmuka yang ditentukan dalam file IDL saat ini. Untuk mengklarifikasi perilaku ini, contoh yang diperluas digunakan di seluruh bagian ini. Saat mengkompilasi file IDL dengan antarmuka seperti IFaceB yang mewarisi dari IFaceA, data tambahan terkait IFaceB dan rutinitas dihasilkan ke file proksi saat ini, sementara antarmuka dasar IFaceA terkait data tambahan dan rutinitas ditemukan dalam proksi yang dihasilkan dari file IDL yang berisi definisi IFaceA. Kompilator menghasilkan semua data yang diperlukan untuk mengidentifikasi pengganti antarmuka dasar, dan untuk mendelegasikan kepada mereka ketika diperlukan untuk mendukung metode IFaceA yang digunakan melalui antarmuka IFaceB.

Untuk setiap metode dalam antarmuka dalam file IDL saat ini, file proksi berisi dua metode pengganti berikut saat dikompilasi dalam mode campuran (/Os), dan data interpreter yang setara saat dikompilasi dalam mode interpreter (/Oi).

  • Pengganti sisi klien, seperti IFaceB_Method_Proxy dalam contoh ini.

    Pengganti sisi klien ini adalah titik masuk virtual tempat klien, misalnya IFaceB::Method, dikirim. Ini marshals argumen input ke dalam bentuk yang dapat ditransmisikan, mengirimkan argumen marshaled bersama dengan informasi yang mengidentifikasi antarmuka dan operasi, dan kemudian membatalkan nama nilai pengembalian dan argumen output apa pun ketika operasi yang dipanggil kembali.

  • Pengganti sisi server, misalnya, IFaceB_Method_Stub .

    Pengganti sisi server ini adalah titik masuk virtual yang dikirimkan runtime yang mendasarinya ke server untuk meniru klien. Ini membatalkan amarshal argumen input untuk mereplikasi data klien, memanggil implementasi server dari fungsi antarmuka, dan kemudian marshals dan mengirimkan nilai pengembalian dan argumen output apa pun kembali ke sisi klien.

Nama default untuk file proksi yang dihasilkan dari file.idl adalah file_p.c.Gunakan sakelar kompilator /proxy MIDL untuk menimpa nama default file proksi antarmuka. Sakelar /env dan /out memengaruhi file ini.