
La classe COleLinkingDoc è la classe base per i documenti di contenitore OLE che supporta il collegamento tra di essi contengono gli elementi incorporati. Un'applicazione contenitore che supporta il collegamento a elementi incorporati è chiamata un "contenitore di collegamento". La applicazione di esempio OCLIENT è un esempio di un contenitore di collegamento.
Quando la sorgente dell'elemento collegato è un elemento incorporato in un altro documento, che contiene il documento deve essere caricato in modo che l'elemento incorporato da modificare. Per questo motivo, un contenitore di collegamento deve essere in grado di essere lanciato da un'altra applicazione contenitore quando l'utente desidera modificare il codice sorgente di un elemento collegato. L'applicazione deve inoltre utilizzare la classe di COleTemplateServer modo che possono creare documenti quando ha lanciato a livello di codice.
Per rendere il contenitore di un contenitore di collegamento, derivare la classe documento da COleLinkingDoc invece di COleDocument. Come con qualsiasi altro contenitore OLE, è necessario progettare la classe per la memorizzazione dell'applicazione dati nativi come elementi incorporati o collegati. Inoltre, è necessario progettare strutture di dati per la memorizzazione di dati nativi. Se si definisce un CDocItem-classe derivata per l'applicazione nativa dei dati, è possibile utilizzare l'interfaccia definita da COleDocument per memorizzare i vostri dati nativi, così come i vostri dati OLE.
Per consentire l'applicazione per essere lanciato a livello di codice da un altro contenitore, dichiarare un oggetto COleTemplateServer come membro dell'applicazione CWinApp-classe derivata:
classe COleClientApp: CWinApp pubblica
{
// ...
protetto:
COleTemplateServer m_server;
// ...
}
Nella funzione membro InitInstance di tuo CWinApp-classe derivata creare un modello di documento e specificare il tuo COleLinkingDoc-classe come la classe documento derivata:
/ / CMainDoc è derivato da COleLinkingDoc
CMultiDocTemplate * pDocTemplate = nuovo CMultiDocTemplate (IDR_OCLIENTTYPE,
nbsp; RUNTIME_CLASS(CMainDoc),
RUNTIME_CLASS(CSplitFrame),
RUNTIME_CLASS(CMainView));
pDocTemplate - > (SetContainerInfo
IDR_OCLIENTTYPE_CNTR_IP);
AddDocTemplate(pDocTemplate)
Collegare l'oggetto COleTemplateServer per i modelli di documento chiamando la funzione di membro ConnectTemplate dell'oggetto e registrare tutti gli oggetti di classe con il sistema OLE chiamando COleTemplateServer::RegisterAll
m_server.ConnectTemplate (clsid, pDocTemplate, FALSE);
COleTemplateServer::RegisterAll()
Per un esempio di CWinApp-definizione della classe derivata e funzione InitInstance , vedere OCLIENT.H e OCLIENT.CPP nell'esempio MFC OCLIENT.
Per ulteriori informazioni sull'utilizzo di COleLinkingDoc, vedere gli articoli contenitori: implementazione di un contenitore di e contenitori: Advanced Features nel manuale del programmatore di Visual C++.
# include lt;afxole.h>
Membri della classe |nbsp; Classe base | Gerarchia Chart
Campionenbsp; Esempio MFC OCLIENT
Vedere a&nchenbsp;CDocTemplate