Partager via


COleDocument, classe

Classe de base des documents OLE qui prennent en charge la modification sur place.

Syntaxe

class COleDocument : public CDocument

Membres

Constructeurs publics

Nom Description
COleDocument ::COleDocument Construit un objet COleDocument.

Méthodes publiques

Nom Description
COleDocument ::AddItem Ajoute un élément à la liste des éléments conservés par le document.
COleDocument ::ApplyPrintDevice Définit l’appareil cible d’impression pour tous les éléments clients du document.
COleDocument ::EnableCompoundFile Provoque le stockage de documents à l’aide du format de fichier OLE Structured Storage.
COleDocument ::GetInPlaceActiveItem Retourne l’élément OLE actuellement actif.
COleDocument ::GetNextClientItem Obtient l’élément client suivant pour itérer.
COleDocument ::GetNextItem Obtient l’élément de document suivant pour itérer.
COleDocument ::GetNextServerItem Obtient l’élément de serveur suivant pour l’itération.
COleDocument ::GetPrimarySelectedItem Retourne l’élément OLE sélectionné principal dans le document.
COleDocument ::GetStartPosition Obtient la position initiale pour commencer l’itération.
COleDocument ::HasBlankItems Recherche les éléments vides dans le document.
COleDocument ::OnShowViews Appelé lorsque le document devient visible ou invisible.
COleDocument ::RemoveItem Supprime un élément de la liste des éléments conservés par le document.
COleDocument ::UpdateModifiedFlag Marque le document comme modifié si l’un des éléments OLE contenus a été modifié.

Méthodes protégées

Nom Description
COleDocument ::OnEditChangeIcon Gère les événements dans la commande de menu Modifier l’icône.
COleDocument ::OnEditConvert Gère la conversion d’un objet incorporé ou lié d’un type à un autre.
COleDocument ::OnEditLinks Gère les événements dans la commande Liens dans le menu Modifier.
COleDocument ::OnFileSendMail Envoie un message électronique avec le document joint.
COleDocument ::OnUpdateEditChangeIcon Appelé par l’infrastructure pour mettre à jour l’interface utilisateur de commande pour l’option de menu Modifier/Modifier l’icône.
COleDocument ::OnUpdateEditLinksMenu Appelé par l’infrastructure pour mettre à jour l’interface utilisateur de commande pour l’option de menu Modifier/Liens.
COleDocument ::OnUpdateObjectVerbMenu Appelé par l’infrastructure pour mettre à jour l’interface utilisateur de commande pour l’option de menu Edit/ ObjectName et le sous-menu Verb accessible à partir de Edit/ ObjectName.
COleDocument ::OnUpdatePasteLinkMenu Appelé par l’infrastructure pour mettre à jour l’interface utilisateur de commande pour l’option de menu Coller spécial.
COleDocument ::OnUpdatePasteMenu Appelé par l’infrastructure pour mettre à jour l’interface utilisateur de commande pour l’option Coller le menu.

Notes

COleDocument est dérivé de CDocument, ce qui permet à vos applications OLE d’utiliser l’architecture de document/vue fournie par la bibliothèque de classes Microsoft Foundation.

COleDocument traite un document comme une collection d’objets CDocItem pour gérer les éléments OLE. Les applications conteneur et serveur nécessitent une telle architecture, car leurs documents doivent être en mesure de contenir des éléments OLE. Les classes COleServerItem et COleClientItem , dérivées de CDocItem, gèrent les interactions entre les applications et les éléments OLE.

Si vous écrivez une application conteneur simple, dérivez votre classe de document à partir de COleDocument. Si vous écrivez une application conteneur qui prend en charge la liaison aux éléments incorporés contenus par ses documents, dérivez votre classe de document de COleLinkingDoc. Si vous écrivez une application serveur ou un conteneur/serveur combiné, dérivez votre classe de document de COleServerDoc. COleLinkingDoc et COleServerDoc sont dérivés de COleDocument, de sorte que ces classes héritent de tous les services disponibles dans COleDocument et CDocument.

Pour utiliser COleDocument, dérivez une classe de celui-ci et ajoutez des fonctionnalités pour gérer les données non OLE de l’application, ainsi que les éléments incorporés ou liés. Si vous définissez CDocItemdes classes dérivées pour stocker les données natives de l’application, vous pouvez utiliser l’implémentation par défaut définie pour COleDocument stocker vos données OLE et non-OLE. Vous pouvez également concevoir vos propres structures de données pour stocker vos données non OLE séparément des éléments OLE. Pour plus d’informations, consultez l’article Conteneurs : Fichiers composés..

CDocument prend en charge l’envoi de votre document par courrier électronique si le support technique (MAPI) est présent. COleDocument a mis à jour OnFileSendMail pour gérer correctement les documents composés. Pour plus d’informations, consultez les articles MAPI et support MAPI dans MFC..

Hiérarchie d'héritage

CObject

CCmdTarget

CDocument

COleDocument

Spécifications

En-tête : afxole.h

COleDocument ::AddItem

Appelez cette fonction pour ajouter un élément au document.

virtual void AddItem(CDocItem* pItem);

Paramètres

pItem
Pointeur vers l’élément de document en cours d’ajout.

Notes

Vous n’avez pas besoin d’appeler cette fonction explicitement lorsqu’elle est appelée par le ou COleServerItem le COleClientItem constructeur qui accepte un pointeur vers un document.

COleDocument ::ApplyPrintDevice

Appelez cette fonction pour modifier l’appareil cible d’impression pour tous les éléments COleClientItem incorporés dans le document conteneur de votre application.

BOOL ApplyPrintDevice(const DVTARGETDEVICE* ptd);
BOOL ApplyPrintDevice(const PRINTDLG* ppd);

Paramètres

Ptd
Pointeur vers une DVTARGETDEVICE structure de données, qui contient des informations sur le nouvel appareil cible d’impression. Sa valeur peut être NULL.

ppd
Pointeur vers une PRINTDLG structure de données, qui contient des informations sur le nouvel appareil cible d’impression. Sa valeur peut être NULL.

Valeur de retour

Différent de zéro si la fonction a réussi ; sinon 0.

Notes

Cette fonction met à jour l’appareil cible d’impression pour tous les éléments, mais n’actualise pas le cache de présentation pour ces éléments. Pour mettre à jour le cache de présentation d’un élément, appelez COleClientItem ::UpdateLink.

Les arguments de cette fonction contiennent des informations que OLE utilise pour identifier l’appareil cible. La structure PRINTDLG contient des informations que Windows utilise pour initialiser la boîte de dialogue Imprimer commune. Une fois que l’utilisateur ferme la boîte de dialogue, Windows retourne des informations sur les sélections de l’utilisateur dans cette structure. Le m_pd membre d’un objet CPrintDialog est une PRINTDLG structure.

Pour plus d’informations, consultez la structure PRINTDLG dans le Kit de développement logiciel (SDK) Windows.

Pour plus d’informations, consultez la structure DVTARGETDEVICE dans le Kit de développement logiciel (SDK) Windows.

COleDocument ::COleDocument

Construit un objet COleDocument.

COleDocument();

COleDocument ::EnableCompoundFile

Appelez cette fonction si vous souhaitez stocker le document au format de fichier composé.

void EnableCompoundFile(BOOL bEnable = TRUE);

Paramètres

bEnable
Spécifie si la prise en charge des fichiers composés est activée ou désactivée.

Notes

Il s’agit également du stockage structuré. Vous appelez généralement cette fonction à partir du constructeur de votre COleDocumentclasse dérivée. Pour plus d’informations sur les documents composés, consultez l’article Conteneurs : Fichiers composés..

Si vous n’appelez pas cette fonction membre, les documents sont stockés dans un format de fichier non structuré (« plat »).

Une fois que la prise en charge des fichiers composés est activée ou désactivée pour un document, le paramètre ne doit pas être modifié pendant la durée de vie du document.

COleDocument ::GetInPlaceActiveItem

Appelez cette fonction pour obtenir l’élément OLE actuellement activé dans la fenêtre frame contenant la vue identifiée par pWnd.

virtual COleClientItem* GetInPlaceActiveItem(CWnd* pWnd);

Paramètres

pWnd
Pointeur vers la fenêtre qui affiche le document conteneur.

Valeur de retour

Pointeur vers l’élément OLE actif unique sur place ; NULL s’il n’existe aucun élément OLE actuellement dans l’état « actif sur place ».

COleDocument ::GetNextClientItem

Appelez cette fonction à plusieurs reprises pour accéder à chacun des éléments clients de votre document.

COleClientItem* GetNextClientItem(POSITION& pos) const;

Paramètres

pos
Référence à une valeur POSITION définie par un appel précédent à GetNextClientItem; la valeur initiale est retournée par la GetStartPosition fonction membre.

Valeur de retour

Pointeur vers l’élément client suivant dans le document, ou NULL s’il n’y a plus d’éléments clients.

Notes

Après chaque appel, la valeur de pos est définie pour l’élément suivant du document, qui peut ou non être un élément client.

Exemple

// pDoc points to a COleDocument object
POSITION pos = pDoc->GetStartPosition();
COleClientItem* pItem;
CString strType;
while ((pItem = pDoc->GetNextClientItem(pos)) != NULL)
{
   // Use pItem
   pItem->GetUserType(USERCLASSTYPE_FULL, strType);
   TRACE(strType);
}

COleDocument ::GetNextItem

Appelez cette fonction à plusieurs reprises pour accéder à chacun des éléments de votre document.

virtual CDocItem* GetNextItem(POSITION& pos) const;

Paramètres

pos
Référence à une valeur POSITION définie par un appel précédent à GetNextItem; la valeur initiale est retournée par la GetStartPosition fonction membre.

Valeur de retour

Pointeur vers l’élément de document à la position spécifiée.

Notes

Après chaque appel, la valeur de pos est définie sur la valeur POSITION de l’élément suivant dans le document. Si l’élément récupéré est le dernier élément du document, la nouvelle valeur de pos est NULL.

Exemple

// pDoc points to a COleDocument object
POSITION pos = pDoc->GetStartPosition();
CDocItem* pItem;
CString strType;
while (pos != NULL)
{
   pItem = pDoc->GetNextItem(pos);
   // Use pItem
   if (pItem->IsKindOf(RUNTIME_CLASS(COleClientItem)))
   {
      ((COleClientItem*)pItem)->GetUserType(USERCLASSTYPE_FULL, strType);
      TRACE(strType);
   }
}

COleDocument ::GetNextServerItem

Appelez cette fonction à plusieurs reprises pour accéder à chacun des éléments serveur de votre document.

COleServerItem* GetNextServerItem(POSITION& pos) const;

Paramètres

pos
Référence à une valeur POSITION définie par un appel précédent à GetNextServerItem; la valeur initiale est retournée par la GetStartPosition fonction membre.

Valeur de retour

Pointeur vers l’élément serveur suivant dans le document, ou NULL s’il n’y a plus d’éléments de serveur.

Notes

Après chaque appel, la valeur de pos est définie pour l’élément suivant du document, qui peut ou non être un élément serveur.

Exemple

// pDoc points to a COleDocument object
POSITION pos = pDoc->GetStartPosition();
COleServerItem* pItem;
while ((pItem = pDoc->GetNextServerItem(pos)) != NULL)
{
   // Use pItem
}

COleDocument ::GetPrimarySelectedItem

Appelé par l’infrastructure pour récupérer l’élément OLE actuellement sélectionné dans la vue spécifiée.

virtual COleClientItem* GetPrimarySelectedItem(CView* pView);

Paramètres

pView
Pointeur vers l’objet d’affichage actif affichant le document.

Valeur de retour

Pointeur vers l’élément OLE unique sélectionné ; NULL si aucun élément OLE n’est sélectionné ou si plusieurs éléments sont sélectionnés.

Notes

L’implémentation par défaut recherche dans la liste des éléments OLE contenus pour un seul élément sélectionné et retourne un pointeur vers celui-ci. S’il n’existe aucun élément sélectionné ou s’il existe plusieurs éléments sélectionnés, la fonction retourne NULL. Vous devez remplacer la CView::IsSelected fonction membre dans votre classe d’affichage pour que cette fonction fonctionne. Remplacez cette fonction si vous avez votre propre méthode de stockage d’éléments OLE contenus.

COleDocument ::GetStartPosition

Appelez cette fonction pour obtenir la position du premier élément du document.

virtual POSITION GetStartPosition() const;

Valeur de retour

Valeur POSITION qui peut être utilisée pour commencer à effectuer une itération dans les éléments du document ; NULL si le document n’a aucun élément.

Notes

Transmettez la valeur retournée à GetNextItem, GetNextClientItemou GetNextServerItem.

COleDocument ::HasBlankItems

Appelez cette fonction pour déterminer si le document contient des éléments vides.

BOOL HasBlankItems() const;

Valeur de retour

Différent de zéro si le document contient des éléments vides ; sinon 0.

Notes

Un élément vide est un élément dont le rectangle est vide.

COleDocument ::OnEditChangeIcon

Affiche la boîte de dialogue Icône de modification OLE et modifie l’icône représentant l’élément OLE actuellement sélectionné sur l’icône sélectionnée par l’utilisateur dans la boîte de dialogue.

afx_msg void OnEditChangeIcon();

Notes

OnEditChangeIcon crée et lance une COleChangeIconDialog boîte de dialogue Icône de modification.

COleDocument ::OnEditConvert

Affiche la boîte de dialogue CONVERSION OLE et convertit ou active l’élément OLE actuellement sélectionné en fonction des sélections utilisateur dans la boîte de dialogue.

afx_msg void OnEditConvert();

Notes

OnEditConvert crée et lance une COleConvertDialog boîte de dialogue Convertir.

Un exemple de conversion consiste à convertir un document Microsoft Word en document WordPad.

Affiche la boîte de dialogue Ole Edit/Links.

afx_msg void OnEditLinks();

Notes

OnEditLinks crée et lance une COleLinksDialog boîte de dialogue Liens qui permet à l’utilisateur de modifier les objets liés.

COleDocument ::OnFileSendMail

Envoie un message via l’hôte de messagerie résident (le cas échéant) avec le document en tant que pièce jointe.

afx_msg void OnFileSendMail();

Notes

OnFileSendMail appels OnSaveDocument à sérialiser (enregistrer) des documents sans titre et modifiés dans un fichier temporaire, qui est ensuite envoyé par courrier électronique. Si le document n’a pas été modifié, un fichier temporaire n’est pas nécessaire ; l’original est envoyé. OnFileSendMail charge MAPI32.DLL s’il n’a pas déjà été chargé.

Contrairement à l’implémentation de OnFileSendMail , CDocumentcette fonction gère correctement les fichiers composés.

Pour plus d’informations, consultez les rubriques MAPI et le support MAPI dans les articles MFC..

COleDocument ::OnShowViews

L’infrastructure appelle cette fonction après la modification de l’état de visibilité du document.

virtual void OnShowViews(BOOL bVisible);

Paramètres

bVisible
Indique si le document est devenu visible ou invisible.

Notes

La version par défaut de cette fonction ne fait rien. Remplacez-la si votre application doit effectuer un traitement spécial lorsque la visibilité du document change.

COleDocument ::OnUpdateEditChangeIcon

Appelé par l’infrastructure pour mettre à jour la commande Modifier l’icône dans le menu Modifier.

afx_msg void OnUpdateEditChangeIcon(CCmdUI* pCmdUI);

Paramètres

pCmdUI
Pointeur vers une CCmdUI structure qui représente le menu qui a généré la commande de mise à jour. Le gestionnaire de mise à jour appelle la Enable fonction membre de la CCmdUI structure via pCmdUI pour mettre à jour l’interface utilisateur.

Notes

OnUpdateEditChangeIcon met à jour l’interface utilisateur de la commande selon qu’il existe ou non une icône valide dans le document. Remplacez cette fonction pour modifier le comportement.

COleDocument ::OnUpdateEditLinksMenu

Appelé par l’infrastructure pour mettre à jour la commande Liens dans le menu Modifier.

afx_msg void OnUpdateEditLinksMenu(CCmdUI* pCmdUI);

Paramètres

pCmdUI
Pointeur vers une CCmdUI structure qui représente le menu qui a généré la commande de mise à jour. Le gestionnaire de mise à jour appelle la Enable fonction membre de la CCmdUI structure via pCmdUI pour mettre à jour l’interface utilisateur.

Notes

À compter du premier élément OLE du document, OnUpdateEditLinksMenu accède à chaque élément, teste si l’élément est un lien et, s’il s’agit d’un lien, active la commande Liens. Remplacez cette fonction pour modifier le comportement.

COleDocument ::OnUpdateObjectVerbMenu

Appelé par l’infrastructure pour mettre à jour la commande ObjectName dans le menu Modifier et le sous-menu Verb accessible à partir de la commande ObjectName, où ObjectName est le nom de l’objet OLE incorporé dans le document.

afx_msg void OnUpdateObjectVerbMenu(CCmdUI* pCmdUI);

Paramètres

pCmdUI
Pointeur vers une CCmdUI structure qui représente le menu qui a généré la commande de mise à jour. Le gestionnaire de mise à jour appelle la Enable fonction membre de la CCmdUI structure via pCmdUI pour mettre à jour l’interface utilisateur.

Notes

OnUpdateObjectVerbMenu met à jour l’interface utilisateur de la commande ObjectName selon qu’il existe ou non un objet valide dans le document. Si un objet existe, la commande ObjectName du menu Modifier est activée. Lorsque cette commande de menu est sélectionnée, le sous-menu Verbe s’affiche. Le sous-menu Verb contient toutes les commandes détaillées disponibles pour l’objet, telles que Edit, Properties, etc. Remplacez cette fonction pour modifier le comportement.

COleDocument ::OnUpdatePasteLinkMenu

Appelé par l’infrastructure pour déterminer si un élément OLE lié peut être collé à partir du Presse-papiers.

afx_msg void OnUpdatePasteLinkMenu(CCmdUI* pCmdUI);

Paramètres

pCmdUI
Pointeur vers une CCmdUI structure qui représente le menu qui a généré la commande de mise à jour. Le gestionnaire de mise à jour appelle la Enable fonction membre de la CCmdUI structure via pCmdUI pour mettre à jour l’interface utilisateur.

Notes

La commande de menu Coller spécial est activée ou désactivée selon que l’élément peut être collé dans le document ou non.

COleDocument ::OnUpdatePasteMenu

Appelé par l’infrastructure pour déterminer si un élément OLE incorporé peut être collé à partir du Presse-papiers.

afx_msg void OnUpdatePasteMenu(CCmdUI* pCmdUI);

Paramètres

pCmdUI
Pointeur vers une CCmdUI structure qui représente le menu qui a généré la commande de mise à jour. Le gestionnaire de mise à jour appelle la Enable fonction membre de la CCmdUI structure via pCmdUI pour mettre à jour l’interface utilisateur.

Notes

La commande coller le menu et le bouton sont activés ou désactivés selon que l’élément peut être collé dans le document ou non.

COleDocument ::RemoveItem

Appelez cette fonction pour supprimer un élément du document.

virtual void RemoveItem(CDocItem* pItem);

Paramètres

pItem
Pointeur vers l’élément de document à supprimer.

Notes

En règle générale, vous n’avez pas besoin d’appeler cette fonction explicitement ; elle est appelée par les destructeurs pour COleClientItem et COleServerItem.

COleDocument ::UpdateModifiedFlag

Appelez cette fonction pour marquer le document comme modifié si l’un des éléments OLE contenus a été modifié.

virtual void UpdateModifiedFlag();

Notes

Cela permet à l’infrastructure d’inviter l’utilisateur à enregistrer le document avant la fermeture, même si les données natives du document n’ont pas été modifiées.

Voir aussi

Exemple DE CONTENEUR MFC
Exemple MFC MFCBIND
CDocument, classe
Graphique hiérarchique