Partager via


COleLinkingDoc, classe

Classe de base des documents de conteneur OLE qui prennent en charge la liaison aux éléments incorporés qu'ils contiennent.

Syntaxe

class COleLinkingDoc : public COleDocument

Membres

Constructeurs publics

Nom Description
COleLinkingDoc ::COleLinkingDoc Construit un objet COleLinkingDoc.

Méthodes publiques

Nom Description
COleLinkingDoc ::Register Inscrit le document auprès des DLL système OLE.
COleLinkingDoc ::Revoke Révoque l’inscription du document.

Méthodes protégées

Nom Description
COleLinkingDoc ::OnFindEmbeddedItem Recherche l’élément incorporé spécifié.
COleLinkingDoc ::OnGetLinkedItem Recherche l’élément lié spécifié.

Notes

Une application conteneur qui prend en charge la liaison à des éléments incorporés est appelée « conteneur de liens ». L’exemple d’application OCLIENT est un exemple de conteneur de liens.

Quand la source d’un élément lié est un élément incorporé dans un autre document, ce document doit être chargé pour que l’élément incorporé soit modifié. Pour cette raison, un conteneur de liens doit être lancé par une autre application conteneur lorsque l’utilisateur souhaite modifier la source d’un élément lié. Votre application doit également utiliser la classe COleTemplateServer pour pouvoir créer des documents lors du lancement par programmation.

Pour créer un conteneur de liens, dérivez votre classe de COleLinkingDoc document au lieu de COleDocument. Comme avec tout autre conteneur OLE, vous devez concevoir votre classe pour stocker les données natives de l’application, ainsi que les éléments incorporés ou liés. En outre, vous devez concevoir des structures de données pour stocker vos données natives. Si vous définissez une CDocItemclasse dérivée pour les données natives de votre application, vous pouvez utiliser l’interface définie par COleDocument pour stocker vos données natives ainsi que vos données OLE.

Pour permettre à votre application d’être lancée par programmation par un autre conteneur, déclarez un COleTemplateServer objet en tant que membre de la classe dérivée de CWinAppvotre application :

class COleContainerApp : public CWinApp
{
protected:
   COleTemplateServer m_server;
   // remainder of class declaration omitted

Dans la InitInstance fonction membre de votre CWinAppclasse dérivée ,créez un modèle de document et spécifiez votre COleLinkingDocclasse dérivée -comme classe de document :

// 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);

Connectez votre COleTemplateServer objet à vos modèles de document en appelant la fonction membre de l’objet ConnectTemplate et inscrivez tous les objets de classe auprès du système OLE en appelant COleTemplateServer::RegisterAll:

m_server.ConnectTemplate(clsid, pDocTemplate, FALSE);
COleTemplateServer::RegisterAll();

Pour obtenir un exemple CWinAppde définition et InitInstance de fonction de classe dérivée, consultez OCLIENT. H et OCLIENT. CPP dans l’exemple OCLIENT MFC.

Pour plus d’informations sur l’utilisation COleLinkingDoc, consultez les articles Conteneurs : Implémentation d’un conteneur et de conteneurs : fonctionnalités avancées.

Hiérarchie d'héritage

CObject

CCmdTarget

CDocument

COleDocument

COleLinkingDoc

Spécifications

En-tête : afxole.h

COleLinkingDoc ::COleLinkingDoc

Construit un COleLinkingDoc objet sans commencer les communications avec les DLL système OLE.

COleLinkingDoc();

Notes

Vous devez appeler la Register fonction membre pour informer OLE que le document est ouvert.

COleLinkingDoc ::OnFindEmbeddedItem

Appelé par l’infrastructure pour déterminer si le document contient un élément OLE incorporé avec le nom spécifié.

virtual COleClientItem* OnFindEmbeddedItem(LPCTSTR lpszItemName);

Paramètres

lpszItemName
Pointeur vers le nom de l’élément OLE incorporé demandé.

Valeur de retour

Pointeur vers l’élément spécifié ; NULL si l’élément est introuvable.

Notes

L’implémentation par défaut recherche la liste des éléments incorporés pour un élément portant le nom spécifié (la comparaison de noms respecte la casse). Remplacez cette fonction si vous avez votre propre méthode de stockage ou de nommage d’éléments OLE incorporés.

COleLinkingDoc ::OnGetLinkedItem

Appelé par l’infrastructure pour vérifier si le document contient un élément de serveur lié portant le nom spécifié.

virtual COleServerItem* OnGetLinkedItem(LPCTSTR lpszItemName);

Paramètres

lpszItemName
Pointeur vers le nom de l’élément OLE lié demandé.

Valeur de retour

Pointeur vers l’élément spécifié ; NULL si l’élément est introuvable.

Notes

L’implémentation par défaut COleLinkingDoc retourne toujours NULL. Cette fonction est remplacée dans la classe COleServerDoc dérivée pour rechercher la liste des éléments serveur OLE pour un élément lié portant le nom spécifié (la comparaison de noms respecte la casse). Remplacez cette fonction si vous avez implémenté votre propre méthode de stockage ou de récupération d’éléments de serveur lié.

COleLinkingDoc ::Register

Informe les DLL système OLE que le document est ouvert.

BOOL Register(
    COleObjectFactory* pFactory,
    LPCTSTR lpszPathName);

Paramètres

pFactory
Pointeur vers un objet ole factory (peut être NULL).

lpszPathName
Pointeur vers le chemin complet du document conteneur.

Valeur de retour

Différent de zéro si le document est correctement enregistré ; sinon 0.

Notes

Appelez cette fonction lors de la création ou de l’ouverture d’un fichier nommé pour inscrire le document auprès des DLL système OLE. Il n’est pas nécessaire d’appeler cette fonction si le document représente un élément incorporé.

Si vous utilisez COleTemplateServer dans votre application, Register est appelé pour vous par COleLinkingDocl’implémentation de OnNewDocument, OnOpenDocumentet OnSaveDocument.

COleLinkingDoc ::Revoke

Informe les DLL système OLE que le document n’est plus ouvert.

void Revoke();

Notes

Appelez cette fonction pour révoquer l’inscription du document avec les DLL système OLE.

Vous devez appeler cette fonction lors de la fermeture d’un fichier nommé, mais vous n’avez généralement pas besoin de l’appeler directement. Revoke est appelé pour vous par COleLinkingDocl’implémentation de OnCloseDocument, , OnNewDocument, OnOpenDocumentet OnSaveDocument.

Voir aussi

Exemple OCLIENT MFC
COleDocument, classe
Graphique hiérarchique
CDocTemplate, classe