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.
Saat kontainer meluncurkan server sehingga pengguna dapat mengedit item OLE yang disematkan atau ditautkan, aplikasi server membuat "item server." Item server, yang merupakan objek kelas yang berasal dari COleServerItem, menyediakan antarmuka antara dokumen server dan aplikasi kontainer.
Kelas COleServerItem mendefinisikan beberapa fungsi anggota yang dapat diambil alih yang dipanggil oleh OLE, biasanya sebagai respons terhadap permintaan dari kontainer. Item server dapat mewakili bagian dari dokumen server atau seluruh dokumen. Ketika item OLE disematkan dalam dokumen kontainer, item server mewakili seluruh dokumen server. Ketika item OLE ditautkan, item server dapat mewakili bagian dari dokumen server atau seluruh dokumen, tergantung pada apakah tautan ke bagian atau ke seluruhnya.
Dalam sampel HIERSVR , misalnya, kelas item server, CServerItem, memiliki anggota yang merupakan penunjuk ke objek kelas CServerNode. Objek CServerNode adalah simpul dalam dokumen aplikasi HIERSVR, yang merupakan pohon.
CServerNode Ketika objek adalah simpul akar, CServerItem objek mewakili seluruh dokumen. Objek CServerNode adalah simpul anak, sementara objek CServerItem mewakili bagian dari dokumen. Lihat sampel OLE MFC HIERSVR untuk contoh interaksi ini.
Menerapkan Elemen Server
Jika Anda menggunakan wizard aplikasi untuk menghasilkan kode "pemula" untuk aplikasi Anda, yang harus Anda lakukan untuk menyertakan item server dalam kode pemula Anda adalah memilih salah satu opsi server dari halaman Opsi OLE. Jika Anda menambahkan item server ke aplikasi yang sudah ada, lakukan langkah-langkah berikut:
Untuk mengimplementasikan item server
Mendapatkan kelas dari
COleServerItem.Di kelas turunan Anda, timpa fungsi anggota
OnDraw.Kerangka kerja memanggil
OnDrawuntuk merender item OLE ke dalam metafile. Aplikasi kontainer menggunakan metafile ini untuk merender item. Kelas tampilan aplikasi Anda juga memilikiOnDrawfungsi anggota, yang digunakan untuk merender item saat aplikasi server aktif.Terapkan substitusi
OnGetEmbeddedItemuntuk kelas dokumen server Anda. Untuk informasi selengkapnya, lihat artikel Server: Menerapkan Dokumen Server dan sampel OLE MFC HIERSVR.Terapkan fungsi anggota dari kelas
OnGetExtentitem server Anda. Kerangka kerja memanggil fungsi ini untuk mengambil ukuran item. Implementasi default tidak melakukan apa pun.
Tips untuk Arsitektur Server-Item
Seperti yang disebutkan dalam Menerapkan Item Server, aplikasi server harus dapat merender item baik dalam tampilan server maupun dalam metafile yang digunakan oleh aplikasi kontainer. Dalam arsitektur aplikasi Pustaka Kelas Microsoft Foundation, fungsi anggota kelas OnDraw tampilan merender item saat sedang diedit (lihat CView::OnDraw di Referensi Pustaka Kelas). Item server OnDraw mengolah item menjadi metafile dalam semua situasi lainnya (lihat COleServerItem::OnDraw).
Anda dapat menghindari duplikasi kode dengan menulis fungsi pembantu di kelas dokumen server Anda dan memanggilnya dari OnDraw fungsi dalam tampilan dan kelas item server Anda.
Sampel MFC OLE HIERSVR menggunakan strategi ini: fungsi CServerView::OnDraw dan CServerItem::OnDraw, yang keduanya memanggil CServerDoc::DrawTree untuk merender item.
Tampilan dan item keduanya memiliki fungsi anggota OnDraw karena mereka beroperasi dalam kondisi yang berbeda. Tampilan harus mempertimbangkan faktor-faktor seperti memperbesar tampilan, ukuran dan jangkauan pilihan, kliping, dan elemen antarmuka pengguna seperti bilah gulir. Item server, di sisi lain, selalu menggambar seluruh objek OLE.
Untuk informasi selengkapnya, lihat CView::OnDraw, COleServerItem, COleServerItem::OnDraw, dan COleServerDoc::OnGetEmbeddedItem di Referensi Pustaka Kelas.