Gambaran Umum Panduan Kontainer Kontrol dan Kontrol

Kontrol ActiveX pada dasarnya adalah objek OLE sederhana yang mendukung antarmuka IUnknown. Ini biasanya akan mendukung lebih banyak antarmuka untuk menawarkan fungsionalitas, tetapi semua antarmuka tambahan dapat dilihat sebagai opsional dan dengan demikian, kontainer kontrol tidak boleh mengandalkan antarmuka tambahan yang didukung. Dengan tidak menentukan antarmuka tambahan yang harus didukung kontrol, kontrol dapat secara efisien menargetkan area fungsionalitas tertentu tanpa harus mendukung antarmuka tertentu untuk memenuhi syarat sebagai kontrol. Seperti biasa dengan OLE, baik dalam kontrol atau kontainer kontrol, tidak boleh diasumsikan bahwa antarmuka tersedia dan konvensi pemeriksaan kembali standar harus selalu diikuti. Penting bagi kontainer kontrol atau kontrol untuk menurunkan tingkat keanggunan dan menawarkan fungsionalitas alternatif jika antarmuka yang diperlukan tidak tersedia.

Kontainer kontrol ActiveX harus dapat menghosting kontrol ActiveX minimal; ini juga akan mendukung sejumlah antarmuka tambahan seperti yang ditentukan dalam Kontainer. Ada sejumlah antarmuka dan metode yang mungkin didukung oleh kontainer secara opsional, yang dikelompokkan ke dalam area fungsional yang dikenal sebagai kategori komponen. Kontainer dapat mendukung kombinasi kategori komponen apa pun, misalnya, kategori komponen ada untuk pengikatan data dan kontainer mungkin atau mungkin tidak mendukung fungsionalitas pengikatan data, tergantung pada kebutuhan pasar kontainer. Jika kontrol memerlukan dukungan pengikatan data dari kontainer ke fungsi, maka kontrol akan memasukkan persyaratan ini dalam registri. Ini memungkinkan kontainer kontrol untuk hanya menawarkan penyisipan kontrol yang diketahuinya dapat berhasil dihosting. Penting untuk dicatat bahwa kategori komponen ditentukan sebagai bagian dari OLE dan tidak spesifik untuk kontrol ActiveX, arsitektur kontrol menggunakan kategori komponen untuk mengidentifikasi area fungsionalitas yang dapat didukung komponen OLE. Kategori komponen tidak kumulatif atau eksklusif, sehingga kontainer kontrol dapat mendukung satu kategori tanpa harus mendukung yang lain.

Penting untuk kontrol yang memerlukan fitur opsional, atau fitur khusus untuk kontainer tertentu untuk dikemas dengan jelas dan dipasarkan dengan persyaratan tersebut. Demikian pula kontainer yang menawarkan fitur atau kategori komponen tertentu harus dipasarkan dan dikemas sebagai menawarkan tingkat dukungan tersebut saat menghosting kontrol ActiveX. Disarankan agar mengontrol target dan pengujian dengan kontainer sebanyak mungkin dan menurunkan tingkat keanggunan untuk menawarkan fungsionalitas yang kurang atau alternatif jika antarmuka atau metode tidak tersedia. Dalam situasi di mana kontrol tidak dapat melakukan fungsi pekerjaan yang ditunjuk tanpa dukungan kategori komponen, kategori tersebut harus dimasukkan sebagai persyaratan dalam registri untuk mencegah kontrol dimasukkan dalam kontainer yang tidak pantas.

Panduan ini menentukan antarmuka dan metode yang mungkin didukung oleh kontrol kontainer kontrol, meskipun karena selalu kontrol harus memeriksa nilai pengembalian saat menggunakan QueryInterface atau metode lain untuk mendapatkan penunjuk ke antarmuka ini. Kontainer seharusnya tidak mengharapkan kontrol untuk mendukung apa pun selain antarmuka IUnknown , dan panduan ini mengidentifikasi antarmuka apa yang dapat didukung kontrol dan apa arti kehadiran antarmuka tertentu.

Mengapa Panduan Kontainer Kontrol dan Kontrol ActiveX Penting

Kontrol ActiveX telah menjadi arsitektur utama untuk mengembangkan komponen perangkat lunak yang dapat diprogram untuk digunakan dalam berbagai kontainer yang berbeda mulai dari alat pengembangan perangkat lunak hingga alat produktivitas pengguna akhir. Agar kontrol beroperasi dengan baik dalam berbagai kontainer, kontrol harus dapat mengasumsikan beberapa tingkat fungsionalitas minimum yang dapat diandalkan di semua kontainer.

Dengan mengikuti panduan ini, pengembang kontrol dan kontainer membuat kontrol dan kontainer mereka lebih andal dan dapat dioperasikan, dan pada akhirnya, komponen yang lebih baik dan lebih dapat digunakan untuk membangun solusi berbasis komponen.

Apa yang Harus Dilakukan Saat Antarmuka yang Anda Butuhkan Tidak Tersedia

Program OLE harus menggunakan QueryInterface untuk memperoleh penunjuk antarmuka, dan harus memeriksa nilai yang dikembalikan. Aplikasi OLE tidak dapat dengan aman mengasumsikan bahwa QueryInterface akan berhasil.

Persyaratan ini berlaku untuk semua aplikasi OLE. Jika antarmuka yang diminta tidak tersedia (yaitu, QueryInterface mengembalikan E_NOINTERFACE), kontrol atau kontainer harus diturunkan dengan baik, bahkan jika itu berarti tidak dapat melakukan fungsi pekerjaan yang ditunjuk.

Panduan Kontainer Kontrol dan Kontrol ActiveX