Kelas CDocObjectServer
Menerapkan antarmuka OLE tambahan yang diperlukan untuk membuat server normal COleDocument
ke server DocObject lengkap: IOleDocument
, , IOleDocumentView
IOleCommandTarget
, 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
CDocObjectServer
Persyaratan
Header: afxdocob.h
CDocObjectServer::ActivateDocObject
Panggil fungsi ini untuk mengaktifkan (tetapi tidak menampilkan) server objek dokumen.
void ActivateDocObject();
Keterangan
ActivateDocObject
IOleDocumentSite
ActivateMe
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.