Bagikan melalui


Kelas CDocObjectServer

Menerapkan antarmuka OLE tambahan yang diperlukan untuk membuat server normal COleDocument ke server DocObject lengkap: IOleDocument, , IOleDocumentViewIOleCommandTarget, dan IPrint.

Sintaks

class CDocObjectServer : public CCmdTarget

Anggota

Konstruktor Publik

Nama Deskripsi
CDocObjectServer::CDocObjectServer Membuat CDocObjectServer objek.

Metode Publik

Nama Deskripsi
CDocObjectServer::ActivateDocObject Mengaktifkan server objek dokumen, tetapi tidak memperlihatkannya.

Metode yang Dilindungi

Nama Deskripsi
CDocObjectServer::OnActivateView Menampilkan tampilan DocObject.
CDocObjectServer::OnApplyViewState Memulihkan status tampilan DocObject.
CDocObjectServer::OnSaveViewState Menyimpan status tampilan DocObject.

Keterangan

CDocObjectServer berasal dari CCmdTarget dan bekerja sama dengan COleServerDoc untuk mengekspos antarmuka.

Dokumen server DocObject dapat berisi objek CDocObjectServerItem , yang mewakili antarmuka server ke item DocObject.

Untuk menyesuaikan server DocObject Anda, dapatkan kelas Anda sendiri dari CDocObjectServer dan ambil alih fungsi penyiapan tampilannya, OnActivateView, OnApplyViewState, dan OnSaveViewState. Anda harus memberikan instans baru kelas Anda sebagai respons terhadap panggilan kerangka kerja.

Untuk informasi lebih lanjut tentang DocObjects, lihat CDocObjectServerItem dan COleCmdUI di Referensi MFC.

Hierarki Warisan

CObject

CCmdTarget

CDocObjectServer

Persyaratan

Header: afxdocob.h

CDocObjectServer::ActivateDocObject

Panggil fungsi ini untuk mengaktifkan (tetapi tidak menampilkan) server objek dokumen.

void ActivateDocObject();

Keterangan

ActivateDocObjectIOleDocumentSiteActivateMe memanggil metode, tetapi tidak menampilkan tampilan karena menunggu instruksi khusus tentang cara menyiapkan dan menampilkan tampilan, yang diberikan dalam panggilan ke CDocObjectServer::OnActivateView.

Bersama-sama, ActivateDocObject dan OnActivateView aktifkan dan tampilkan tampilan DocObject. Aktivasi DocObject berbeda dari jenis aktivasi OLE di tempat lainnya. Bypass aktivasi DocObject yang menampilkan batas hatch di tempat dan hiasan objek (seperti gagang ukuran), mengabaikan fungsi luas objek, dan menggambar bilah gulir dalam tampilan persegi panjang dibandingkan menggambarnya di luar persegi panjang tersebut (seperti pada aktivasi di tempat normal).

CDocObjectServer::CDocObjectServer

Membuat dan menginisialisasi CDocObjectServer objek.

explicit CDocObjectServer(
    COleServerDoc* pOwner,
    LPOLEDOCUMENTSITE pDocSite = NULL);

Parameter

pOwner
Penunjuk ke dokumen situs klien yang merupakan klien untuk server DocObject.

pDocSite
Penunjuk ke antarmuka yang IOleDocumentSite diimplementasikan oleh kontainer.

Keterangan

Ketika DocObject aktif, antarmuka OLE situs klien ( IOleDocumentSite) adalah apa yang memungkinkan server DocObject untuk berkomunikasi dengan kliennya (kontainer). Ketika server DocObject diaktifkan, pertama-tama memeriksa apakah kontainer mengimplementasikan IOleDocumentSite antarmuka. Jika demikian, COleServerDoc::GetDocObjectServer dipanggil untuk melihat apakah kontainer mendukung DocObjects. Secara default, GetDocObjectServer mengembalikan NULL. Anda harus mengambil alih COleServerDoc::GetDocObjectServer untuk membuat objek baru CDocObjectServer atau objek turunan Anda sendiri, dengan pointer ke COleServerDoc kontainer dan antarmukanya IOleDocumentSite sebagai argumen ke konstruktor.

CDocObjectServer::OnActivateView

Panggil fungsi ini untuk menampilkan tampilan DocObject.

virtual HRESULT OnActivateView();

Tampilkan Nilai

Mengembalikan nilai kesalahan atau peringatan. Secara default, mengembalikan NOERROR jika berhasil; jika tidak, E_FAIL.

Keterangan

Fungsi ini membuat jendela bingkai di tempat, menggambar bilah gulir dalam tampilan, mengatur menu yang dibagikan server dengan kontainernya, menambahkan kontrol bingkai, mengatur objek aktif, lalu akhirnya menunjukkan jendela bingkai di tempat dan mengatur fokus.

CDocObjectServer::OnApplyViewState

Ambil alih fungsi ini untuk memulihkan status tampilan DocObject.

virtual void OnApplyViewState(CArchive& ar);

Parameter

Ar
Objek CArchive dari mana untuk menserialisasikan status tampilan.

Keterangan

Fungsi ini dipanggil ketika tampilan ditampilkan untuk pertama kalinya setelah instansiasinya. OnApplyViewState menginstruksikan tampilan untuk menginisialisasi ulang dirinya sesuai dengan data dalam objek yang CArchive sebelumnya disimpan dengan OnSaveViewState. Tampilan harus memvalidasi data dalam CArchive objek karena kontainer tidak mencoba menginterpretasikan data status tampilan dengan cara apa pun.

Anda dapat menggunakan OnSaveViewState untuk menyimpan informasi persisten khusus untuk status tampilan Anda. Jika Anda mengambil OnSaveViewState alih untuk menyimpan informasi, Anda ingin mengambil alih OnApplyViewState untuk membaca informasi tersebut dan menerapkannya ke tampilan Anda saat baru diaktifkan.

CDocObjectServer::OnSaveViewState

Ambil alih fungsi ini untuk menyimpan informasi status tambahan tentang tampilan DocObject Anda.

virtual void OnSaveViewState(CArchive& ar);

Parameter

Ar
Objek CArchive tempat status tampilan diserialisasikan.

Keterangan

Status Anda mungkin menyertakan properti seperti jenis tampilan, faktor perbesar tampilan, penyisipan dan titik pilihan, dan sebagainya. Kontainer biasanya memanggil fungsi ini sebelum menonaktifkan tampilan. Status tersimpan nantinya dapat dipulihkan melalui OnApplyViewState.

Anda dapat menggunakan OnSaveViewState untuk menyimpan informasi persisten khusus untuk status tampilan Anda. Jika Anda mengambil OnSaveViewState alih untuk menyimpan informasi, Anda ingin mengambil alih OnApplyViewState untuk membaca informasi tersebut dan menerapkannya ke tampilan Anda saat baru diaktifkan.

Lihat juga

Kelas CCmdTarget
Bagan Hierarki
Kelas CDocObjectServerItem