Kelas COleServerDoc
Kelas dasar untuk dokumen server OLE.
Sintaks
class AFX_NOVTABLE COleServerDoc : public COleLinkingDoc
Anggota
Konstruktor Publik
Nama | Deskripsi |
---|---|
COleServerDoc::COleServerDoc | Membuat COleServerDoc objek. |
Metode Publik
Nama | Deskripsi |
---|---|
COleServerDoc::ActivateDocObject | Mengaktifkan dokumen DocObject terkait. |
COleServerDoc::ActivateInPlace | Mengaktifkan dokumen untuk pengeditan di tempat. |
COleServerDoc::D eactivateAndUndo | Menonaktifkan antarmuka pengguna server. |
COleServerDoc::D iscardUndoState | Membuang informasi undo-state. |
COleServerDoc::GetClientSite | Mengambil penunjuk ke antarmuka yang mendasar IOleClientSite . |
COleServerDoc::GetEmbeddedItem | Mengembalikan penunjuk ke item yang mewakili seluruh dokumen. |
COleServerDoc::GetItemClipRect | Mengembalikan persegi panjang kliping saat ini untuk pengeditan di tempat. |
COleServerDoc::GetItemPosition | Mengembalikan persegi posisi saat ini, relatif terhadap area klien aplikasi kontainer, untuk pengeditan di tempat. |
COleServerDoc::GetZoomFactor | Mengembalikan faktor zoom dalam piksel. |
COleServerDoc::IsDocObject | Menentukan apakah dokumen tersebut adalah DocObject. |
COleServerDoc::IsEmbedded | Menunjukkan apakah dokumen disematkan dalam dokumen kontainer atau berjalan berdiri sendiri. |
COleServerDoc::IsInPlaceActive | Mengembalikan TRUE jika item saat ini diaktifkan. |
COleServerDoc::NotifyChanged | Memberi tahu kontainer bahwa pengguna telah mengubah dokumen. |
COleServerDoc::NotifyClosed | Memberi tahu kontainer bahwa pengguna telah menutup dokumen. |
COleServerDoc::NotifyRename | Memberi tahu kontainer bahwa pengguna telah mengganti nama dokumen. |
COleServerDoc::NotifySaved | Memberi tahu kontainer bahwa pengguna telah menyimpan dokumen. |
COleServerDoc::OnDeactivate | Dipanggil oleh kerangka kerja saat pengguna menonaktifkan item yang diaktifkan. |
COleServerDoc::OnDeactivateUI | Dipanggil oleh kerangka kerja untuk menghancurkan kontrol dan elemen antarmuka pengguna lainnya yang dibuat untuk aktivasi di tempat. |
COleServerDoc::OnDocWindowActivate | Dipanggil oleh kerangka kerja saat jendela bingkai dokumen kontainer diaktifkan atau dinonaktifkan. |
COleServerDoc::OnResizeBorder | Dipanggil oleh kerangka kerja ketika jendela bingkai aplikasi kontainer atau jendela dokumen diubah ukurannya. |
COleServerDoc::OnShowControlBars | Dipanggil oleh kerangka kerja untuk menampilkan atau menyembunyikan bilah kontrol untuk pengeditan di tempat. |
COleServerDoc::OnUpdateDocument | Dipanggil oleh kerangka kerja saat dokumen server yang merupakan item tersemat disimpan, memperbarui salinan kontainer item. |
COleServerDoc::RequestPositionChange | Mengubah posisi bingkai pengeditan di tempat. |
COleServerDoc::SaveEmbedding | Memberi tahu aplikasi kontainer untuk menyimpan dokumen. |
COleServerDoc::ScrollContainerBy | Menggulir dokumen kontainer. |
COleServerDoc::UpdateAllItems | Memberi tahu kontainer bahwa pengguna telah mengubah dokumen. |
Metode yang Dilindungi
Nama | Deskripsi |
---|---|
COleServerDoc::CreateInPlaceFrame | Dipanggil oleh kerangka kerja untuk membuat jendela bingkai untuk pengeditan di tempat. |
COleServerDoc::D estroyInPlaceFrame | Dipanggil oleh kerangka kerja untuk menghancurkan jendela bingkai untuk pengeditan di tempat. |
COleServerDoc::GetDocObjectServer | Ambil alih fungsi ini untuk membuat objek baru CDocObjectServer dan menunjukkan bahwa dokumen ini adalah kontainer DocObject. |
COleServerDoc::OnClose | Dipanggil oleh kerangka kerja ketika kontainer meminta untuk menutup dokumen. |
COleServerDoc::OnExecOleCmd | Menjalankan perintah yang ditentukan atau menampilkan bantuan untuk perintah. |
COleServerDoc::OnFrameWindowActivate | Dipanggil oleh kerangka kerja saat jendela bingkai kontainer diaktifkan atau dinonaktifkan. |
COleServerDoc::OnGetEmbeddedItem | Dipanggil untuk mendapatkan COleServerItem yang mewakili seluruh dokumen; digunakan untuk mendapatkan item yang disematkan. Implementasi diperlukan. |
COleServerDoc::OnReactivateAndUndo | Dipanggil oleh kerangka kerja untuk membatalkan perubahan yang dilakukan selama pengeditan di tempat. |
COleServerDoc::OnSetHostNames | Dipanggil oleh kerangka kerja saat kontainer mengatur judul jendela untuk objek yang disematkan. |
COleServerDoc::OnSetItemRects | Dipanggil oleh kerangka kerja untuk memosisikan jendela bingkai pengeditan di tempat dalam jendela aplikasi kontainer. |
COleServerDoc::OnShowDocument | Dipanggil oleh kerangka kerja untuk memperlihatkan atau menyembunyikan dokumen. |
Keterangan
Dokumen server dapat berisi objek COleServerItem , yang mewakili antarmuka server untuk item yang disematkan atau ditautkan. Ketika aplikasi server diluncurkan oleh kontainer untuk mengedit item yang disematkan, item dimuat sebagai dokumen servernya sendiri; COleServerDoc
objek hanya berisi satu COleServerItem
objek, yang terdiri dari seluruh dokumen. Saat aplikasi server diluncurkan oleh kontainer untuk mengedit item tertaut, dokumen yang ada dimuat dari disk; sebagian konten dokumen disorot untuk menunjukkan item tertaut.
COleServerDoc
objek juga dapat berisi item kelas COleClientItem . Ini memungkinkan Anda membuat aplikasi server kontainer. Kerangka kerja menyediakan fungsi untuk menyimpan COleClientItem
item dengan benar saat melayani COleServerItem
objek.
Jika aplikasi server Anda tidak mendukung tautan, dokumen server akan selalu berisi hanya satu item server, yang mewakili seluruh objek yang disematkan sebagai dokumen. Jika aplikasi server Anda mendukung tautan, aplikasi harus membuat item server setiap kali pilihan disalin ke Clipboard.
Untuk menggunakan COleServerDoc
, dapatkan kelas darinya dan terapkan fungsi anggota OnGetEmbeddedItem , yang memungkinkan server Anda mendukung item yang disematkan. Dapatkan kelas dari COleServerItem
untuk mengimplementasikan item dalam dokumen Anda, dan mengembalikan objek kelas tersebut dari OnGetEmbeddedItem
.
Untuk mendukung item tertaut, COleServerDoc
berikan fungsi anggota OnGetLinkedItem . Anda dapat menggunakan implementasi default atau mengambil alihnya jika Anda memiliki cara Anda sendiri untuk mengelola item dokumen.
Anda memerlukan satu COleServerDoc
kelas turunan untuk setiap jenis dokumen server yang didukung aplikasi Anda. Misalnya, jika aplikasi server Anda mendukung lembar kerja dan bagan, Anda memerlukan dua COleServerDoc
kelas turunan.
Untuk informasi selengkapnya tentang server, lihat artikel Server: Menerapkan Server.
Hierarki Warisan
COleServerDoc
Persyaratan
Header: afxole.h
COleServerDoc::ActivateDocObject
Mengaktifkan dokumen DocObject terkait.
void ActivateDocObject();
Keterangan
Secara default, COleServerDoc
tidak mendukung dokumen Aktif (juga disebut sebagai DocObjects). Untuk mengaktifkan dukungan ini, lihat GetDocObjectServer dan kelas CDocObjectServer.
COleServerDoc::ActivateInPlace
Mengaktifkan item untuk pengeditan di tempat.
BOOL ActivateInPlace();
Tampilkan Nilai
Bukan nol jika berhasil; jika tidak, 0, yang menunjukkan bahwa item terbuka sepenuhnya.
Keterangan
Fungsi ini melakukan semua operasi yang diperlukan untuk aktivasi di tempat. Ini membuat jendela bingkai di tempat, mengaktifkannya dan mengukurnya ke item, mengatur menu bersama dan kontrol lainnya, menggulir item ke dalam tampilan, dan mengatur fokus ke jendela bingkai di tempat.
Fungsi ini dipanggil oleh implementasi default COleServerItem::OnShow. Panggil fungsi ini jika aplikasi Anda mendukung kata kerja lain untuk aktivasi di tempat (seperti Play).
COleServerDoc::COleServerDoc
Membuat COleServerDoc
objek tanpa menyambungkan dengan DLL sistem OLE.
COleServerDoc();
Keterangan
Anda harus memanggil COleLinkingDoc::Register untuk membuka komunikasi dengan OLE. Jika Anda menggunakan COleTemplateServer dalam aplikasi Anda, COleLinkingDoc::Register
dipanggil untuk Anda dengan COleLinkingDoc
implementasi OnNewDocument
, , OnOpenDocument
dan OnSaveDocument
.
COleServerDoc::CreateInPlaceFrame
Kerangka kerja memanggil fungsi ini untuk membuat jendela bingkai untuk pengeditan di tempat.
virtual COleIPFrameWnd* CreateInPlaceFrame(CWnd* pParentWnd);
Parameter
pParentWnd
Penunjuk ke jendela induk aplikasi kontainer.
Tampilkan Nilai
Penunjuk ke jendela bingkai di tempat, atau NULL jika tidak berhasil.
Keterangan
Implementasi default menggunakan informasi yang ditentukan dalam templat dokumen untuk membuat bingkai. Tampilan yang digunakan adalah tampilan pertama yang dibuat untuk dokumen. Tampilan ini untuk sementara dilepas dari bingkai asli dan dilampirkan ke bingkai yang baru dibuat.
Ini adalah pengalih tingkat lanjut.
COleServerDoc::D eactivateAndUndo
Panggil fungsi ini jika aplikasi Anda mendukung Batalkan dan pengguna memilih Batalkan setelah mengaktifkan item tetapi sebelum mengeditnya.
BOOL DeactivateAndUndo();
Tampilkan Nilai
Nonzero pada kesuksesan; jika tidak, 0.
Keterangan
Jika aplikasi kontainer ditulis menggunakan Pustaka Kelas Microsoft Foundation, memanggil fungsi ini menyebabkan COleClientItem::OnDeactivateAndUndo dipanggil, yang menonaktifkan antarmuka pengguna server.
COleServerDoc::D estroyInPlaceFrame
Kerangka kerja memanggil fungsi ini untuk menghancurkan jendela bingkai di tempat dan mengembalikan jendela dokumen aplikasi server ke statusnya sebelum aktivasi di tempat.
virtual void DestroyInPlaceFrame(COleIPFrameWnd* pFrameWnd);
Parameter
pFrameWnd
Penunjuk ke jendela bingkai di tempat yang akan dihancurkan.
Keterangan
Ini adalah pengalih tingkat lanjut.
COleServerDoc::D iscardUndoState
Jika pengguna melakukan operasi pengeditan yang tidak dapat dibatalkan, panggil fungsi ini untuk memaksa aplikasi kontainer membuang informasi undo-state-nya.
BOOL DiscardUndoState();
Tampilkan Nilai
Nonzero pada kesuksesan; jika tidak, 0.
Keterangan
Fungsi ini disediakan sehingga server yang mendukung Batalkan dapat membebaskan sumber daya yang jika tidak akan dikonsumsi oleh informasi batalkan status yang tidak dapat digunakan.
COleServerDoc::GetClientSite
Mengambil penunjuk ke antarmuka yang mendasar IOleClientSite
.
LPOLECLIENTSITE GetClientSite() const;
Tampilkan Nilai
Mengambil penunjuk ke antarmuka IOleClientSite yang mendasar.
COleServerDoc::GetDocObjectServer
Ambil alih fungsi ini untuk membuat item baru CDocObjectServer
dan mengembalikan penunjuk ke dalamnya.
virtual CDocObjectServer* GetDocObjectServer(LPOLEDOCUMENTSITE pDocSite);
Parameter
pDocSite
Arahkan ke IOleDocumentSite
antarmuka yang akan menyambungkan dokumen ini ke server.
Tampilkan Nilai
Penunjuk ke CDocObjectServer
; NULL jika operasi gagal.
Keterangan
Saat server DocObject diaktifkan, pengembalian pointer non-NULL menunjukkan bahwa klien dapat mendukung DocObjects. Implementasi default mengembalikan NULL.
Implementasi umum untuk dokumen yang mendukung DocObjects hanya akan mengalokasikan objek baru CDocObjectServer
dan mengembalikannya ke pemanggil. Contohnya:
CDocObjectServer* CMFCOleServerDoc::GetDocObjectServer(LPOLEDOCUMENTSITE pSite)
{
return new CDocObjectServer(this, pSite);
}
COleServerDoc::GetEmbeddedItem
Panggil fungsi ini untuk mendapatkan penunjuk ke item yang mewakili seluruh dokumen.
COleServerItem* GetEmbeddedItem();
Tampilkan Nilai
Penunjuk ke item yang mewakili seluruh dokumen; NULL jika operasi gagal.
Keterangan
Ini memanggil COleServerDoc::OnGetEmbeddedItem, fungsi virtual tanpa implementasi default.
COleServerDoc::GetItemClipRect
GetItemClipRect
Panggil fungsi anggota untuk mendapatkan koordinat kliping-persegi panjang item yang sedang diedit.
void GetItemClipRect(LPRECT lpClipRect) const;
Parameter
lpClipRect
Penunjuk ke RECT
struktur atau CRect
objek untuk menerima koordinat kliping-persegi panjang item.
Keterangan
Koordinat dalam piksel relatif terhadap area klien jendela aplikasi kontainer.
Gambar tidak boleh terjadi di luar persegi panjang kliping. Biasanya, gambar secara otomatis dibatasi. Gunakan fungsi ini untuk menentukan apakah pengguna telah menggulir di luar bagian dokumen yang terlihat; jika demikian, gulir dokumen kontainer sesuai kebutuhan dengan panggilan ke ScrollContainerBy.
COleServerDoc::GetItemPosition
GetItemPosition
Panggil fungsi anggota untuk mendapatkan koordinat item yang sedang diedit.
void GetItemPosition(LPRECT lpPosRect) const;
Parameter
lpPosRect
Arahkan ke RECT
struktur atau CRect
objek untuk menerima koordinat item.
Keterangan
Koordinat dalam piksel relatif terhadap area klien jendela aplikasi kontainer.
Posisi item dapat dibandingkan dengan persegi panjang kliping saat ini untuk menentukan sejauh mana item terlihat (atau tidak terlihat) di layar.
COleServerDoc::GetZoomFactor
Fungsi GetZoomFactor
anggota menentukan "faktor zoom" item yang telah diaktifkan untuk pengeditan di tempat.
BOOL GetZoomFactor(
LPSIZE lpSizeNum = NULL,
LPSIZE lpSizeDenom = NULL,
LPCRECT lpPosRect = NULL) const;
Parameter
lpSizeNum
Penunjuk ke objek kelas CSize
yang akan menahan pembilang faktor zoom. Bisa NULL.
lpSizeDenom
Penunjuk ke objek kelas CSize
yang akan menahan penentu faktor zoom. Bisa NULL.
lpPosRect
Penunjuk ke objek kelas CRect
yang menjelaskan posisi baru item. Jika argumen ini NULL, fungsi menggunakan posisi item saat ini.
Tampilkan Nilai
Bukan nol jika item diaktifkan untuk pengeditan di tempat dan faktor zoomnya selain 100% (1:1); jika tidak, 0.
Keterangan
Faktor zoom, dalam piksel, adalah proporsi ukuran item hingga tingkatnya saat ini. Jika aplikasi kontainer belum mengatur tingkat item, tingkat alaminya (seperti yang ditentukan oleh COleServerItem::OnGetExtent) digunakan.
Fungsi ini mengatur dua argumen pertamanya ke pembilang dan denominator "faktor zoom" item. Jika item tidak diedit di tempat, fungsi mengatur argumen ini ke nilai default 100% (atau 1:1) dan mengembalikan nol. Untuk informasi selengkapnya, lihat Catatan Teknis 40, Pengubahan Ukuran dan Pembesaran Di Tempat MFC/OLE.
COleServerDoc::IsDocObject
Menentukan apakah dokumen tersebut adalah DocObject.
BOOL IsDocObject() const;
Tampilkan Nilai
TRUE jika dokumen adalah DocObject; jika tidak FALSE.
COleServerDoc::IsEmbedded
IsEmbedded
Panggil fungsi anggota untuk menentukan apakah dokumen mewakili objek yang disematkan dalam kontainer.
BOOL IsEmbedded() const;
Tampilkan Nilai
Bukan nol jika COleServerDoc
objek adalah dokumen yang mewakili objek yang disematkan dalam kontainer; jika tidak, 0.
Keterangan
Dokumen yang dimuat dari file tidak disematkan meskipun mungkin dimanipulasi oleh aplikasi kontainer sebagai tautan. Dokumen yang disematkan dalam dokumen kontainer dianggap disematkan.
COleServerDoc::IsInPlaceActive
IsInPlaceActive
Panggil fungsi anggota untuk menentukan apakah item saat ini dalam status aktif di tempat.
BOOL IsInPlaceActive() const;
Tampilkan Nilai
Bukan nol jika COleServerDoc
objek aktif di tempat; jika tidak, 0.
COleServerDoc::NotifyChanged
Panggil fungsi ini untuk memberi tahu semua item tertaut yang tersambung ke dokumen bahwa dokumen telah berubah.
void NotifyChanged();
Keterangan
Biasanya, Anda memanggil fungsi ini setelah pengguna mengubah beberapa atribut global seperti dimensi dokumen server. Jika item OLE ditautkan ke dokumen dengan tautan otomatis, item diperbarui untuk mencerminkan perubahan. Dalam aplikasi kontainer yang ditulis dengan Microsoft Foundation Class Library, COleClientItem
dipanggil.
Catatan
Fungsi ini disertakan untuk kompatibilitas dengan OLE 1. Aplikasi baru harus menggunakan UpdateAllItems.
COleServerDoc::NotifyClosed
Panggil fungsi ini untuk memberi tahu kontainer bahwa dokumen telah ditutup.
void NotifyClosed();
Keterangan
Saat pengguna memilih perintah Tutup dari menu File, NotifyClosed
dipanggil oleh COleServerDoc
implementasi fungsi anggota OnCloseDocument . Dalam aplikasi kontainer yang ditulis dengan Microsoft Foundation Class Library, COleClientItem
dipanggil.
COleServerDoc::NotifyRename
Panggil fungsi ini setelah pengguna mengganti nama dokumen server.
void NotifyRename(LPCTSTR lpszNewName);
Parameter
lpszNewName
Penunjuk ke string yang menentukan nama baru dokumen server; ini biasanya merupakan jalur yang sepenuhnya memenuhi syarat.
Keterangan
Saat pengguna memilih perintah Simpan Sebagai dari menu File, NotifyRename
dipanggil oleh COleServerDoc
implementasi fungsi anggota OnSaveDocument . Fungsi ini memberi tahu DLL sistem OLE, yang pada gilirannya memberi tahu kontainer. Dalam aplikasi kontainer yang ditulis dengan Microsoft Foundation Class Library, COleClientItem
dipanggil.
COleServerDoc::NotifySaved
Panggil fungsi ini setelah pengguna menyimpan dokumen server.
void NotifySaved();
Keterangan
Ketika pengguna memilih perintah Simpan dari menu File, NotifySaved
dipanggil untuk Anda oleh COleServerDoc
implementasi OnSaveDocument. Fungsi ini memberi tahu DLL sistem OLE, yang pada gilirannya memberi tahu kontainer. Dalam aplikasi kontainer yang ditulis dengan Microsoft Foundation Class Library, COleClientItem
dipanggil.
COleServerDoc::OnClose
Dipanggil oleh kerangka kerja ketika kontainer meminta agar dokumen server ditutup.
virtual void OnClose(OLECLOSE dwCloseOption);
Parameter
dwCloseOption
Nilai dari enumerasi OLECLOSE. Parameter ini dapat memiliki salah satu nilai berikut:
OLECLOSE_SAVEIFDIRTY File disimpan jika telah dimodifikasi.
OLECLOSE_NOSAVE File ditutup tanpa disimpan.
OLECLOSE_PROMPTSAVE Jika file telah dimodifikasi, pengguna akan diminta untuk menyimpannya.
Keterangan
Implementasi default memanggil CDocument::OnCloseDocument
.
Untuk informasi selengkapnya dan nilai tambahan, lihat OLECLOSE di Windows SDK.
COleServerDoc::OnDeactivate
Dipanggil oleh kerangka kerja saat pengguna menonaktifkan item yang disematkan atau ditautkan yang saat ini aktif di tempat.
virtual void OnDeactivate();
Keterangan
Fungsi ini memulihkan antarmuka pengguna aplikasi kontainer ke status aslinya dan menghancurkan menu dan kontrol lain yang dibuat untuk aktivasi di tempat.
Informasi status batalkan harus dirilis tanpa syarat pada saat ini.
Untuk informasi selengkapnya, lihat artikel Aktivasi.
COleServerDoc::OnDeactivateUI
Dipanggil saat pengguna menonaktifkan item yang diaktifkan di tempat.
virtual void OnDeactivateUI(BOOL bUndoable);
Parameter
bUndoable
Menentukan apakah perubahan pengeditan dapat dibatalkan.
Keterangan
Fungsi ini memulihkan antarmuka pengguna aplikasi kontainer ke status aslinya, menyembunyikan menu apa pun dan kontrol lain yang dibuat untuk aktivasi di tempat.
Kerangka kerja selalu mengatur bUndoable ke FALSE. Jika server mendukung batalkan dan ada operasi yang dapat dibatalkan, panggil implementasi kelas dasar dengan bUndoable diatur ke TRUE.
COleServerDoc::OnDocWindowActivate
Kerangka kerja memanggil fungsi ini untuk mengaktifkan atau menonaktifkan jendela dokumen untuk pengeditan di tempat.
virtual void OnDocWindowActivate(BOOL bActivate);
Parameter
bActivate
Menentukan apakah jendela dokumen akan diaktifkan atau dinonaktifkan.
Keterangan
Implementasi default menghapus atau menambahkan elemen antarmuka pengguna tingkat bingkai yang sesuai. Ambil alih fungsi ini jika Anda ingin melakukan tindakan tambahan saat dokumen yang berisi item Anda diaktifkan atau dinonaktifkan.
Untuk informasi selengkapnya, lihat artikel Aktivasi.
COleServerDoc::OnExecOleCmd
Kerangka kerja memanggil fungsi ini untuk menjalankan perintah tertentu atau menampilkan bantuan untuk perintah.
virtual HRESULT OnExecOleCmd(
const GUID* pguidCmdGroup,
DWORD nCmdID,
DWORD nCmdExecOpt,
VARIANTARG* pvarargIn,
VARIANTARG* pvarargOut);
Parameter
pguidCmdGroup
Penunjuk ke GUID yang mengidentifikasi sekumpulan perintah. Dapat berupa NULL untuk menunjukkan grup perintah default.
nCmdID
Perintah untuk menjalankan. Harus berada dalam grup yang diidentifikasi oleh pguidCmdGroup.
nCmdExecOut
Cara objek harus menjalankan perintah, satu atau beberapa nilai berikut dari enumerasi OLECMDEXECOPT:
OLECMDEXECOPT_DODEFAULT
OLECMDEXECOPT_PROMPTUSER
OLECMDEXECOPT_DONTPROMPTUSER
OLECMDEXECOPT_SHOWHELP
pvarargIn
Penunjuk ke VARIANTARG yang berisi argumen input untuk perintah . Bisa NULL.
pvarargOut
Penunjuk ke VARIANTARG untuk menerima nilai pengembalian output dari perintah. Bisa NULL.
Tampilkan Nilai
Mengembalikan S_OK jika berhasil; jika tidak, salah satu kode kesalahan berikut:
Nilai | Deskripsi |
---|---|
E_UNEXPECTED | Terjadi kesalahan tak terduga |
E_FAIL | Terjadi kesalahan |
E_NOTIMPL | Menunjukkan MFC sendiri harus mencoba menerjemahkan dan mengirimkan perintah |
OLECMDERR_E_UNKNOWNGROUP | pguidCmdGroup bukan- NULL tetapi tidak menentukan grup perintah yang dikenali |
OLECMDERR_E_NOTSUPPORTED | nCmdID tidak dikenali sebagai perintah yang valid dalam grup pguidCmdGroup |
OLECMDERR_DISABLED | Perintah yang diidentifikasi oleh nCmdID dinonaktifkan dan tidak dapat dijalankan |
OLECMDERR_NOHELP | Penelepon meminta bantuan pada perintah yang diidentifikasi oleh nCmdID tetapi tidak ada bantuan yang tersedia |
OLECMDERR_CANCELED | Pengguna membatalkan eksekusi |
Keterangan
COleCmdUI
dapat digunakan untuk mengaktifkan, memperbarui, dan mengatur properti lain dari perintah antarmuka pengguna DocObject. Setelah perintah diinisialisasi, Anda dapat menjalankannya dengan OnExecOleCmd
.
Kerangka kerja memanggil fungsi sebelum mencoba menerjemahkan dan mengirimkan perintah dokumen OLE. Anda tidak perlu mengambil alih fungsi ini untuk menangani perintah dokumen OLE standar, tetapi Anda harus memberikan penimpaan ke fungsi ini jika Anda ingin menangani perintah kustom Anda sendiri atau menangani perintah yang menerima parameter atau mengembalikan hasil.
Sebagian besar perintah tidak mengambil argumen atau mengembalikan nilai. Untuk sebagian besar perintah pemanggil dapat meneruskan NULL untuk pvarargIn dan pvarargOut. Untuk perintah yang mengharapkan nilai input, pemanggil dapat mendeklarasikan dan menginisialisasi variabel VARIANTARG dan meneruskan penunjuk ke variabel di pvarargIn. Untuk perintah yang memerlukan satu nilai, argumen dapat disimpan langsung di VARIANTARG dan diteruskan ke fungsi . Beberapa argumen harus dipaketkan dalam VARIANTARG menggunakan salah satu jenis yang didukung (seperti IDispatch
dan SAFEARRAY ).
Demikian pula, jika perintah mengembalikan argumen pemanggil diharapkan untuk mendeklarasikan VARIANTARG, menginisialisasinya ke VT_EMPTY, dan meneruskan alamatnya di pvarargOut. Jika perintah mengembalikan satu nilai, objek dapat menyimpan nilai tersebut langsung di pvarargOut. Beberapa nilai output harus dimas dalam beberapa cara yang sesuai untuk VARIANTARG.
Implementasi kelas dasar fungsi ini akan memandu struktur OLE_COMMAND_MAP yang terkait dengan target perintah dan mencoba mengirimkan perintah ke handler yang sesuai. Implementasi kelas dasar hanya berfungsi dengan perintah yang tidak menerima argumen atau mengembalikan nilai. Jika Anda perlu menangani perintah yang menerima argumen atau mengembalikan nilai, Anda harus mengambil alih fungsi ini dan bekerja dengan parameter pvarargIn dan pvarargOut sendiri.
COleServerDoc::OnFrameWindowActivate
Kerangka kerja memanggil fungsi ini ketika jendela bingkai aplikasi kontainer diaktifkan atau dinonaktifkan.
virtual void OnFrameWindowActivate(BOOL bActivate);
Parameter
bActivate
Menentukan apakah jendela bingkai akan diaktifkan atau dinonaktifkan.
Keterangan
Implementasi default membatalkan mode bantuan apa pun yang mungkin ada di jendela bingkai. Ambil alih fungsi ini jika Anda ingin melakukan pemrosesan khusus saat jendela bingkai diaktifkan atau dinonaktifkan.
Untuk informasi selengkapnya, lihat artikel Aktivasi.
COleServerDoc::OnGetEmbeddedItem
Dipanggil oleh kerangka kerja ketika aplikasi kontainer memanggil aplikasi server untuk membuat atau mengedit item yang disematkan.
virtual COleServerItem* OnGetEmbeddedItem() = 0;
Tampilkan Nilai
Penunjuk ke item yang mewakili seluruh dokumen; NULL jika operasi gagal.
Keterangan
Tidak ada implementasi default. Anda harus mengambil alih fungsi ini untuk mengembalikan item yang mewakili seluruh dokumen. Nilai pengembalian ini harus menjadi objek dari COleServerItem
kelas -turunan.
COleServerDoc::OnReactivateAndUndo
Kerangka kerja memanggil fungsi ini ketika pengguna memilih untuk membatalkan perubahan yang dilakukan pada item yang telah diaktifkan di tempat, diubah, dan kemudian dinonaktifkan.
virtual BOOL OnReactivateAndUndo();
Tampilkan Nilai
Bukan nol jika berhasil; jika tidak, 0.
Keterangan
Implementasi default tidak melakukan apa pun kecuali mengembalikan FALSE untuk menunjukkan kegagalan.
Ambil alih fungsi ini jika aplikasi Anda mendukung urungkan. Biasanya Anda akan melakukan operasi batalkan, lalu mengaktifkan item dengan memanggil ActivateInPlace
. Jika aplikasi kontainer ditulis dengan Pustaka Kelas Microsoft Foundation, panggilan COleClientItem::ReactivateAndUndo
menyebabkan fungsi ini dipanggil.
COleServerDoc::OnResizeBorder
Kerangka kerja memanggil fungsi ini ketika ukuran jendela bingkai aplikasi kontainer berubah.
virtual void OnResizeBorder(
LPCRECT lpRectBorder,
LPOLEINPLACEUIWINDOW lpUIWindow,
BOOL bFrame);
Parameter
lpRectBorder
Penunjuk ke RECT
struktur atau CRect
objek yang menentukan koordinat batas.
lpUIWindow
Penunjuk ke objek kelas IOleInPlaceUIWindow
yang memiliki sesi pengeditan di tempat saat ini.
bFrame
TRUE jika lpUIWindow menunjuk ke jendela bingkai tingkat atas aplikasi kontainer, atau FALSE jika lpUIWindow menunjuk ke jendela bingkai tingkat dokumen aplikasi kontainer.
Keterangan
Fungsi ini mengubah ukuran dan menyesuaikan toolbar dan elemen antarmuka pengguna lainnya sesuai dengan ukuran jendela baru.
Untuk informasi selengkapnya, lihat IOleInPlaceUIWindow di Windows SDK.
Ini adalah pengalih tingkat lanjut.
COleServerDoc::OnSetHostNames
Dipanggil oleh kerangka kerja ketika kontainer menetapkan atau mengubah nama host untuk dokumen ini.
virtual void OnSetHostNames(
LPCTSTR lpszHost,
LPCTSTR lpszHostObj);
Parameter
lpszHost
Penunjuk ke string yang menentukan nama aplikasi kontainer.
lpszHostObj
Penunjuk ke string yang menentukan nama kontainer untuk dokumen.
Keterangan
Implementasi default mengubah judul dokumen untuk semua tampilan yang mengacu pada dokumen ini.
Ambil alih fungsi ini jika aplikasi Anda menetapkan judul melalui mekanisme yang berbeda.
COleServerDoc::OnSetItemRects
Kerangka kerja memanggil fungsi ini untuk memosisikan jendela bingkai pengeditan di tempat dalam jendela bingkai aplikasi kontainer.
virtual void OnSetItemRects(
LPCRECT lpPosRect,
LPCRECT lpClipRect);
Parameter
lpPosRect
Penunjuk ke RECT
struktur atau CRect
objek yang menentukan posisi jendela bingkai di tempat relatif terhadap area klien aplikasi kontainer.
lpClipRect
Penunjuk ke RECT
struktur atau CRect
objek yang menentukan persegi panjang kliping jendela bingkai di tempat relatif terhadap area klien aplikasi kontainer.
Keterangan
Ambil alih fungsi ini untuk memperbarui faktor zoom tampilan, jika perlu.
Fungsi ini biasanya dipanggil sebagai respons terhadap RequestPositionChange
panggilan, meskipun dapat dipanggil kapan saja oleh kontainer untuk meminta perubahan posisi untuk item di tempat.
COleServerDoc::OnShowControlBars
Kerangka kerja memanggil fungsi ini untuk menampilkan atau menyembunyikan bilah kontrol aplikasi server yang terkait dengan jendela bingkai yang diidentifikasi oleh pFrameWnd.
virtual void OnShowControlBars(
CFrameWnd* pFrameWnd,
BOOL bShow);
Parameter
pFrameWnd
Penunjuk ke jendela bingkai yang bilah kontrolnya harus disembunyikan atau ditampilkan.
bShow
Menentukan apakah bilah kontrol ditampilkan atau disembunyikan.
Keterangan
Implementasi default menghitung semua bilah kontrol yang dimiliki oleh jendela bingkai tersebut dan menyembunyikan atau menunjukkannya.
COleServerDoc::OnShowDocument
Kerangka kerja memanggil OnShowDocument
fungsi ketika dokumen server harus disembunyikan atau ditampilkan.
virtual void OnShowDocument(BOOL bShow);
Parameter
bShow
Menentukan apakah antarmuka pengguna ke dokumen akan ditampilkan atau disembunyikan.
Keterangan
Jika bShow TRUE, implementasi default mengaktifkan aplikasi server, jika perlu, dan menyebabkan aplikasi kontainer menggulir jendelanya sehingga item terlihat. Jika bShow FALSE, implementasi default menonaktifkan item melalui panggilan ke OnDeactivate
, lalu menghancurkan atau menyembunyikan semua jendela bingkai yang telah dibuat untuk dokumen, kecuali yang pertama. Jika tidak ada dokumen yang terlihat, implementasi default menyembunyikan aplikasi server.
COleServerDoc::OnUpdateDocument
Dipanggil oleh kerangka kerja saat menyimpan dokumen yang merupakan item yang disematkan dalam dokumen majemuk.
virtual BOOL OnUpdateDocument();
Tampilkan Nilai
Bukan nol jika dokumen berhasil diperbarui; jika tidak, 0.
Keterangan
Implementasi default memanggil fungsi anggota COleServerDoc::NotifySaved dan COleServerDoc::SaveEmbedding lalu menandai dokumen sebagai bersih. Ambil alih fungsi ini jika Anda ingin melakukan pemrosesan khusus saat memperbarui item yang disematkan.
COleServerDoc::RequestPositionChange
Panggil fungsi anggota ini agar aplikasi kontainer mengubah posisi item.
void RequestPositionChange(LPCRECT lpPosRect);
Parameter
lpPosRect
Penunjuk RECT
ke struktur atau objek yang CRect
berisi posisi baru item.
Keterangan
Fungsi ini biasanya disebut (bersama dengan UpdateAllItems
) ketika data dalam item aktif di tempat telah berubah. Setelah panggilan ini, kontainer mungkin atau mungkin tidak melakukan perubahan dengan memanggil OnSetItemRects
. Posisi yang dihasilkan mungkin berbeda dari yang diminta.
COleServerDoc::SaveEmbedding
Panggil fungsi ini untuk memberi tahu aplikasi kontainer untuk menyimpan objek yang disematkan.
void SaveEmbedding();
Keterangan
Fungsi ini dipanggil secara otomatis dari OnUpdateDocument
. Perhatikan bahwa fungsi ini menyebabkan item diperbarui pada disk, sehingga biasanya hanya dipanggil sebagai akibat dari tindakan pengguna tertentu.
COleServerDoc::ScrollContainerBy
ScrollContainerBy
Panggil fungsi anggota untuk menggulir dokumen kontainer berdasarkan jumlah, dalam piksel, yang ditunjukkan oleh sizeScroll
.
BOOL ScrollContainerBy(CSize sizeScroll);
Parameter
sizeScroll
Menunjukkan seberapa jauh dokumen kontainer untuk menggulir.
Tampilkan Nilai
Bukan nol jika berhasil; jika tidak, 0.
Keterangan
Nilai positif menunjukkan pengguliran ke bawah dan ke kanan; nilai negatif menunjukkan pengguliran ke atas dan ke kiri.
COleServerDoc::UpdateAllItems
Panggil fungsi ini untuk memberi tahu semua item tertaut yang tersambung ke dokumen bahwa dokumen telah berubah.
void UpdateAllItems(
COleServerItem* pSender,
LPARAM lHint = 0L,
CObject* pHint = NULL,
DVASPECT nDrawAspect = DVASPECT_CONTENT);
Parameter
pSender
Arahkan ke item yang mengubah dokumen, atau NULL jika semua item akan diperbarui.
lHint
Berisi informasi tentang modifikasi.
pHint
Penunjuk ke objek yang menyimpan informasi tentang modifikasi.
nDrawAspect
Menentukan bagaimana item akan digambar. Ini adalah nilai dari enumerasi DVASPECT. Parameter ini dapat memiliki salah satu nilai berikut:
DVASPECT_CONTENT Item diwakili sedimikian rupa sehingga dapat ditampilkan sebagai objek yang disematkan di dalam kontainernya.
DVASPECT_THUMBNAIL Item dirender dalam representasi "gambar mini" sehingga dapat ditampilkan dalam alat penjelajahan.
DVASPECT_ICON Item diwakili oleh ikon.
DVASPECT_DOCPRINT Item diwakili seolah-olah dicetak menggunakan perintah Cetak dari menu File.
Keterangan
Anda biasanya memanggil fungsi ini setelah pengguna mengubah dokumen server. Jika item OLE ditautkan ke dokumen dengan tautan otomatis, item diperbarui untuk mencerminkan perubahan. Dalam aplikasi kontainer yang ditulis dengan Microsoft Foundation Class Library, COleClientItem
dipanggil.
Fungsi ini memanggil OnUpdate
fungsi anggota untuk setiap item dokumen kecuali item pengiriman, melewati pHint, lHint, dan nDrawAspect. Gunakan parameter ini untuk meneruskan informasi ke item tentang modifikasi yang dilakukan pada dokumen. Anda dapat mengodekan informasi menggunakan lHint atau Anda dapat menentukan CObject
kelas -turunan untuk menyimpan informasi tentang modifikasi dan meneruskan objek kelas tersebut menggunakan pHint. Ambil alih OnUpdate
fungsi anggota di kelas turunan Anda COleServerItem
untuk mengoptimalkan pembaruan setiap item tergantung pada apakah presentasinya telah berubah.
Lihat juga
Sampel MFC HIERSVR
Kelas COleLinkingDoc
Bagan Hierarki
Kelas COleDocument
Kelas COleLinkingDoc
Kelas COleTemplateServer