Bagikan melalui


The OLE Handler

Handler OLE adalah DLL yang berisi beberapa komponen yang berinteraksi yang digunakan untuk menautkan dan menyematkan. Untuk menghindari pengeluaran komunikasi antarproses konstanta antara kontainer dan servernya, handler dimuat ke dalam ruang proses kontainer untuk bertindak atas nama server sebagai semacam proses pengganti. Handler OLE mengelola permintaan kontainer yang tidak memerlukan perhatian aplikasi server, seperti permintaan untuk menggambar. Ketika kontainer meminta sesuatu yang tidak dapat disediakan oleh handler objek, handler berkomunikasi dengan aplikasi server menggunakan mekanisme komunikasi COM di luar proses.

Komponen handler OLE termasuk bagian jarak jauh untuk mengelola komunikasi antara handler dan servernya, cache untuk menyimpan data objek (bersama dengan informasi tentang bagaimana data tersebut harus diformat dan ditampilkan), dan objek pengontrol yang mengoordinasikan aktivitas komponen dll lainnya. Selain itu, jika objek adalah tautan, DLL juga menyertakan komponen penautan, atau objek tertaut, yang melacak nama dan lokasi sumber tautan.

OLE menyediakan handler default yang digunakan sebagian besar aplikasi untuk menautkan dan menyematkan. Jika default tidak cocok dengan persyaratan server Anda, Anda dapat sepenuhnya mengganti handler default atau menggunakan bagian dari fungsionalitas yang disediakannya jika sesuai. Dalam kasus terakhir, handler aplikasi diimplementasikan sebagai objek agregat yang terdiri dari objek kontrol baru dan handler default. Penangan aplikasi kombinasi/default juga dikenal sebagai handler dalam proses. Handler jarak jauh digunakan untuk objek yang tidak diberi CLSID dalam registri sistem atau yang tidak memiliki handler yang ditentukan. Semua yang diperlukan dari handler untuk jenis objek ini adalah bahwa mereka meneruskan informasi di seluruh batas proses. Untuk membuat instans baru handler default, panggil OleCreateDefaultHandler. Untuk beberapa keadaan khusus, panggil OleCreateEmbeddingHelper.

Saat membuat instans handler untuk satu kelas, Anda tidak dapat menggunakannya untuk kelas lain. Saat digunakan untuk dokumen gabungan, handler OLE mengimplementasikan struktur data sisi kontainer saat objek kelas tertentu diakses dari jarak jauh.

OLE mendefinisikan handler default untuk klien server lokal dokumen campuran. Handler default menerapkan sejumlah antarmuka yang tidak dilakukan server biasa. Ketika OLE kemudian mengizinkan server dalam proses untuk dokumen majemuk, mereka harus membuat pembantu penyematan yang menerapkan antarmuka tambahan ini sehingga klien dapat bekerja dengan mulus dengan mereka.

Desainer kerangka kerja yang menentukan dan mengimplementasikan handler sisi klien harus mempertimbangkan masalah ini dalam desain mereka dan harus menyediakan pembantu dalam proses yang setara karena alasan yang sama. Bahkan jika desainer saat ini tidak menerapkan antarmuka pada handler yang tidak diekspos server, mereka mungkin ingin menentukan pembantu sekarang sehingga mereka dapat menambahkannya di masa depan. Atau, seseorang dapat mengimplementasikan antarmuka tambahan pada objek server itu sendiri.

Handler Sisi Klien Yang Ringan