
Die COleLinkingDoc -Klasse ist die Basisklasse für OLE-Container-Dokumente, die Verknüpfung zu der eingebettete Elemente, die sie enthalten. Eine Containeranwendung, die eingebettete Elemente verknüpfen unterstützt nennt man einen "Link-Container." Die OCLIENT -Beispielanwendung ist ein Beispiel für einen Link-Container.
Wenn ein verknüpftes Element Quelle ein eingebettetes Element in ein anderes Dokument ist, muss in Reihenfolge für das eingebettete Element bearbeitet werden, dass enthaltende Dokument geladen werden. Aus diesem Grund muss ein Link-Container werden in der Lage, durch eine andere Containeranwendung gestartet werden, wenn der Benutzer die Quelle der ein verknüpftes Element bearbeiten möchte. Ihre Anwendung muss auch die COleTemplateServer -Klasse verwenden, um Dokumente beim programmgesteuerten Erstellen können.
Um Ihren Container Link Container bilden, leiten Sie eine Dokumentenklasse von COleLinkingDoc anstelle von COleDocument. Wie bei jedem anderen OLE-Container, müssen Sie Ihre Klasse für das Speichern der Anwendungs von systemeigenen Daten sowie eingebettete oder verknüpfte Elemente entwerfen. Außerdem müssen Sie Datenstrukturen zum Speichern Ihrer systemeigenen Daten entwerfen. Wenn Sie eine CDocItem definieren-abgeleitete Klasse für die Anwendung native's Daten, können Sie die Schnittstelle von COleDocument definiert Ihre systemeigenen Daten sowie Ihre OLE-Daten speichern.
Um die Anwendung programmgesteuert durch einen anderen Container gestartet werden können, deklarieren Sie ein COleTemplateServer -Objekt als Member von der Anwendung CWinApp-abgeleitete Klasse:
klasse COleClientApp: öffentliche CWinApp
{
// ...
geschützt:
COleTemplateServer M_server;
// ...
}
In der InitInstance -Memberfunktion der CWinApp-abgeleitete Klasse, erstellen Sie eine Dokumentvorlage, und geben Sie Ihre COleLinkingDoc-abgeleitete Klasse als Dokumentklasse:
/ / CMainDoc ist aus COleLinkingDoc
CMultiDocTemplate * pDocTemplate = neue CMultiDocTemplate (IDR_OCLIENTTYPE,
Nbsp; RUNTIME_CLASS(CMainDoc),
RUNTIME_CLASS(CSplitFrame),
RUNTIME_CLASS(CMainView));
pDocTemplate - > SetContainerInfo ()
IDR_OCLIENTTYPE_CNTR_IP);
AddDocTemplate(pDocTemplate)
Ihre Dokumentvorlagen durch Aufrufen der ConnectTemplate -Memberfunktion des Objekts verbinden Sie das COleTemplateServer -Objekt und registrieren Sie alle Klassenobjekte mit den OLE-System durch Aufrufen von COleTemplateServer::RegisterAll
m_server.ConnectTemplate (Clsid, pDocTemplate, FALSE);
COleTemplateServer::RegisterAll()
Ein Beispiel von CWinApp-abgeleitete Klassendefinition und die Funktion InitInstance , siehe OCLIENT.H und der OCLIENT.CPP im MFC-Beispiel OCLIENT.
Weitere Informationen zur Verwendung von COleLinkingDocfinden Sie in die Artikeln Container: implementieren einen Container und Container: Erweiterte Funktionen im Visual C++ Programmer's Guide.
# include lt;afxole.h>
Klassenmember |nbsp; Basisklasse | Hierarchiediagramm
Beispiel&Nbsp; MFC-Beispiels OCLIENT
Siehe auch&Nbsp;CDocTemplate