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 CDocItem
des 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
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 COleDocument
classe 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
, GetNextClientItem
ou 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.
COleDocument ::OnEditLinks
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
, CDocument
cette 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