Pendaftaran
Saat pengguna ingin menyisipkan item OLE ke dalam aplikasi, OLE menyajikan daftar jenis objek untuk dipilih. OLE mendapatkan daftar ini dari database pendaftaran sistem, yang berisi informasi yang disediakan oleh semua aplikasi server. Ketika server mendaftarkan dirinya sendiri, entri yang dimasukkannya ke dalam database pendaftaran sistem (Registri) menjelaskan setiap jenis objek yang disediakannya, ekstensi file, dan jalur ke dirinya sendiri, di antara informasi lainnya.
Kerangka kerja dan pustaka tautan dinamis sistem OLE (DLL) menggunakan registri ini untuk menentukan jenis item OLE apa yang tersedia pada sistem. DLL sistem OLE juga menggunakan registri ini untuk menentukan cara meluncurkan aplikasi server saat objek yang ditautkan atau disematkan diaktifkan.
Artikel ini menjelaskan apa yang perlu dilakukan setiap aplikasi server saat diinstal dan setiap kali dijalankan.
Untuk informasi terperinci tentang database pendaftaran sistem dan format file .reg yang digunakan untuk memperbaruinya, lihat Referensi Programmer OLE.
Penginstalan Server
Ketika Anda pertama kali menginstal aplikasi server Anda, aplikasi server harus mendaftarkan semua jenis item OLE yang didukungnya. Anda juga dapat meminta server memperbarui database pendaftaran sistem setiap kali dijalankan sebagai aplikasi yang berdiri sendiri. Ini membuat database pendaftaran tetap terbaru jika file server yang dapat dieksekusi dipindahkan.
Catatan
Aplikasi MFC yang dihasilkan oleh wizard aplikasi secara otomatis mendaftarkan diri mereka sendiri ketika dijalankan sebagai aplikasi yang berdiri sendiri.
Jika Anda ingin mendaftarkan aplikasi Anda selama penginstalan, gunakan program RegEdit.exe. Jika Anda menyertakan program penyiapan dengan aplikasi Anda, minta program penyiapan menjalankan "RegEdit /S appname.reg". (Bendera /S menunjukkan operasi senyap, yaitu, bendera tidak menampilkan kotak dialog yang melaporkan keberhasilan penyelesaian perintah.) Jika tidak, instruksikan pengguna untuk menjalankan RegEdit secara manual.
Catatan
File .reg yang dibuat oleh wizard aplikasi tidak menyertakan jalur lengkap untuk yang dapat dieksekusi. Program penginstalan Anda harus mengubah file .reg untuk menyertakan jalur lengkap ke yang dapat dieksekusi atau mengubah variabel lingkungan PATH untuk menyertakan direktori penginstalan.
RegEdit menggabungkan konten file teks .reg ke dalam database pendaftaran. Untuk memverifikasi database atau memperbaikinya, gunakan editor registri. Berhati-hatilah untuk menghindari penghapusan entri OLE penting.
Inisialisasi Server
Saat Anda membuat aplikasi server dengan wizard aplikasi, wizard menyelesaikan semua tugas inisialisasi untuk Anda secara otomatis. Bagian ini menjelaskan apa yang harus Anda lakukan jika Anda menulis aplikasi server secara manual.
Ketika aplikasi server diluncurkan oleh aplikasi kontainer, DLL sistem OLE menambahkan opsi "/Embedding" ke baris perintah server. Perilaku aplikasi server berbeda tergantung pada apakah itu diluncurkan oleh kontainer, jadi hal pertama yang harus dilakukan aplikasi ketika memulai eksekusi adalah memeriksa opsi "/Embedding" atau "-Embedding" pada baris perintah. Jika sakelar ini ada, muat sekumpulan sumber daya berbeda yang memperlihatkan server sebagai aktif di tempat atau terbuka sepenuhnya. Untuk informasi selengkapnya, lihat Menu dan Sumber Daya: Penambahan Server.
Aplikasi server Anda juga harus memanggil fungsinya CWinApp::RunEmbedded
untuk mengurai baris perintah. Jika mengembalikan nilai bukan nol, aplikasi tidak boleh menampilkan jendelanya karena telah dijalankan dari aplikasi kontainer, bukan sebagai aplikasi yang berdiri sendiri. Fungsi ini memperbarui entri server dalam database pendaftaran sistem dan memanggil fungsi anggota untuk Anda, melakukan pendaftaran instans RegisterAll
.
Saat aplikasi server Anda dimulai, Anda harus memastikan bahwa aplikasi dapat melakukan pendaftaran instans. Pendaftaran instans menginformasikan DLL sistem OLE bahwa server aktif dan siap menerima permintaan dari kontainer. Ini tidak menambahkan entri ke database pendaftaran. Lakukan pendaftaran instans server dengan memanggil fungsi anggota yang ConnectTemplate
ditentukan oleh COleTemplateServer
. Ini menyambungkan CDocTemplate
objek ke COleTemplateServer
objek.
Fungsi ini ConnectTemplate
mengambil tiga parameter: CLSID server, pointer ke CDocTemplate
objek, dan bendera yang menunjukkan apakah server mendukung beberapa instans. Miniserver harus dapat mendukung beberapa instans, yaitu, harus dimungkinkan bagi beberapa instans server untuk berjalan secara bersamaan, satu untuk setiap kontainer. Akibatnya, berikan TRUE untuk bendera ini saat meluncurkan miniserver.
Jika Anda menulis miniserver, menurut definisinya akan selalu diluncurkan oleh kontainer. Anda masih harus mengurai baris perintah untuk memeriksa opsi "/Penyematan". Tidak adanya opsi ini pada baris perintah berarti bahwa pengguna telah mencoba meluncurkan miniserver sebagai aplikasi yang berdiri sendiri. Jika ini terjadi, daftarkan server dengan database pendaftaran sistem lalu tampilkan kotak pesan yang memberi tahu pengguna untuk meluncurkan miniserver dari aplikasi kontainer.
Baca juga
OLE
Server
CWinApp::RunAutomated
CWinApp::RunEmbedded
Kelas COleTemplateServer