Implementasi Pipa Client-Side
Aplikasi klien harus menerapkan prosedur berikut, yang akan dipanggil stub klien selama transfer data:
- Prosedur penarikan (untuk pipa input)
- Prosedur pendorongan (untuk pipa output)
- Prosedur alokasi untuk mengalokasikan buffer untuk data transfer
Semua prosedur ini harus menggunakan argumen yang ditentukan oleh file header yang dihasilkan MIDL. Selain itu, aplikasi klien harus memiliki variabel status untuk mengidentifikasi tempat menemukan atau menempatkan data.
Prosedur alokasi juga bisa sesemangat atau serumit yang diperlukan. Misalnya, ini dapat mengembalikan penunjuk ke buffer yang sama setiap kali rintihan memanggil fungsi, atau dapat mengalokasikan jumlah memori yang berbeda setiap kali. Jika data Anda sudah dalam bentuk yang tepat (array elemen pipa, misalnya) Anda dapat mengoordinasikan prosedur alokasi dengan prosedur penarikan untuk mengalokasikan buffer yang sudah berisi data. Dalam hal ini, prosedur penarikan Anda bisa menjadi rutinitas kosong.
Alokasi buffer harus dalam byte. Prosedur pendorongan dan penarikan, di sisi lain, memanipulasi elemen, yang ukurannya dalam byte tergantung pada bagaimana mereka didefinisikan.
Bagian ini membahas implementasi klien dari pipa input dan output di bagian berikut: