Bagikan melalui


Server: Item Server

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. CServerNode Ketika objek adalah simpul anak, CServerItem objek mewakili bagian dari dokumen. Lihat sampel OLE MFC HIERSVR untuk contoh interaksi ini.

Menerapkan Item 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

  1. Mendapatkan kelas dari COleServerItem.

  2. Di kelas turunan Anda, ambil alih OnDraw fungsi anggota.

    Kerangka kerja memanggil OnDraw untuk merender item OLE ke dalam metafile. Aplikasi kontainer menggunakan metafile ini untuk merender item. Kelas tampilan aplikasi Anda juga memiliki OnDraw fungsi anggota, yang digunakan untuk merender item saat aplikasi server aktif.

  3. Terapkan penimpaan OnGetEmbeddedItem untuk kelas dokumen server Anda. Untuk informasi selengkapnya, lihat artikel Server: Menerapkan Dokumen Server dan sampel OLE MFC HIERSVR.

  4. Terapkan fungsi anggota kelas OnGetExtent item server Anda. Kerangka kerja memanggil fungsi ini untuk mengambil ukuran item. Implementasi default tidak melakukan apa pun.

Tips untuk Arsitektur Item Server

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 OnDraw server merender item ke dalam metafile dalam semua kasus lain (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 panggilan CServerDoc::DrawTree untuk merender item.

Tampilan dan item keduanya memiliki OnDraw fungsi anggota karena menggambar 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.

Baca juga

Server