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 CDocItem
classe 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 CWinApp
votre application :
class COleContainerApp : public CWinApp
{
protected:
COleTemplateServer m_server;
// remainder of class declaration omitted
Dans la InitInstance
fonction membre de votre CWinApp
classe dérivée ,créez un modèle de document et spécifiez votre COleLinkingDoc
classe 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 CWinApp
de 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
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 COleLinkingDoc
l’implémentation de OnNewDocument
, OnOpenDocument
et 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 COleLinkingDoc
l’implémentation de OnCloseDocument
, , OnNewDocument
, OnOpenDocument
et OnSaveDocument
.
Voir aussi
Exemple OCLIENT MFC
COleDocument, classe
Graphique hiérarchique
CDocTemplate, classe