Bagikan melalui


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 COleServerDockelas turunan untuk setiap jenis dokumen server yang didukung aplikasi Anda. Misalnya, jika aplikasi server Anda mendukung lembar kerja dan bagan, Anda memerlukan dua COleServerDockelas turunan.

Untuk informasi selengkapnya tentang server, lihat artikel Server: Menerapkan Server.

Hierarki Warisan

CObject

CCmdTarget

CDocument

COleDocument

COleLinkingDoc

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 COleLinkingDocimplementasi OnNewDocument, , OnOpenDocumentdan 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 COleServerDocimplementasi 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 COleServerDocimplementasi 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 COleServerDocimplementasi 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 COleServerItemkelas -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 CObjectkelas -turunan untuk menyimpan informasi tentang modifikasi dan meneruskan objek kelas tersebut menggunakan pHint. Ambil alih OnUpdate fungsi anggota di kelas turunan Anda COleServerItemuntuk 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