Kelas COleLinkingDoc
Kelas dasar untuk dokumen kontainer OLE yang mendukung penautan ke item yang disematkan di dalamnya.
Sintaks
class COleLinkingDoc : public COleDocument
Anggota
Konstruktor Publik
Nama | Deskripsi |
---|---|
COleLinkingDoc::COleLinkingDoc | Membuat COleLinkingDoc objek. |
Metode Publik
Nama | Deskripsi |
---|---|
COleLinkingDoc::Register | Mendaftarkan dokumen dengan DLL sistem OLE. |
COleLinkingDoc::Revoke | Mencabut pendaftaran dokumen. |
Metode yang Dilindungi
Nama | Deskripsi |
---|---|
COleLinkingDoc::OnFindEmbeddedItem | Menemukan item yang disematkan yang ditentukan. |
COleLinkingDoc::OnGetLinkedItem | Menemukan item tertaut yang ditentukan. |
Keterangan
Aplikasi kontainer yang mendukung penautan ke item yang disematkan disebut "kontainer tautan." Aplikasi sampel OCLIENT adalah contoh kontainer tautan.
Saat sumber item tertaut adalah item yang disematkan di dokumen lain, dokumen yang berisi harus dimuat agar item yang disematkan diedit. Untuk alasan ini, kontainer tautan harus dapat diluncurkan oleh aplikasi kontainer lain ketika pengguna ingin mengedit sumber item yang ditautkan. Aplikasi Anda juga harus menggunakan kelas COleTemplateServer sehingga dapat membuat dokumen saat diluncurkan secara terprogram.
Untuk menjadikan kontainer Anda sebagai kontainer tautan, dapatkan kelas dokumen Anda dari COleLinkingDoc
bukan COleDocument. Seperti halnya kontainer OLE lainnya, Anda harus merancang kelas Anda untuk menyimpan data asli aplikasi serta item yang disematkan atau ditautkan. Selain itu, Anda harus merancang struktur data untuk menyimpan data asli Anda. Jika Anda menentukan CDocItem
kelas -turunan untuk data asli aplikasi, Anda dapat menggunakan antarmuka yang ditentukan oleh COleDocument
untuk menyimpan data asli serta data OLE Anda.
Untuk memungkinkan aplikasi Anda diluncurkan secara terprogram oleh kontainer lain, nyatakan COleTemplateServer
objek sebagai anggota kelas -turunan aplikasi CWinApp
Anda:
class COleContainerApp : public CWinApp
{
protected:
COleTemplateServer m_server;
// remainder of class declaration omitted
InitInstance
Dalam fungsi anggota kelas turunan AndaCWinApp
, buat templat dokumen dan tentukan kelas turunan Anda COleLinkingDoc
sebagai kelas dokumen:
// CMyLinkDoc is derived from COleLinkingDoc
CMultiDocTemplate* pDocTemplate = new CMultiDocTemplate(IDR_LINKDOCTYPE,
RUNTIME_CLASS(CMyLinkDoc),
RUNTIME_CLASS(CChildFrame),
RUNTIME_CLASS(CMyLinkView));
if (!pDocTemplate)
return FALSE;
pDocTemplate->SetContainerInfo(IDR_OLECONTTYPE_CNTR_IP);
AddDocTemplate(pDocTemplate);
Sambungkan objek Anda COleTemplateServer
ke templat dokumen Anda dengan memanggil fungsi anggota objek ConnectTemplate
, dan daftarkan semua objek kelas dengan sistem OLE dengan memanggil COleTemplateServer::RegisterAll
:
m_server.ConnectTemplate(clsid, pDocTemplate, FALSE);
COleTemplateServer::RegisterAll();
Untuk contoh CWinApp
definisi dan InitInstance
fungsi kelas turunan, lihat OCLIENT. H dan OCLIENT. CPP dalam sampel MFC OCLIENT.
Untuk informasi selengkapnya tentang menggunakan COleLinkingDoc
, lihat artikel Kontainer: Menerapkan Kontainer dan Kontainer: Fitur Tingkat Lanjut.
Hierarki Warisan
COleLinkingDoc
Persyaratan
Header: afxole.h
COleLinkingDoc::COleLinkingDoc
Membuat COleLinkingDoc
objek tanpa memulai komunikasi dengan DLL sistem OLE.
COleLinkingDoc();
Keterangan
Anda harus memanggil Register
fungsi anggota untuk memberi tahu OLE bahwa dokumen terbuka.
COleLinkingDoc::OnFindEmbeddedItem
Dipanggil oleh kerangka kerja untuk menentukan apakah dokumen berisi item OLE yang disematkan dengan nama yang ditentukan.
virtual COleClientItem* OnFindEmbeddedItem(LPCTSTR lpszItemName);
Parameter
lpszItemName
Penunjuk ke nama item OLE yang disematkan yang diminta.
Tampilkan Nilai
Penunjuk ke item yang ditentukan; NULL jika item tidak ditemukan.
Keterangan
Implementasi default mencari daftar item yang disematkan untuk item dengan nama yang ditentukan (perbandingan nama peka huruf besar/kecil). Ambil alih fungsi ini jika Anda memiliki metode Anda sendiri untuk menyimpan atau menamai item OLE yang disematkan.
COleLinkingDoc::OnGetLinkedItem
Dipanggil oleh kerangka kerja untuk memeriksa apakah dokumen berisi item server tertaut dengan nama yang ditentukan.
virtual COleServerItem* OnGetLinkedItem(LPCTSTR lpszItemName);
Parameter
lpszItemName
Penunjuk ke nama item OLE tertaut yang diminta.
Tampilkan Nilai
Penunjuk ke item yang ditentukan; NULL jika item tidak ditemukan.
Keterangan
Implementasi default COleLinkingDoc
selalu mengembalikan NULL. Fungsi ini ditimpa di kelas COleServerDoc
turunan untuk mencari daftar item server OLE untuk item tertaut dengan nama yang ditentukan (perbandingan nama peka huruf besar/kecil). Ambil alih fungsi ini jika Anda telah menerapkan metode Anda sendiri untuk menyimpan atau mengambil item server tertaut.
COleLinkingDoc::Register
Menginformasikan DLL sistem OLE bahwa dokumen terbuka.
BOOL Register(
COleObjectFactory* pFactory,
LPCTSTR lpszPathName);
Parameter
pFactory
Pointer ke objek pabrik OLE (bisa NULL).
lpszPathName
Penunjuk ke jalur dokumen kontainer yang sepenuhnya memenuhi syarat.
Tampilkan Nilai
Bukan nol jika dokumen berhasil didaftarkan; jika tidak, 0.
Keterangan
Panggil fungsi ini saat membuat atau membuka file bernama untuk mendaftarkan dokumen dengan DLL sistem OLE. Tidak perlu memanggil fungsi ini jika dokumen mewakili item yang disematkan.
Jika Anda menggunakan COleTemplateServer
dalam aplikasi Anda, Register
dipanggil untuk Anda dengan COleLinkingDoc
implementasi OnNewDocument
, , OnOpenDocument
dan OnSaveDocument
.
COleLinkingDoc::Revoke
Menginformasikan DLL sistem OLE bahwa dokumen tidak lagi terbuka.
void Revoke();
Keterangan
Panggil fungsi ini untuk mencabut pendaftaran dokumen dengan DLL sistem OLE.
Anda harus memanggil fungsi ini saat menutup file bernama, tetapi Anda biasanya tidak perlu memanggilnya secara langsung. Revoke
dipanggil untuk Anda oleh COleLinkingDoc
implementasi OnCloseDocument
, , OnNewDocument
OnOpenDocument
, dan OnSaveDocument
.
Lihat juga
Sampel MFC OCLIENT
Kelas COleDocument
Bagan Hierarki
Kelas CDocTemplate