Partager via


COleServerDoc, classe

Classe de base des documents serveur OLE.

Syntaxe

class AFX_NOVTABLE COleServerDoc : public COleLinkingDoc

Membres

Constructeurs publics

Nom Description
COleServerDoc ::COleServerDoc Construit un objet COleServerDoc.

Méthodes publiques

Nom Description
COleServerDoc ::ActivateDocObject Active le document DocObject associé.
COleServerDoc ::ActivateInPlace Active le document pour la modification sur place.
COleServerDoc ::D eactivateAndUndo Désactive l’interface utilisateur du serveur.
COleServerDoc ::D iscardUndoState Ignore les informations d’annulation d’état.
COleServerDoc ::GetClientSite Récupère un pointeur vers l’interface sous-jacente IOleClientSite .
COleServerDoc ::GetEmbeddedItem Retourne un pointeur vers un élément représentant l’intégralité du document.
COleServerDoc ::GetItemClipRect Retourne le rectangle de découpage actuel pour la modification sur place.
COleServerDoc ::GetItemPosition Retourne le rectangle de position actuel, par rapport à la zone cliente de l’application conteneur, pour la modification sur place.
COleServerDoc ::GetZoomFactor Retourne le facteur de zoom en pixels.
COleServerDoc ::IsDocObject Détermine si le document est un DocObject.
COleServerDoc ::IsEmbedded Indique si le document est incorporé dans un document conteneur ou en cours d’exécution autonome.
COleServerDoc ::IsInPlaceActive Retourne TRUE si l’élément est actuellement activé en place.
COleServerDoc ::NotifyChanged Avertit les conteneurs que l’utilisateur a modifié le document.
COleServerDoc ::NotifyClosed Avertit les conteneurs que l’utilisateur a fermé le document.
COleServerDoc ::NotifyRename Avertit les conteneurs que l’utilisateur a renommé le document.
COleServerDoc ::NotifySaved Avertit les conteneurs que l’utilisateur a enregistré le document.
COleServerDoc ::OnDeactivate Appelé par l’infrastructure lorsque l’utilisateur désactive un élément activé en place.
COleServerDoc ::OnDeactivateUI Appelé par l’infrastructure pour détruire les contrôles et d’autres éléments d’interface utilisateur créés pour l’activation sur place.
COleServerDoc ::OnDocWindowActivate Appelé par l’infrastructure lorsque la fenêtre de trame de document du conteneur est activée ou désactivée.
COleServerDoc ::OnResizeBorder Appelé par l’infrastructure lorsque la fenêtre frame ou la fenêtre de document de l’application conteneur est redimensionnée.
COleServerDoc ::OnShowControlBars Appelé par l’infrastructure pour afficher ou masquer les barres de contrôle pour la modification sur place.
COleServerDoc ::OnUpdateDocument Appelé par l’infrastructure lorsqu’un document serveur qui est un élément incorporé est enregistré, mettant à jour la copie du conteneur de l’élément.
COleServerDoc ::RequestPositionChange Modifie la position du cadre d’édition sur place.
COleServerDoc ::SaveEmbedding Indique à l’application conteneur d’enregistrer le document.
COleServerDoc ::ScrollContainerBy Fait défiler le document conteneur.
COleServerDoc ::UpdateAllItems Avertit les conteneurs que l’utilisateur a modifié le document.

Méthodes protégées

Nom Description
COleServerDoc ::CreateInPlaceFrame Appelé par l’infrastructure pour créer une fenêtre frame pour la modification sur place.
COleServerDoc ::D estroyInPlaceFrame Appelé par l’infrastructure pour détruire une fenêtre frame pour la modification sur place.
COleServerDoc ::GetDocObjectServer Remplacez cette fonction pour créer un CDocObjectServer objet et indiquez que ce document est un conteneur DocObject.
COleServerDoc ::OnClose Appelé par l’infrastructure lorsqu’un conteneur demande de fermer le document.
COleServerDoc ::OnExecOleCmd Exécute une commande spécifiée ou affiche de l’aide pour la commande.
COleServerDoc ::OnFrameWindowActivate Appelé par l’infrastructure lorsque la fenêtre frame du conteneur est activée ou désactivée.
COleServerDoc ::OnGetEmbeddedItem Appelé pour obtenir un COleServerItem qui représente l’intégralité du document ; utilisé pour obtenir un élément incorporé. Implémentation requise.
COleServerDoc ::OnReactivateAndUndo Appelé par l’infrastructure pour annuler les modifications apportées lors de la modification sur place.
COleServerDoc ::OnSetHostNames Appelé par l’infrastructure lorsqu’un conteneur définit le titre de la fenêtre pour un objet incorporé.
COleServerDoc ::OnSetItemRects Appelé par l’infrastructure pour positionner la fenêtre de frame d’édition sur place dans la fenêtre de l’application conteneur.
COleServerDoc ::OnShowDocument Appelé par l’infrastructure pour afficher ou masquer le document.

Notes

Un document serveur peut contenir des objets COleServerItem , qui représentent l’interface du serveur à des éléments incorporés ou liés. Lorsqu’une application serveur est lancée par un conteneur pour modifier un élément incorporé, l’élément est chargé en tant que son propre document serveur ; l’objet COleServerDoc contient un seul COleServerItem objet, constitué de l’intégralité du document. Lorsqu’une application serveur est lancée par un conteneur pour modifier un élément lié, un document existant est chargé à partir du disque ; une partie du contenu du document est mise en surbrillance pour indiquer l’élément lié.

COleServerDoc les objets peuvent également contenir des éléments de la classe COleClientItem . Cela vous permet de créer des applications conteneur-serveur. L’infrastructure fournit des fonctions pour stocker correctement les éléments lors de la COleClientItem maintenance des COleServerItem objets.

Si votre application serveur ne prend pas en charge les liens, un document serveur ne contient toujours qu’un seul élément de serveur, qui représente l’ensemble de l’objet incorporé sous forme de document. Si votre application serveur prend en charge les liens, elle doit créer un élément de serveur chaque fois qu’une sélection est copiée dans le Presse-papiers.

Pour utiliser COleServerDoc, dérivez une classe de celui-ci et implémentez la fonction membre OnGetEmbeddedItem , ce qui permet à votre serveur de prendre en charge les éléments incorporés. Dérivez une classe de COleServerItem pour implémenter les éléments de vos documents et renvoyer des objets de cette classe .OnGetEmbeddedItem

Pour prendre en charge les éléments liés, COleServerDoc fournit la fonction membre OnGetLinkedItem . Vous pouvez utiliser l’implémentation par défaut ou la remplacer si vous avez votre propre moyen de gérer les éléments de document.

Vous avez besoin d’une COleServerDocclasse dérivée pour chaque type de document serveur pris en charge par votre application. Par exemple, si votre application serveur prend en charge les feuilles de calcul et les graphiques, vous avez besoin de deux COleServerDocclasses dérivées.

Pour plus d’informations sur les serveurs, consultez l’article Serveurs : Implémentation d’un serveur.

Hiérarchie d'héritage

CObject

CCmdTarget

CDocument

COleDocument

COleLinkingDoc

COleServerDoc

Spécifications

En-tête : afxole.h

COleServerDoc ::ActivateDocObject

Active le document DocObject associé.

void ActivateDocObject();

Notes

Par défaut, COleServerDoc ne prend pas en charge les documents actifs (également appelés DocObjects). Pour activer cette prise en charge, consultez GetDocObjectServer et la classe CDocObjectServer.

COleServerDoc ::ActivateInPlace

Active l’élément pour la modification sur place.

BOOL ActivateInPlace();

Valeur de retour

Différent de zéro s’il réussit ; sinon, 0, ce qui indique que l’élément est entièrement ouvert.

Notes

Cette fonction effectue toutes les opérations nécessaires à l’activation sur place. Il crée une fenêtre frame sur place, l’active et la dimensionne pour l’élément, configure des menus partagés et d’autres contrôles, fait défiler l’élément en mode affichage et définit le focus sur la fenêtre frame sur place.

Cette fonction est appelée par l’implémentation par défaut de COleServerItem ::OnShow. Appelez cette fonction si votre application prend en charge un autre verbe pour l’activation sur place (par exemple, Play).

COleServerDoc ::COleServerDoc

Construit un COleServerDoc objet sans se connecter aux DLL système OLE.

COleServerDoc();

Notes

Vous devez appeler COleLinkingDoc ::Register pour ouvrir des communications avec OLE. Si vous utilisez COleTemplateServer dans votre application, COleLinkingDoc::Register est appelé pour vous par COleLinkingDocl’implémentation de OnNewDocument, OnOpenDocumentet OnSaveDocument.

COleServerDoc ::CreateInPlaceFrame

L’infrastructure appelle cette fonction pour créer une fenêtre frame pour la modification sur place.

virtual COleIPFrameWnd* CreateInPlaceFrame(CWnd* pParentWnd);

Paramètres

pParentWnd
Pointeur vers la fenêtre parente de l’application conteneur.

Valeur de retour

Pointeur vers la fenêtre frame sur place, ou NULL en cas d’échec.

Notes

L’implémentation par défaut utilise des informations spécifiées dans le modèle de document pour créer le cadre. La vue utilisée est la première vue créée pour le document. Cette vue est temporairement détachée du cadre d’origine et attachée au cadre nouvellement créé.

Il s’agit d’un élément substituable avancé.

COleServerDoc ::D eactivateAndUndo

Appelez cette fonction si votre application prend en charge Annuler et que l’utilisateur choisit Annuler après l’activation d’un élément, mais avant de le modifier.

BOOL DeactivateAndUndo();

Valeur de retour

Différent de zéro en cas de réussite ; sinon, 0.

Notes

Si l’application conteneur est écrite à l’aide de la bibliothèque de classes Microsoft Foundation, l’appel de cette fonction entraîne l’appel de COleClientItem ::OnDeactivateAndUndo , ce qui désactive l’interface utilisateur du serveur.

COleServerDoc ::D estroyInPlaceFrame

L’infrastructure appelle cette fonction pour détruire une fenêtre frame sur place et renvoyer la fenêtre de document de l’application serveur à son état avant l’activation sur place.

virtual void DestroyInPlaceFrame(COleIPFrameWnd* pFrameWnd);

Paramètres

pFrameWnd
Pointeur vers la fenêtre frame sur place à détruire.

Notes

Il s’agit d’un élément substituable avancé.

COleServerDoc ::D iscardUndoState

Si l’utilisateur effectue une opération d’édition qui ne peut pas être annulée, appelez cette fonction pour forcer l’application conteneur à ignorer ses informations d’annulation.

BOOL DiscardUndoState();

Valeur de retour

Différent de zéro en cas de réussite ; sinon, 0.

Notes

Cette fonction est fournie afin que les serveurs qui prennent en charge Undo puissent libérer des ressources qui seraient autrement consommées par des informations d’état d’annulation qui ne peuvent pas être utilisées.

COleServerDoc ::GetClientSite

Récupère un pointeur vers l’interface sous-jacente IOleClientSite .

LPOLECLIENTSITE GetClientSite() const;

Valeur de retour

Récupère un pointeur vers l’interface IOleClientSite sous-jacente.

COleServerDoc ::GetDocObjectServer

Remplacez cette fonction pour créer un CDocObjectServer élément et renvoyer un pointeur vers celui-ci.

virtual CDocObjectServer* GetDocObjectServer(LPOLEDOCUMENTSITE pDocSite);

Paramètres

pDocSite
Pointeur vers l’interface IOleDocumentSite qui connectera ce document au serveur.

Valeur de retour

Pointeur vers un CDocObjectServer; NULL si l’opération a échoué.

Notes

Lorsqu’un serveur DocObject est activé, le retour d’un pointeur non NULL indique que le client peut prendre en charge DocObjects. L’implémentation par défaut retourne NULL.

Une implémentation classique pour un document qui prend en charge DocObjects alloue simplement un nouvel CDocObjectServer objet et le retourne à l’appelant. Par exemple :

CDocObjectServer* CMFCOleServerDoc::GetDocObjectServer(LPOLEDOCUMENTSITE pSite)
{
   return new CDocObjectServer(this, pSite);
}

COleServerDoc ::GetEmbeddedItem

Appelez cette fonction pour obtenir un pointeur vers un élément représentant l’intégralité du document.

COleServerItem* GetEmbeddedItem();

Valeur de retour

Pointeur vers un élément représentant l’intégralité du document ; NULL si l’opération a échoué.

Notes

Il appelle COleServerDoc ::OnGetEmbeddedItem, une fonction virtuelle sans implémentation par défaut.

COleServerDoc ::GetItemClipRect

Appelez la GetItemClipRect fonction membre pour obtenir les coordonnées du rectangle de découpage de l’élément en cours de modification.

void GetItemClipRect(LPRECT lpClipRect) const;

Paramètres

lpClipRect
Pointeur vers une RECT structure ou un CRect objet pour recevoir les coordonnées du rectangle de découpage de l’élément.

Notes

Les coordonnées sont en pixels par rapport à la zone cliente de la fenêtre d’application conteneur.

Le dessin ne doit pas se produire en dehors du rectangle de découpage. En règle générale, le dessin est automatiquement restreint. Utilisez cette fonction pour déterminer si l’utilisateur a fait défiler la partie visible du document ; si c’est le cas, faites défiler le document conteneur selon les besoins au moyen d’un appel à ScrollContainerBy.

COleServerDoc ::GetItemPosition

Appelez la GetItemPosition fonction membre pour obtenir les coordonnées de l’élément en cours de modification.

void GetItemPosition(LPRECT lpPosRect) const;

Paramètres

lpPosRect
Pointeur vers une RECT structure ou un CRect objet pour recevoir les coordonnées de l’élément.

Notes

Les coordonnées sont en pixels par rapport à la zone cliente de la fenêtre d’application conteneur.

La position de l’élément peut être comparée au rectangle de découpage actuel pour déterminer la mesure dans laquelle l’élément est visible (ou non visible) à l’écran.

COleServerDoc ::GetZoomFactor

La GetZoomFactor fonction membre détermine le « facteur de zoom » d’un élément qui a été activé pour la modification sur place.

BOOL GetZoomFactor(
    LPSIZE lpSizeNum = NULL,
    LPSIZE lpSizeDenom = NULL,
    LPCRECT lpPosRect = NULL) const;

Paramètres

lpSizeNum
Pointeur vers un objet de classe CSize qui contiendra le numérateur du facteur de zoom. Sa valeur peut être NULL.

lpSizeDenom
Pointeur vers un objet de classe CSize qui contiendra le dénominateur du facteur de zoom. Sa valeur peut être NULL.

lpPosRect
Pointeur vers un objet de classe CRect qui décrit la nouvelle position de l’élément. Si cet argument est NULL, la fonction utilise la position actuelle de l’élément.

Valeur de retour

Différent de zéro si l’élément est activé pour la modification sur place et que son facteur de zoom est différent de 100 % (1:1) ; sinon 0.

Notes

Le facteur de zoom, en pixels, correspond à la proportion de la taille de l’élément dans son étendue actuelle. Si l’application conteneur n’a pas défini l’étendue de l’élément, son étendue naturelle (telle que déterminée par COleServerItem ::OnGetExtent) est utilisée.

La fonction définit ses deux premiers arguments sur le numérateur et le dénominateur du « facteur de zoom » de l’élément. Si l’élément n’est pas modifié en place, la fonction définit ces arguments sur une valeur par défaut de 100 % (ou 1:1) et retourne zéro. Pour plus d’informations, consultez la note technique 40, MFC/OLE en place redimensionnement et zoom.

COleServerDoc ::IsDocObject

Détermine si le document est un DocObject.

BOOL IsDocObject() const;

Valeur de retour

TRUE si le document est un DocObject ; sinon FALSE.

COleServerDoc ::IsEmbedded

Appelez la IsEmbedded fonction membre pour déterminer si le document représente un objet incorporé dans un conteneur.

BOOL IsEmbedded() const;

Valeur de retour

Différent de zéro si l’objet COleServerDoc est un document qui représente un objet incorporé dans un conteneur ; sinon, 0.

Notes

Un document chargé à partir d’un fichier n’est pas incorporé, même s’il peut être manipulé par une application conteneur en tant que lien. Un document incorporé dans un document conteneur est considéré comme incorporé.

COleServerDoc ::IsInPlaceActive

Appelez la IsInPlaceActive fonction membre pour déterminer si l’élément est actuellement dans l’état actif sur place.

BOOL IsInPlaceActive() const;

Valeur de retour

Différent de zéro si l’objet COleServerDoc est actif en place ; sinon 0.

COleServerDoc ::NotifyChanged

Appelez cette fonction pour notifier tous les éléments liés connectés au document que le document a changé.

void NotifyChanged();

Notes

En règle générale, vous appelez cette fonction une fois que l’utilisateur a modifié un attribut global tel que les dimensions du document serveur. Si un élément OLE est lié au document avec un lien automatique, l’élément est mis à jour pour refléter les modifications. Dans les applications conteneur écrites avec la bibliothèque de classes Microsoft Foundation, la fonction membre OnChange est COleClientItem appelée.

Remarque

Cette fonction est incluse pour la compatibilité avec OLE 1. Les nouvelles applications doivent utiliser UpdateAllItems.

COleServerDoc ::NotifyClosed

Appelez cette fonction pour avertir le ou les conteneurs que le document a été fermé.

void NotifyClosed();

Notes

Lorsque l’utilisateur choisit la commande Fermer dans le menu Fichier, NotifyClosed est appelée par COleServerDocl’implémentation de la fonction membre OnCloseDocument . Dans les applications conteneur écrites avec la bibliothèque de classes Microsoft Foundation, la fonction membre OnChange est COleClientItem appelée.

COleServerDoc ::NotifyRename

Appelez cette fonction après que l’utilisateur renomme le document serveur.

void NotifyRename(LPCTSTR lpszNewName);

Paramètres

lpszNewName
Pointeur vers une chaîne spécifiant le nouveau nom du document serveur ; il s’agit généralement d’un chemin complet.

Notes

Lorsque l’utilisateur choisit la commande Enregistrer sous dans le menu Fichier, NotifyRename est appelée par COleServerDocl’implémentation de la fonction membre OnSaveDocument . Cette fonction notifie les DLL système OLE, qui notifient à leur tour les conteneurs. Dans les applications conteneur écrites avec la bibliothèque de classes Microsoft Foundation, la fonction membre OnChange est COleClientItem appelée.

COleServerDoc ::NotifySaved

Appelez cette fonction une fois que l’utilisateur a enregistré le document serveur.

void NotifySaved();

Notes

Lorsque l’utilisateur choisit la commande Enregistrer dans le menu Fichier, NotifySaved il est appelé pour vous par COleServerDocl’implémentation d’OnSaveDocument. Cette fonction notifie les DLL système OLE, qui notifient à leur tour les conteneurs. Dans les applications conteneur écrites avec la bibliothèque de classes Microsoft Foundation, la fonction membre OnChange est COleClientItem appelée.

COleServerDoc ::OnClose

Appelé par l’infrastructure lorsqu’un conteneur demande la fermeture du document serveur.

virtual void OnClose(OLECLOSE dwCloseOption);

Paramètres

dwCloseOption
Valeur de l’énumération OLECLOSE. Ce paramètre peut prendre l'une des valeurs suivantes :

  • OLECLOSE_SAVEIFDIRTY Le fichier est enregistré s’il a été modifié.

  • OLECLOSE_NOSAVE Le fichier est fermé sans être enregistré.

  • OLECLOSE_PROMPTSAVE Si le fichier a été modifié, l’utilisateur est invité à l’enregistrer.

Notes

Appels d’implémentation CDocument::OnCloseDocumentpar défaut .

Pour plus d’informations et des valeurs supplémentaires, consultez OLECLOSE dans le Kit de développement logiciel (SDK) Windows.

COleServerDoc ::OnDeactivate

Appelé par l’infrastructure lorsque l’utilisateur désactive un élément incorporé ou lié actuellement actif.

virtual void OnDeactivate();

Notes

Cette fonction restaure l’interface utilisateur de l’application conteneur à son état d’origine et détruit tous les menus et autres contrôles créés pour l’activation sur place.

Les informations d’annulation de l’état doivent être libérées sans condition à ce stade.

Pour plus d’informations, consultez l’article Activation..

COleServerDoc ::OnDeactivateUI

Appelé lorsque l’utilisateur désactive un élément activé en place.

virtual void OnDeactivateUI(BOOL bUndoable);

Paramètres

bUndoable
Spécifie si les modifications de modification peuvent être annulées.

Notes

Cette fonction restaure l’interface utilisateur de l’application conteneur à son état d’origine, en masquant les menus et autres contrôles créés pour l’activation sur place.

L’infrastructure définit toujours bUndoable sur FALSE. Si le serveur prend en charge l’annulation et qu’une opération peut être annulée, appelez l’implémentation de classe de base avec bUndoable défini sur TRUE.

COleServerDoc ::OnDocWindowActivate

L’infrastructure appelle cette fonction pour activer ou désactiver une fenêtre de document pour la modification sur place.

virtual void OnDocWindowActivate(BOOL bActivate);

Paramètres

bActivate
Spécifie si la fenêtre de document doit être activée ou désactivée.

Notes

L’implémentation par défaut supprime ou ajoute les éléments d’interface utilisateur au niveau de l’image selon les besoins. Remplacez cette fonction si vous souhaitez effectuer des actions supplémentaires lorsque le document contenant votre élément est activé ou désactivé.

Pour plus d’informations, consultez l’article Activation..

COleServerDoc ::OnExecOleCmd

L’infrastructure appelle cette fonction pour exécuter une commande spécifiée ou afficher de l’aide pour la commande.

virtual HRESULT OnExecOleCmd(
    const GUID* pguidCmdGroup,
    DWORD nCmdID,
    DWORD nCmdExecOpt,
    VARIANTARG* pvarargIn,
    VARIANTARG* pvarargOut);

Paramètres

pguidCmdGroup
Pointeur vers un GUID qui identifie un ensemble de commandes. Peut être NULL pour indiquer le groupe de commandes par défaut.

nCmdID
Commande à exécuter. Doit se trouver dans le groupe identifié par pguidCmdGroup.

nCmdExecOut
La façon dont l’objet doit exécuter la commande, une ou plusieurs des valeurs suivantes de l’énumération OLECMDEXECOPT :

OLECMDEXECOPT_DODEFAULT

OLECMDEXECOPT_PROMPTUSER

OLECMDEXECOPT_DONTPROMPTUSER

OLECMDEXECOPT_SHOWHELP

pvarargIn
Pointeur vers un VARIANTARG contenant des arguments d’entrée pour la commande. Sa valeur peut être NULL.

pvarargOut
Pointeur vers un VARIANTARG pour recevoir les valeurs de retour de sortie de la commande. Sa valeur peut être NULL.

Valeur de retour

Retourne S_OK en cas de réussite ; sinon, l’un des codes d’erreur suivants :

Valeur Description
E_UNEXPECTED Une erreur inattendue s’est produite
E_FAIL Une erreur s’est produite
E_NOTIMPL Indique que MFC lui-même doit tenter de traduire et de distribuer la commande
OLECMDERR_E_UNKNOWNGROUP pguidCmdGroup n’est pas NULL, mais ne spécifie pas de groupe de commandes reconnu
OLECMDERR_E_NOTSUPPORTED nCmdID n’est pas reconnu comme une commande valide dans le groupe pguidCmdGroup
OLECMDERR_DISABLED La commande identifiée par nCmdID est désactivée et ne peut pas être exécutée
OLECMDERR_NOHELP L’appelant a demandé de l’aide sur la commande identifiée par nCmdID , mais aucune aide n’est disponible
OLECMDERR_CANCELED L’utilisateur a annulé l’exécution

Notes

COleCmdUI peut être utilisé pour activer, mettre à jour et définir d’autres propriétés des commandes d’interface utilisateur DocObject. Une fois les commandes initialisées, vous pouvez les exécuter avec OnExecOleCmd.

L’infrastructure appelle la fonction avant de tenter de traduire et de distribuer une commande de document OLE. Vous n’avez pas besoin de remplacer cette fonction pour gérer les commandes de document OLE standard, mais vous devez fournir un remplacement à cette fonction si vous souhaitez gérer vos propres commandes personnalisées ou gérer des commandes qui acceptent des paramètres ou retournent des résultats.

La plupart des commandes ne prennent pas d’arguments ou de valeurs de retour. Pour une majorité de commandes, l’appelant peut passer des valeurs NULL pour pvarargIn et pvarargOut. Pour les commandes qui attendent des valeurs d’entrée, l’appelant peut déclarer et initialiser une variable VARIANTARG et passer un pointeur à la variable dans pvarargIn. Pour les commandes qui nécessitent une valeur unique, l’argument peut être stocké directement dans variantARG et transmis à la fonction. Plusieurs arguments doivent être empaquetés dans variantARG à l’aide de l’un des types pris en charge (tels que IDispatch SAFEARRAY).

De même, si une commande retourne des arguments, l’appelant est censé déclarer un VARIANTARG, l’initialiser à VT_EMPTY et passer son adresse dans pvarargOut. Si une commande retourne une valeur unique, l’objet peut stocker cette valeur directement dans pvarargOut. Plusieurs valeurs de sortie doivent être empaquetées d’une manière appropriée pour VARIANTARG.

L’implémentation de classe de base de cette fonction guide les structures OLE_COMMAND_MAP associées à la cible de commande et tente de distribuer la commande à un gestionnaire approprié. L’implémentation de classe de base fonctionne uniquement avec des commandes qui n’acceptent pas d’arguments ou de valeurs de retour. Si vous devez gérer des commandes qui acceptent des arguments ou des valeurs de retour, vous devez remplacer cette fonction et utiliser les paramètres pvarargIn et pvarargOut vous-même.

COleServerDoc ::OnFrameWindowActivate

L’infrastructure appelle cette fonction lorsque la fenêtre frame de l’application conteneur est activée ou désactivée.

virtual void OnFrameWindowActivate(BOOL bActivate);

Paramètres

bActivate
Spécifie si la fenêtre frame doit être activée ou désactivée.

Notes

L’implémentation par défaut annule tous les modes d’aide dans la fenêtre frame. Remplacez cette fonction si vous souhaitez effectuer un traitement spécial lorsque la fenêtre frame est activée ou désactivée.

Pour plus d’informations, consultez l’article Activation..

COleServerDoc ::OnGetEmbeddedItem

Appelé par l’infrastructure lorsqu’une application conteneur appelle l’application serveur pour créer ou modifier un élément incorporé.

virtual COleServerItem* OnGetEmbeddedItem() = 0;

Valeur de retour

Pointeur vers un élément représentant l’intégralité du document ; NULL si l’opération a échoué.

Notes

Il n'y a pas d'implémentation par défaut. Vous devez remplacer cette fonction pour retourner un élément qui représente l’intégralité du document. Cette valeur de retour doit être un objet d’une COleServerItemclasse dérivée de -.

COleServerDoc ::OnReactivateAndUndo

L’infrastructure appelle cette fonction lorsque l’utilisateur choisit d’annuler les modifications apportées à un élément qui a été activé en place, modifié et désactivé par la suite.

virtual BOOL OnReactivateAndUndo();

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Notes

L’implémentation par défaut ne retourne rien à l’exception de la valeur FALSE pour indiquer l’échec.

Remplacez cette fonction si votre application prend en charge l’annulation. En règle générale, vous effectuez l’opération d’annulation, puis activez l’élément en appelant ActivateInPlace. Si l’application conteneur est écrite avec la bibliothèque de classes Microsoft Foundation, l’appel entraîne l’appel COleClientItem::ReactivateAndUndo de cette fonction.

COleServerDoc ::OnResizeBorder

L’infrastructure appelle cette fonction lorsque les fenêtres frame de l’application conteneur changent de taille.

virtual void OnResizeBorder(
    LPCRECT lpRectBorder,
    LPOLEINPLACEUIWINDOW lpUIWindow,
    BOOL bFrame);

Paramètres

lpRectBorder
Pointeur vers une RECT structure ou un CRect objet qui spécifie les coordonnées de la bordure.

lpUIWindow
Pointeur vers un objet de classe IOleInPlaceUIWindow propriétaire de la session d’édition en place actuelle.

bFrame
TRUE si lpUIWindow pointe vers la fenêtre frame de niveau supérieur de l’application conteneur, ou FALSE si lpUIWindow pointe vers la fenêtre frame au niveau du document de l’application conteneur.

Notes

Cette fonction redimensionne et ajuste les barres d’outils et d’autres éléments d’interface utilisateur conformément à la nouvelle taille de fenêtre.

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

Il s’agit d’un élément substituable avancé.

COleServerDoc ::OnSetHostNames

Appelé par l’infrastructure lorsque le conteneur définit ou modifie les noms d’hôte pour ce document.

virtual void OnSetHostNames(
    LPCTSTR lpszHost,
    LPCTSTR lpszHostObj);

Paramètres

lpszHost
Pointeur vers une chaîne qui spécifie le nom de l’application conteneur.

lpszHostObj
Pointeur vers une chaîne qui spécifie le nom du conteneur pour le document.

Notes

L’implémentation par défaut modifie le titre du document pour toutes les vues faisant référence à ce document.

Remplacez cette fonction si votre application définit les titres via un autre mécanisme.

COleServerDoc::OnSetItemRects

L’infrastructure appelle cette fonction pour positionner la fenêtre de trame d’édition sur place dans la fenêtre frame de l’application conteneur.

virtual void OnSetItemRects(
    LPCRECT lpPosRect,
    LPCRECT lpClipRect);

Paramètres

lpPosRect
Pointeur vers une RECT structure ou un CRect objet qui spécifie la position de la fenêtre frame sur place par rapport à la zone cliente de l’application conteneur.

lpClipRect
Pointeur vers une RECT structure ou un CRect objet qui spécifie le rectangle de découpage de la fenêtre frame sur place par rapport à la zone cliente de l’application conteneur.

Notes

Remplacez cette fonction pour mettre à jour le facteur de zoom de la vue, si nécessaire.

Cette fonction est généralement appelée en réponse à un RequestPositionChange appel, bien qu’elle puisse être appelée à tout moment par le conteneur pour demander une modification de position pour l’élément sur place.

COleServerDoc ::OnShowControlBars

L’infrastructure appelle cette fonction pour afficher ou masquer les barres de contrôle de l’application serveur associées à la fenêtre frame identifiée par pFrameWnd.

virtual void OnShowControlBars(
    CFrameWnd* pFrameWnd,
    BOOL bShow);

Paramètres

pFrameWnd
Pointeur vers la fenêtre frame dont les barres de contrôle doivent être masquées ou affichées.

bShow
Détermine si les barres de contrôle sont affichées ou masquées.

Notes

L’implémentation par défaut énumère toutes les barres de contrôle appartenant à cette fenêtre frame et les masque ou les affiche.

COleServerDoc ::OnShowDocument

L’infrastructure appelle la OnShowDocument fonction lorsque le document serveur doit être masqué ou affiché.

virtual void OnShowDocument(BOOL bShow);

Paramètres

bShow
Spécifie si l’interface utilisateur du document doit être affichée ou masquée.

Notes

Si bShow a la valeur TRUE, l’implémentation par défaut active l’application serveur, si nécessaire, et provoque le défilement de la fenêtre de l’application conteneur afin que l’élément soit visible. Si bShow a la valeur FALSE, l’implémentation par défaut désactive l’élément par le biais d’un appel à OnDeactivate, détruit ou masque toutes les fenêtres frame qui ont été créées pour le document, à l’exception du premier. Si aucun document visible n’est conservé, l’implémentation par défaut masque l’application serveur.

COleServerDoc ::OnUpdateDocument

Appelé par l’infrastructure lors de l’enregistrement d’un document incorporé dans un document composé.

virtual BOOL OnUpdateDocument();

Valeur de retour

Différent de zéro si le document a été correctement mis à jour ; sinon 0.

Notes

L’implémentation par défaut appelle les fonctions membres COleServerDoc ::NotifySaved et COleServerDoc ::SaveEmbedding , puis marque le document comme propre. Remplacez cette fonction si vous souhaitez effectuer un traitement spécial lors de la mise à jour d’un élément incorporé.

COleServerDoc ::RequestPositionChange

Appelez cette fonction membre pour que l’application conteneur modifie la position de l’élément.

void RequestPositionChange(LPCRECT lpPosRect);

Paramètres

lpPosRect
Pointeur vers une RECT structure ou un CRect objet contenant la nouvelle position de l’élément.

Notes

Cette fonction est généralement appelée (conjointement avec UpdateAllItems) lorsque les données d’un élément actif sur place ont changé. Après cet appel, le conteneur peut ou ne pas effectuer la modification en appelant OnSetItemRects. La position résultante peut être différente de celle demandée.

COleServerDoc ::SaveEmbedding

Appelez cette fonction pour indiquer à l’application conteneur d’enregistrer l’objet incorporé.

void SaveEmbedding();

Notes

Cette fonction est appelée automatiquement à partir de OnUpdateDocument. Notez que cette fonction entraîne la mise à jour de l’élément sur le disque. Elle est donc généralement appelée uniquement à la suite d’une action utilisateur spécifique.

COleServerDoc ::ScrollContainerBy

Appelez la ScrollContainerBy fonction membre pour faire défiler le document conteneur par la quantité, en pixels, indiquée par sizeScroll.

BOOL ScrollContainerBy(CSize sizeScroll);

Paramètres

sizeScroll
Indique la distance jusqu’à laquelle le document conteneur doit faire défiler.

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Notes

Les valeurs positives indiquent le défilement vers le bas et vers la droite ; les valeurs négatives indiquent le défilement vers le haut et vers la gauche.

COleServerDoc ::UpdateAllItems

Appelez cette fonction pour notifier tous les éléments liés connectés au document que le document a changé.

void UpdateAllItems(
    COleServerItem* pSender,
    LPARAM lHint = 0L,
    CObject* pHint = NULL,
    DVASPECT nDrawAspect = DVASPECT_CONTENT);

Paramètres

pSender
Pointeur vers l’élément qui a modifié le document ou NULL si tous les éléments doivent être mis à jour.

lHint
Contient des informations sur la modification.

pHint
Pointeur vers un objet stockant des informations sur la modification.

nDrawAspect
Détermine la façon dont l’élément doit être dessiné. Il s’agit d’une valeur de l’énumération DVASPECT. Ce paramètre peut prendre l'une des valeurs suivantes :

  • DVASPECT_CONTENT Élément est représenté de telle sorte qu’il puisse être affiché en tant qu’objet incorporé à l’intérieur de son conteneur.

  • DVASPECT_THUMBNAIL Élément est rendu dans une représentation « miniature » afin qu’il puisse être affiché dans un outil de navigation.

  • DVASPECT_ICON Élément est représenté par une icône.

  • DVASPECT_DOCPRINT Élément est représenté comme s’il était imprimé à l’aide de la commande Imprimer dans le menu Fichier.

Notes

Vous appelez généralement cette fonction une fois que l’utilisateur a modifié le document du serveur. Si un élément OLE est lié au document avec un lien automatique, l’élément est mis à jour pour refléter les modifications. Dans les applications conteneur écrites avec la bibliothèque de classes Microsoft Foundation, la fonction membre OnChange est COleClientItem appelée.

Cette fonction appelle la OnUpdate fonction membre pour chacun des éléments du document, à l’exception de l’élément d’envoi, en passant pHint, lHint et nDrawAspect. Utilisez ces paramètres pour transmettre des informations aux éléments relatifs aux modifications apportées au document. Vous pouvez encoder des informations à l’aide de lHint ou définir une CObjectclasse dérivée pour stocker des informations sur les modifications et transmettre un objet de cette classe à l’aide de pHint. Remplacez la OnUpdate fonction membre dans votre COleServerItemclasse dérivée pour optimiser la mise à jour de chaque élément selon que sa présentation a changé.

Voir aussi

Exemple MFC HIERSVR
COleLinkingDoc, classe
Graphique hiérarchique
COleDocument, classe
COleLinkingDoc, classe
COleTemplateServer, classe