
La classe COleLinkingDoc est la classe de base pour les documents conteneur OLE en charge la liaison des éléments intégrés qu'ils contiennent. Une application conteneur qui prend en charge la liaison d'éléments incorporés est appelée un « conteneur de lien ». La exemple d'application OCLIENT est un exemple d'un conteneur de lien.
Lorsque la source d'un élément lié est un élément incorporé dans un autre document, ce document contenant doit être chargé dans l'ordre de l'élément incorporé à être édité. Pour cette raison, un conteneur du lien doit être capable d'être lancé par une autre application conteneur lorsque l'utilisateur souhaite modifier la source d'un élément lié. Votre application doit utiliser la classe COleTemplateServer afin qu'elle peut créer des documents lorsqu'elle est lancée par programmation.
Pour rendre votre conteneur conteneur lien, dérivez votre classe de document de COleLinkingDoc au lieu de COleDocument. Comme avec tout autre conteneur OLE, vous devez concevoir votre classe pour le stockage de données natif de l'application ainsi que des éléments incorporés ou liés. Aussi, vous devez concevoir des structures de données pour stocker vos données en natif. Si vous définissez un CDocItem-classe dérivée pour votre application native des données, vous pouvez utiliser l'interface définie par COleDocument pour stocker vos données natif ainsi que vos données OLE.
Pour permettre à votre application d'être lancé par programmation par un autre conteneur, déclarez un objet COleTemplateServer comme un membre de votre application CWinApp-classe dérivée:
class COleClientApp : public CWinApp
{
// ...
protégé :
COleTemplateServer que m_server ;
// ...
}
Dans la fonction membre InitInstance de votre CWinApp-dérivé de classe, créer un modèle de document et de spécifier votre COleLinkingDoc-dérivé de classe dans la classe de document:
/ / CMainDoc est dérivé de COleLinkingDoc
CMultiDocTemplate * pDocTemplate = nouveau CMultiDocTemplate (IDR_OCLIENTTYPE,
nbsp ; RUNTIME_CLASS(CMainDoc),
RUNTIME_CLASS(CSplitFrame),
RUNTIME_CLASS(CMainView)) ;
pDocTemplate - > SetContainerInfo ()
IDR_OCLIENTTYPE_CNTR_IP) ;
AddDocTemplate(pDocTemplate)
Connecter votre objet COleTemplateServer à vos modèles de document en appelant la fonction membre ConnectTemplate de l'objet et enregistrer tous les objets de classe avec le système OLE en appelant COleTemplateServer::RegisterAll
que m_server.ConnectTemplate (clsid, pDocTemplate, FALSE) ;
COleTemplateServer::RegisterAll()
Pour un échantillon de CWinApp-définition de la classe dérivée et de la fonction InitInstance , voir OCLIENT.H et OCLIENT.RPC dans l'exemple MFC OCLIENT.
Pour plus d'informations sur COleLinkingDoc, consultez les articles conteneurs : mise en œuvre d'un contenant et conteneurs : fonctionnalités avancées dans le Guide du programmeur Visual C++.
# include lt;afxole.h>
Membres de la classe |nbsp ; Classe de base | Graphique de la hiérarchie
Échantillonnbsp ; MFC exemple OCLIENT
Voir aussi  ;CDocTemplate