Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Kontainer dokumen aktif, seperti Microsoft Office Binder atau Internet Explorer, memungkinkan Anda bekerja dengan beberapa dokumen dari berbagai jenis aplikasi dalam satu bingkai (alih-alih memaksa Anda membuat dan menggunakan beberapa bingkai aplikasi untuk setiap jenis dokumen).
MFC menyediakan dukungan penuh untuk kontainer dokumen aktif di COleDocObjectItem kelas . Anda bisa menggunakan Panduan Aplikasi MFC untuk membuat kontainer dokumen aktif dengan memilih kotak centang Kontainer dokumen aktif pada halaman Dukungan Dokumen Gabungan dari Panduan Aplikasi MFC. Untuk informasi selengkapnya, lihat Membuat Aplikasi Kontainer Dokumen Aktif.
Untuk informasi selengkapnya tentang kontainer dokumen aktif, lihat:
Persyaratan Kontainer
Dukungan dokumen aktif dalam kontainer dokumen aktif menyiratkan lebih dari sekadar implementasi antarmuka: ini juga membutuhkan pengetahuan tentang menggunakan antarmuka objek yang terkandung. Hal yang sama berlaku untuk ekstensi dokumen aktif, di mana kontainer juga harus tahu cara menggunakan antarmuka ekstensi tersebut pada dokumen aktif itu sendiri.
Kontainer dokumen aktif yang mengintegrasikan dokumen aktif harus:
Mampu menangani penyimpanan objek melalui
IPersistStorageantarmuka, yaitu harus menyediakanIStorageinstans untuk setiap dokumen aktif.Mendukung fitur dasar penyematan dokumen OLE, yang memerlukan objek "site" (satu per dokumen atau penyematan) yang mengimplementasikan
IOleClientSitedanIAdviseSink.Mendukung aktivasi objek yang disematkan secara langsung atau dokumen aktif. Objek situs kontainer harus diimplementasikan
IOleInPlaceSitedan objek bingkai kontainer harus menyediakanIOleInPlaceFrame.Dukung ekstensi dokumen aktif dengan menerapkan
IOleDocumentSiteuntuk menyediakan mekanisme agar kontainer dapat berbicara dengan dokumen. Secara opsional, kontainer dapat mengimplementasikan antarmukaIOleCommandTargetdokumen aktif danIContinueCallbackuntuk mengambil perintah sederhana seperti mencetak atau menyimpan.
Objek bingkai, objek tampilan, dan objek kontainer dapat secara opsional diimplementasikan IOleCommandTarget untuk mendukung pengiriman perintah tertentu, seperti yang dibahas dalam Target Perintah. Lihat dan objek kontainer juga dapat secara opsional mengimplementasikan IPrint dan IContinueCallback, untuk mendukung pencetakan terprogram, seperti yang dibahas dalam Pencetakan Terprogram.
Gambar berikut menunjukkan hubungan konseptual antara kontainer dan komponennya (di kiri), dan dokumen aktif dan tampilannya (di kanan). Dokumen aktif mengelola penyimpanan dan data, dan tampilan menampilkan atau secara opsional mencetak data tersebut. Antarmuka dalam huruf tebal adalah yang diperlukan untuk partisipasi dokumen aktif; yang tebal dan miring bersifat opsional. Semua antarmuka lainnya diperlukan.
Dokumen yang hanya mendukung satu tampilan dapat mengimplementasikan komponen tampilan dan dokumen (yaitu, antarmuka yang sesuai) pada satu kelas konkret. Selain itu, situs kontainer yang hanya mendukung satu tampilan sekaligus dapat menggabungkan situs dokumen dan situs tampilan ke dalam satu kelas situs konkret. Namun, objek bingkai kontainer harus tetap berbeda, dan komponen dokumen kontainer hanya disertakan di sini untuk memberikan gambaran lengkap tentang arsitektur; ini tidak terpengaruh oleh arsitektur penahanan dokumen aktif.
Objek Lokasi Dokumen
Dalam arsitektur penampungan dokumen aktif, situs dokumen sama dengan objek situs klien di Dokumen OLE dengan penambahan IOleDocument antarmuka:
interface IOleDocumentSite : IUnknown
{
HRESULT ActivateMe(IOleDocumentView *pViewToActivate);
}
Situs dokumen secara konseptual adalah wadah untuk satu atau beberapa objek "view site". Setiap objek situs tampilan dikaitkan dengan objek tampilan individual dari dokumen yang dikelola oleh situs dokumen. Jika kontainer hanya mendukung satu tampilan per situs dokumen, maka dapat mengimplementasikan situs dokumen dan situs tampilan dengan satu kelas konkret.
Lihat Objek Situs
Objek tampilan situs kontainer mengelola ruang tampilan untuk tampilan tertentu dari dokumen. Selain mendukung antarmuka standar IOleInPlaceSite , situs tampilan juga umumnya diterapkan IContinueCallback untuk kontrol pencetakan terprogram. (Perhatikan bahwa objek tampilan tidak pernah dikueri IContinueCallback sehingga benar-benar dapat diimplementasikan pada objek apa pun yang diinginkan kontainer.)
Kontainer yang mendukung beberapa tampilan harus dapat membuat beberapa objek tampilan situs dalam situs dokumen. Ini menyediakan setiap tampilan dengan layanan aktivasi dan pennonaktifkanan terpisah seperti yang disediakan melalui IOleInPlaceSite.
Objek Frame
Objek bingkai kontainer sebagian besar adalah bingkai yang sama yang digunakan untuk aktivasi langsung di Dokumen OLE, yaitu, yang menangani negosiasi menu dan toolbar. Objek tampilan memiliki akses ke objek bingkai ini melalui IOleInPlaceSite::GetWindowContext, yang juga menyediakan akses ke objek kontainer yang mewakili dokumen kontainer (yang dapat menangani negosiasi toolbar tingkat panel dan enumerasi objek yang terkandung).
Kontainer dokumen aktif dapat menambah bingkai dengan menambahkan IOleCommandTarget. Ini memungkinkannya untuk menerima perintah yang berasal dari antarmuka pengguna dokumen aktif dengan cara yang sama seperti antarmuka ini dapat memungkinkan kontainer untuk mengirim perintah yang sama (seperti File Baru, Buka, Simpan Sebagai, Cetak; Edit Salin, Tempel, Batalkan, dan lainnya) ke dokumen aktif. Untuk informasi selengkapnya, lihat Target Perintah.