Share via


COleServerItem, classe

Fournit l'interface serveur aux éléments OLE.

Syntaxe

class COleServerItem : public CDocItem

Membres

Constructeurs protégés

Nom Description
COleServerItem ::COleServerItem Construit un objet COleServerItem.

Méthodes publiques

Nom Description
COleServerItem ::AddOtherClipboardData Place les formats de présentation et de conversion dans un COleDataSource objet.
COleServerItem ::CopyToClipboard Copie l’élément dans le Presse-papiers.
COleServerItem ::D oDragDrop Effectue une opération de glisser-déplacer.
COleServerItem ::GetClipboardData Obtient la source de données à utiliser dans le transfert de données (glisser-déplacer ou Presse-papiers).
COleServerItem ::GetDocument Retourne le document serveur qui contient l’élément.
COleServerItem ::GetEmbedSourceData Obtient les données CF_EMo EDSOURCE d’un élément OLE.
COleServerItem ::GetItemName Renvoie le nom de l’élément. Utilisé uniquement pour les éléments liés.
COleServerItem ::GetLinkSourceData Obtient les données CF_LINKSOURCE d’un élément OLE.
COleServerItem ::GetObjectDescriptorData Obtient les données CF_OBJECTDESCRIPTOR pour un élément OLE.
COleServerItem ::Is Connecter ed Indique si l’élément est actuellement attaché à un conteneur actif.
COleServerItem ::IsLinkedItem Indique si l’élément représente un élément OLE lié.
COleServerItem ::NotifyChanged Mises à jour tous les conteneurs avec mise à jour automatique des liens.
COleServerItem ::OnDoVerb Appelé pour exécuter un verbe.
COleServerItem ::OnDraw Appelé lorsque le conteneur demande à dessiner l’élément ; implémentation requise.
COleServerItem ::OnDrawEx Appelé pour le dessin d’élément spécialisé.
COleServerItem ::OnGetClipboardData Appelé par l’infrastructure pour obtenir les données qui seraient copiées dans le Presse-papiers.
COleServerItem ::OnGetExtent Appelé par l’infrastructure pour récupérer la taille de l’élément OLE.
COleServerItem ::OnInitFromData Appelé par l’infrastructure pour initialiser un élément OLE à l’aide du contenu de l’objet de transfert de données spécifié.
COleServerItem ::OnQueryUpdateItems Appelé pour déterminer si des éléments liés nécessitent une mise à jour.
COleServerItem ::OnRenderData Récupère les données dans le cadre du rendu différé.
COleServerItem ::OnRenderFileData Récupère des données dans un CFile objet dans le cadre du rendu différé.
COleServerItem ::OnRenderGlobalData Récupère des données dans un HGLOBAL dans le cadre du rendu différé.
COleServerItem ::OnSetColorScheme Appelé pour définir le jeu de couleurs de l’élément.
COleServerItem ::OnSetData Appelé pour définir les données de l’élément.
COleServerItem ::OnSetExtent Appelé par l’infrastructure pour définir la taille de l’élément OLE.
COleServerItem ::OnUpdate Appelé quand une partie du document auquel appartient l’élément est modifiée.
COleServerItem ::OnUpdateItems Appelé pour mettre à jour le cache de présentation de tous les éléments du document serveur.
COleServerItem ::SetItemName Définit le nom de l’élément. Utilisé uniquement pour les éléments liés.

Méthodes protégées

Nom Description
COleServerItem ::GetDataSource Obtient l’objet utilisé pour stocker les formats de conversion.
COleServerItem ::OnHide Appelé par l’infrastructure pour masquer l’élément OLE.
COleServerItem ::OnOpen Appelé par l’infrastructure pour afficher l’élément OLE dans sa propre fenêtre de niveau supérieur.
COleServerItem ::OnShow Appelé lorsque le conteneur demande d’afficher l’élément.

Membres de données publics

Nom Description
COleServerItem ::m_sizeExtent Informe le serveur de la quantité d’élément OLE visible.

Notes

Un élément lié peut représenter une partie ou l’ensemble d’un document serveur. Un élément incorporé représente toujours un document serveur entier.

La COleServerItem classe définit plusieurs fonctions membres substituables appelées par les bibliothèques de liens dynamiques (DLL) du système OLE, généralement en réponse aux requêtes de l’application conteneur. Ces fonctions membres permettent à l’application conteneur de manipuler l’élément indirectement de différentes façons, par exemple en l’affichant, en exécutant ses verbes ou en récupérant ses données dans différents formats.

Pour utiliser COleServerItem, dérivez une classe de celle-ci et implémentez les fonctions membres OnDraw et Serialize . La OnDraw fonction fournit la représentation de métafichier d’un élément, ce qui lui permet d’être affichée lorsqu’une application conteneur ouvre un document composé. La Serialize fonction de CObject fournit la représentation native d’un élément, ce qui permet à un élément incorporé d’être transféré entre les applications serveur et conteneur. OnGetExtent fournit la taille naturelle de l’élément au conteneur, ce qui permet au conteneur de dimensionner l’élément.

Pour plus d’informations sur les serveurs et les rubriques connexes, consultez l’article Serveurs : Implémentation d’un serveur et « Création d’une application conteneur/serveur » dans l’article Conteneurs : Fonctionnalités avancées.

Hiérarchie d'héritage

CObject

CCmdTarget

CDocItem

COleServerItem

Spécifications

En-tête : afxole.h

COleServerItem ::AddOtherClipboardData

Appelez cette fonction pour placer les formats de présentation et de conversion de l’élément OLE dans l’objet spécifié COleDataSource .

void AddOtherClipboardData(COleDataSource* pDataSource);

Paramètres

pDataSource
Pointeur vers l’objet COleDataSource dans lequel les données doivent être placées.

Notes

Vous devez avoir implémenté la fonction membre OnDraw pour fournir le format de présentation (image de métafichier) de l’élément. Pour prendre en charge d’autres formats de conversion, inscrivez-les à l’aide de l’objet COleDataSource retourné par GetDataSource et remplacez la fonction membre OnRenderData pour fournir des données dans les formats que vous souhaitez prendre en charge.

COleServerItem ::COleServerItem

Construit un COleServerItem objet et l’ajoute à la collection d’éléments de document du serveur.

COleServerItem(
    COleServerDoc* pServerDoc,
    BOOL bAutoDelete);

Paramètres

pServerDoc
Pointeur vers le document qui contiendra le nouvel élément.

bAutoDelete
Indicateur indiquant si l’objet peut être supprimé lorsqu’un lien vers celui-ci est libéré. Définissez cette valeur sur FALSE si l’objet COleServerItem fait partie intégrante des données de votre document que vous devez supprimer. Définissez cette valeur sur TRUE si l’objet est une structure secondaire utilisée pour identifier une plage dans les données de votre document qui peuvent être supprimées par l’infrastructure.

COleServerItem ::CopyToClipboard

Appelez cette fonction pour copier l’élément OLE dans le Presse-papiers.

void CopyToClipboard(BOOL bIncludeLink = FALSE);

Paramètres

bIncludeLink
Définissez cette valeur sur TRUE si les données de liaison doivent être copiées dans le Presse-papiers. Définissez cette valeur sur FALSE si votre application serveur ne prend pas en charge les liens.

Notes

La fonction utilise la fonction membre OnGetClipboardData pour créer un objet COleDataSource contenant les données de l’élément OLE dans les formats pris en charge. La fonction place ensuite l’objet COleDataSource dans le Presse-papiers à l’aide de la fonction COleDataSource ::SetClipboard . L’objet COleDataSource inclut les données natives de l’élément et sa représentation au format CF_METAFILEPICT, ainsi que les données dans tous les formats de conversion que vous choisissez de prendre en charge. Vous devez avoir implémenté Serialize et OnDraw pour que cette fonction membre fonctionne.

COleServerItem ::D oDragDrop

Appelez la DoDragDrop fonction membre pour effectuer une opération de glisser-déplacer.

DROPEFFECT DoDragDrop(
    LPCRECT lpRectItem,
    CPoint ptOffset,
    BOOL bIncludeLink = FALSE,
    DWORD dwEffects = DROPEFFECT_COPY | DROPEFFECT_MOVE,
    LPCRECT lpRectStartDrag = NULL);

Paramètres

lpRectItem
Rectangle de l’élément à l’écran, en pixels, par rapport à la zone cliente.

ptOffset
Décalage de lpItemRect où la position de la souris était au moment du glissement.

bIncludeLink
Définissez cette valeur sur TRUE si les données de liaison doivent être copiées dans le Presse-papiers. Définissez-le sur FALSE si votre application ne prend pas en charge les liens.

dwEffects
Détermine les effets que la source de glisser autorise dans l’opération de glissement (combinaison de Copier, Déplacer et Lier).

lpRectStartDrag
Pointeur vers le rectangle qui définit l’emplacement où le glisser démarre réellement. Pour plus d'informations, consultez la section Notes qui suit.

Valeur de retour

Valeur de l’énumération DROPEFFECT. S’il s’agit de DROPEFFECT_MOVE, les données d’origine doivent être supprimées.

Notes

L’opération glisser-déplacer ne démarre pas immédiatement. Il attend que le curseur de la souris quitte le rectangle spécifié par lpRectStartDrag ou jusqu’à ce qu’un nombre spécifié de millisecondes soit passé. Si lpRectStartDrag a la valeur NULL, un rectangle par défaut est utilisé afin que le glisser démarre lorsque le curseur de la souris déplace un pixel.

Le délai est spécifié par un paramètre de clé de Registre. Vous pouvez modifier le délai en appelant CWinApp ::WriteProfileString ou CWinApp ::WriteProfileInt. Si vous ne spécifiez pas le délai, une valeur par défaut de 200 millisecondes est utilisée. Le délai de glissement est stocké comme suit :

  • Le délai de glissement Windows NT est stocké dans HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\NT\CurrentVersion\IniFileMapping\win.ini\Windows\DragDelay.

  • Le délai de glissement Windows 3.x est stocké dans win. Fichier INI, sous la section [Windows}.

  • Le délai de glissement windows 95/98 est stocké dans une version mise en cache de WIN. INI.

Pour plus d’informations sur la façon dont les informations de retard de glissement sont stockées dans le Registre ou dans le . Fichier INI, consultez WriteProfileString dans le Kit de développement logiciel (SDK) Windows.

COleServerItem ::GetClipboardData

Appelez cette fonction pour remplir l’objet COleDataSource spécifié avec toutes les données qui seraient copiées dans le Presse-papiers si vous avez appelé CopyToClipboard (les mêmes données seraient également transférées si vous avez appelé DoDragDrop).

void GetClipboardData(
    COleDataSource* pDataSource,
    BOOL bIncludeLink = FALSE,
    LPPOINT lpOffset = NULL,
    LPSIZE lpSize = NULL);

Paramètres

pDataSource
Pointeur vers l’objet COleDataSource qui recevra les données de l’élément OLE dans tous les formats pris en charge.

bIncludeLink
TRUE si les données de liaison doivent être copiées dans le Presse-papiers. FALSE si votre application serveur ne prend pas en charge les liens.

lpOffset
Décalage, en pixels, du curseur de la souris de l’origine de l’objet.

lpSize
Taille de l’objet en pixels.

Notes

Cette fonction appelle la fonction membre GetEmbedSourceData pour obtenir les données natives de l’élément OLE et appelle la fonction membre AddOtherClipboardData pour obtenir le format de présentation et tous les formats de conversion pris en charge. Si bIncludeLink a la valeur TRUE, la fonction appelle également GetLinkSourceData pour obtenir les données de liaison de l’élément.

Remplacez cette fonction si vous souhaitez placer des formats dans un COleDataSource objet avant ou après ces formats fournis par CopyToClipboard.

COleServerItem ::GetDataSource

Appelez cette fonction pour obtenir l’objet COleDataSource utilisé pour stocker les formats de conversion pris en charge par l’application serveur.

COleDataSource* GetDataSource();

Valeur de retour

Pointeur vers l’objet COleDataSource utilisé pour stocker les formats de conversion.

Notes

Si vous souhaitez que votre application serveur propose des données dans différents formats pendant les opérations de transfert de données, inscrivez ces formats auprès de l’objet COleDataSource retourné par cette fonction. Par exemple, si vous souhaitez fournir une représentation CF_TEXT de l’élément OLE pour les opérations presse-papiers ou glisser-déplacer, vous devez inscrire le format avec l’objet COleDataSource retourné par cette fonction, puis remplacer la OnRenderXxxData fonction membre pour fournir les données.

COleServerItem ::GetDocument

Appelez cette fonction pour obtenir un pointeur vers le document qui contient l’élément.

COleServerDoc* GetDocument() const;

Valeur de retour

Pointeur vers le document qui contient l’élément ; NULL si l’élément ne fait pas partie d’un document.

Notes

Cela permet d’accéder au document serveur que vous avez passé en tant qu’argument au COleServerItem constructeur.

COleServerItem ::GetEmbedSourceData

Appelez cette fonction pour obtenir les données CF_EMo EDSOURCE d’un élément OLE.

void GetEmbedSourceData(LPSTGMEDIUM lpStgMedium);

Paramètres

lpStgMedium
Pointeur vers la structure STGMEDIUM qui recevra les données CF_EMo EDSOURCE pour l’élément OLE.

Notes

Ce format inclut les données natives de l’élément. Vous devez avoir implémenté la Serialize fonction membre pour que cette fonction fonctionne correctement.

Le résultat peut ensuite être ajouté à une source de données à l’aide de COleDataSource ::CacheData. Cette fonction est appelée automatiquement par COleServerItem ::OnGetClipboardData.

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

COleServerItem ::GetItemName

Appelez cette fonction pour obtenir le nom de l’élément.

const CString& GetItemName() const;

Valeur de retour

Nom de l'élément.

Notes

En règle générale, vous appelez cette fonction uniquement pour les éléments liés.

COleServerItem ::GetLinkSourceData

Appelez cette fonction pour obtenir les données CF_LINKSOURCE d’un élément OLE.

BOOL GetLinkSourceData(LPSTGMEDIUM lpStgMedium);

Paramètres

lpStgMedium
Pointeur vers la structure STGMEDIUM qui recevra les données CF_LINKSOURCE de l’élément OLE.

Valeur de retour

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

Notes

Ce format inclut le CLSID décrivant le type de l’élément OLE et les informations nécessaires pour localiser le document contenant l’élément OLE.

Le résultat peut ensuite être ajouté à une source de données avec COleDataSource ::CacheData. Cette fonction est appelée automatiquement par OnGetClipboardData.

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

COleServerItem ::GetObjectDescriptorData

Appelez cette fonction pour obtenir les données CF_OBJECTDESCRIPTOR d’un élément OLE.

void GetObjectDescriptorData(
    LPPOINT lpOffset,
    LPSIZE lpSize,
    LPSTGMEDIUM lpStgMedium);

Paramètres

lpOffset
Décalage du clic de souris à partir du coin supérieur gauche de l’élément OLE. Sa valeur peut être NULL.

lpSize
Taille de l’élément OLE. Sa valeur peut être NULL.

lpStgMedium
Pointeur vers la structure STGMEDIUM qui recevra les données CF_OBJECTDESCRIPTOR de l’élément OLE.

Notes

Les informations sont copiées dans la STGMEDIUM structure pointée par lpStgMedium. Ce format inclut les informations nécessaires à la boîte de dialogue Coller spécial.

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

COleServerItem ::Is Connecter ed

Appelez cette fonction pour voir si l’élément OLE est connecté.

BOOL IsConnected() const;

Valeur de retour

Différent de zéro si l’élément est connecté ; sinon 0.

Notes

Un élément OLE est considéré comme connecté si un ou plusieurs conteneurs ont des références à l’élément. Un élément est connecté si son nombre de références est supérieur à 0 ou s’il s’agit d’un élément incorporé.

COleServerItem ::IsLinkedItem

Appelez cette fonction pour voir si l’élément OLE est un élément lié.

BOOL IsLinkedItem() const;

Valeur de retour

Différent de zéro si l’élément est un élément lié ; sinon 0.

Notes

Un élément est lié si l’élément est valide et n’est pas retourné dans la liste des éléments incorporés du document. Un élément lié peut ou non être connecté à un conteneur.

Il est courant d’utiliser la même classe pour les éléments liés et incorporés. IsLinkedItem vous permet de faire en sorte que les éléments liés se comportent différemment des éléments incorporés, bien que plusieurs fois le code soit courant.

COleServerItem ::m_sizeExtent

Ce membre indique au serveur combien de l’objet est visible dans le document conteneur.

CSize m_sizeExtent;

Notes

L’implémentation par défaut d’OnSetExtent définit ce membre.

COleServerItem ::NotifyChanged

Appelez cette fonction une fois que l’élément lié a été modifié.

void NotifyChanged(DVASPECT nDrawAspect = DVASPECT_CONTENT);

Paramètres

nDrawAspect
Valeur de l’énumération DVASPECT qui indique quel aspect de l’élément OLE a changé. Ce paramètre peut avoir 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_THUMo NAIL Item 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

Si un élément de conteneur est lié au document avec un lien automatique, l’élément est mis à jour pour refléter les modifications. Dans les applications conteneur écrites à l’aide de la bibliothèque de classes Microsoft Foundation, COleClientItem ::OnChange est appelé en réponse.

COleServerItem ::OnDoVerb

Appelé par l’infrastructure pour exécuter le verbe spécifié.

virtual void OnDoVerb(LONG iVerb);

Paramètres

iVerb
Spécifie le verbe à exécuter. Il peut s’agir de l’une des options suivantes :

Value Signification Symbole
0 Primary (verbe) OLEIVERB_PRIMARY
1 Verbe secondaire (aucune)
- 1 Afficher l’élément pour la modification OLEIVERB_SHOW
-2 Modifier l’élément dans une fenêtre distincte OLEIVERB_OPEN
-3 Masquer l’élément OLEIVERB_HIDE

La valeur -1 est généralement un alias pour un autre verbe. Si l’édition ouverte n’est pas prise en charge, -2 a le même effet que -1. Pour obtenir des valeurs supplémentaires, consultez IOleObject ::D oVerb dans le Kit de développement logiciel (SDK) Windows.

Notes

Si l’application conteneur a été écrite avec la bibliothèque de classes Microsoft Foundation, cette fonction est appelée lorsque la fonction membre COleClientItem ::Activate de l’objet correspondant COleClientItem est appelée. L’implémentation par défaut appelle la fonction membre OnShow si le verbe principal ou OLEIVERB_SHOW est spécifié, OnOpen si le verbe secondaire ou OLEIVERB_OPEN est spécifié et OnHide si OLEIVERB_HIDE est spécifié. L’implémentation par défaut appelle OnShow si iVerb n’est pas l’un des verbes répertoriés ci-dessus.

Remplacez cette fonction si votre verbe principal n’affiche pas l’élément. Par exemple, si l’élément est un enregistrement sonore et que son verbe principal est Play, vous n’avez pas besoin d’afficher l’application serveur pour lire l’élément.

Pour plus d’informations, consultez IOleObject ::D oVerb dans le Kit de développement logiciel (SDK) Windows.

COleServerItem ::OnDraw

Appelé par l’infrastructure pour afficher l’élément OLE dans un métafichier.

virtual BOOL OnDraw(
    CDC* pDC,
    CSize& rSize) = 0;

Paramètres

pDC
Pointeur vers l’objet CDC sur lequel dessiner l’élément. Le contexte d’affichage est automatiquement connecté au contexte d’affichage d’attribut afin de pouvoir appeler les fonctions d’attribut, bien que cela rende le métafichier spécifique à l’appareil.

rSize
Taille, en unités HIMETRIC, dans lesquelles dessiner le métafichier.

Valeur de retour

Différent de zéro si l’élément a été dessiné avec succès ; sinon 0.

Notes

La représentation de métafichier de l’élément OLE est utilisée pour afficher l’élément dans l’application conteneur. Si l’application conteneur a été écrite avec la bibliothèque de classes Microsoft Foundation, le métafichier est utilisé par la fonction membre Draw de l’objet COleClientItem correspondant. Il n'y a pas d'implémentation par défaut. Vous devez remplacer cette fonction pour dessiner l’élément dans le contexte de l’appareil spécifié.

COleServerItem ::OnDrawEx

Appelé par l’infrastructure pour tous les dessins.

virtual BOOL OnDrawEx(
    CDC* pDC,
    DVASPECT nDrawAspect,
    CSize& rSize);

Paramètres

pDC
Pointeur vers l’objet CDC sur lequel dessiner l’élément. Le contrôleur de domaine est automatiquement connecté au contrôleur de domaine d’attribut afin que vous puissiez appeler des fonctions d’attribut, bien que cela rende le métafichier spécifique à l’appareil.

nDrawAspect
Valeur de l’énumération DVASPECT. Ce paramètre peut avoir 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_THUMo NAIL Item 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.

rSize
Taille de l’élément dans les unités HIMETRIC.

Valeur de retour

Différent de zéro si l’élément a été dessiné avec succès ; sinon 0.

Notes

L’implémentation par défaut appelle OnDraw quand DVASPECT est égal à DVASPECT_CONTENT ; sinon, elle échoue.

Remplacez cette fonction pour fournir des données de présentation pour des aspects autres que DVASPECT_CONTENT, tels que DVASPECT_ICON ou DVASPECT_THUMo NAIL.

COleServerItem ::OnGetClipboardData

Appelé par l’infrastructure pour obtenir un COleDataSource objet contenant toutes les données qui seraient placées dans le Presse-papiers par un appel à la fonction membre CopyToClipboard .

virtual COleDataSource* OnGetClipboardData(
    BOOL bIncludeLink,
    LPPOINT lpOffset,
    LPSIZE lpSize);

Paramètres

bIncludeLink
Définissez cette valeur sur TRUE si les données de liaison doivent être copiées dans le Presse-papiers. Définissez cette valeur sur FALSE si votre application serveur ne prend pas en charge les liens.

lpOffset
Décalage du curseur de la souris de l’origine de l’objet en pixels.

lpSize
Taille de l’objet en pixels.

Valeur de retour

Pointeur vers un objet COleDataSource contenant les données du Presse-papiers.

Notes

L’implémentation par défaut de cette fonction appelle GetClipboardData.

COleServerItem::OnGetExtent

Appelé par l’infrastructure pour récupérer la taille, en unités HIMETRIC, de l’élément OLE.

virtual BOOL OnGetExtent(
    DVASPECT nDrawAspect,
    CSize& rSize);

Paramètres

nDrawAspect
Spécifie l’aspect de l’élément OLE dont les limites doivent être récupérées. Ce paramètre peut avoir 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_THUMo NAIL Item 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.

rSize
Référence à un CSize objet qui recevra la taille de l’élément OLE.

Valeur de retour

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

Notes

Si l’application conteneur a été écrite avec la bibliothèque de classes Microsoft Foundation, cette fonction est appelée lorsque la fonction membre GetExtent de l’objet correspondant COleClientItem est appelée. L'implémentation par défaut n'exécute aucune opération. Vous devez l’implémenter vous-même. Remplacez cette fonction si vous souhaitez effectuer un traitement spécial lors de la gestion d’une demande pour la taille de l’élément OLE.

COleServerItem ::OnHide

Appelé par l’infrastructure pour masquer l’élément OLE.

virtual void OnHide();

Notes

Appels par défaut COleServerDoc::OnShowDocument( FALSE ). La fonction informe également le conteneur que l’élément OLE a été masqué. Remplacez cette fonction si vous souhaitez effectuer un traitement spécial lors du masquage d’un élément OLE.

COleServerItem ::OnInitFromData

Appelé par l’infrastructure pour initialiser un élément OLE à l’aide du contenu de pDataObject.

virtual BOOL OnInitFromData(
    COleDataObject* pDataObject,
    BOOL bCreation);

Paramètres

pDataObject
Pointeur vers un objet de données OLE contenant des données dans différents formats pour initialiser l’élément OLE.

bCreation
TRUE si la fonction est appelée pour initialiser un élément OLE nouvellement créé par une application conteneur. FALSE si la fonction est appelée pour remplacer le contenu d’un élément OLE déjà existant.

Valeur de retour

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

Notes

Si bCreation a la valeur TRUE, cette fonction est appelée si un conteneur implémente Insert New Object en fonction de la sélection actuelle. Les données sélectionnées sont utilisées lors de la création de l’élément OLE. Par exemple, lors de la sélection d’une plage de cellules dans un programme de feuille de calcul, puis à l’aide de l’objet Insérer un nouvel objet pour créer un graphique en fonction des valeurs de la plage sélectionnée. L'implémentation par défaut n'exécute aucune opération. Remplacez cette fonction pour choisir un format acceptable parmi ceux proposés par pDataObject et initialisez l’élément OLE en fonction des données fournies. Il s’agit d’un élément substituable avancé.

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

COleServerItem ::OnOpen

Appelé par l’infrastructure pour afficher l’élément OLE dans une instance distincte de l’application serveur, plutôt que sur place.

virtual void OnOpen();

Notes

L’implémentation par défaut active la première fenêtre frame affichant le document qui contient l’élément OLE ; si l’application est un mini-serveur, l’implémentation par défaut affiche la fenêtre principale. La fonction informe également le conteneur que l’élément OLE a été ouvert.

Remplacez cette fonction si vous souhaitez effectuer un traitement spécial lors de l’ouverture d’un élément OLE. Cela est particulièrement courant avec les éléments liés dans lesquels vous souhaitez définir la sélection sur le lien lorsqu’elle est ouverte.

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

COleServerItem ::OnQueryUpdateItems

Appelé par l’infrastructure pour déterminer si les éléments liés du document serveur actuel sont obsolètes.

virtual BOOL OnQueryUpdateItems();

Valeur de retour

Différent de zéro si le document a des éléments nécessitant des mises à jour ; 0 si tous les éléments sont à jour.

Notes

Un élément est obsolète si son document source a été modifié, mais que l’élément lié n’a pas été mis à jour pour refléter les modifications dans le document.

COleServerItem ::OnRenderData

Appelé par l’infrastructure pour récupérer les données au format spécifié.

virtual BOOL OnRenderData(
    LPFORMATETC lpFormatEtc,
    LPSTGMEDIUM lpStgMedium);

Paramètres

lpFormatEtc
Pointe vers la structure FORMATETC spécifiant le format dans lequel les informations sont demandées.

lpStgMedium
Pointe vers une structure STGMEDIUM dans laquelle les données doivent être retournées.

Valeur de retour

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

Notes

Le format spécifié est un format précédemment placé dans l’objet à l’aide COleDataSource de la fonction membre DelayRenderData ou DelayRenderFileData pour le rendu différé. L’implémentation par défaut de cette fonction appelle OnRenderFileData ou OnRenderGlobalData, respectivement, si le support de stockage fourni est un fichier ou une mémoire. Si aucun de ces formats n’est fourni, l’implémentation par défaut retourne 0 et ne fait rien.

Si lpStgMedium-tymed> est TYMED_NULL, le STGMEDIUM doit allouer et remplir comme spécifié par lpFormatEtc-tymed.> Si ce n’est pas TYMED_NULL, le STGMEDIUM doit être rempli en place avec les données.

Il s’agit d’un élément substituable avancé. Remplacez cette fonction pour fournir vos données au format et au support demandés. Selon vos données, vous pouvez remplacer l’une des autres versions de cette fonction à la place. Si vos données sont petites et fixes en taille, remplacez OnRenderGlobalData. Si vos données se trouvent dans un fichier ou sont de taille variable, remplacez OnRenderFileData.

Pour plus d’informations, consultez IDataObject ::GetData, STGMEDIUM, FORMATETC et TYMED dans le Kit de développement logiciel (SDK) Windows.

COleServerItem ::OnRenderFileData

Appelé par l’infrastructure pour récupérer des données au format spécifié lorsque le support de stockage est un fichier.

virtual BOOL OnRenderFileData(
    LPFORMATETC lpFormatEtc,
    CFile* pFile);

Paramètres

lpFormatEtc
Pointe vers la structure FORMATETC spécifiant le format dans lequel les informations sont demandées.

pFile
Pointe vers un CFile objet dans lequel les données doivent être rendues.

Valeur de retour

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

Notes

Le format spécifié est un format précédemment placé dans l’objet à l’aide COleDataSource de la fonction membre DelayRenderData pour le rendu différé. L’implémentation par défaut de cette fonction retourne simplement FALSE.

Il s’agit d’un élément substituable avancé. Remplacez cette fonction pour fournir vos données au format et au support demandés. Selon vos données, vous pouvez remplacer l’une des autres versions de cette fonction à la place. Si vous souhaitez gérer plusieurs supports de stockage, remplacez OnRenderData. Si vos données se trouvent dans un fichier ou sont de taille variable, remplacez OnRenderFileData.

Pour plus d’informations, consultez IDataObject ::GetData et FORMATETC dans le Kit de développement logiciel (SDK) Windows.

COleServerItem ::OnRenderGlobalData

Appelé par l’infrastructure pour récupérer des données au format spécifié lorsque le support de stockage spécifié est la mémoire globale.

virtual BOOL OnRenderGlobalData(
    LPFORMATETC lpFormatEtc,
    HGLOBAL* phGlobal);

Paramètres

lpFormatEtc
Pointe vers la structure FORMATETC spécifiant le format dans lequel les informations sont demandées.

phGlobal
Pointe vers un handle vers la mémoire globale dans laquelle les données doivent être retournées. Si aucune mémoire n’a été allouée, ce paramètre peut être NULL.

Valeur de retour

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

Notes

Le format spécifié est un format précédemment placé dans l’objet à l’aide COleDataSource de la fonction membre DelayRenderData pour le rendu différé. L’implémentation par défaut de cette fonction retourne simplement FALSE.

Si phGlobal est NULL, un nouveau HGLOBAL doit être alloué et retourné dans phGlobal. Sinon, le HGLOBAL spécifié par phGlobal doit être rempli avec les données. La quantité de données placées dans le HGLOBAL ne doit pas dépasser la taille actuelle du bloc de mémoire. En outre, le bloc ne peut pas être réaffecté à une plus grande taille.

Il s’agit d’un élément substituable avancé. Remplacez cette fonction pour fournir vos données au format et au support demandés. Selon vos données, vous pouvez remplacer l’une des autres versions de cette fonction à la place. Si vous souhaitez gérer plusieurs supports de stockage, remplacez OnRenderData. Si vos données se trouvent dans un fichier ou sont de taille variable, remplacez OnRenderFileData.

Pour plus d’informations, consultez IDataObject ::GetData et FORMATETC dans le Kit de développement logiciel (SDK) Windows.

COleServerItem ::OnSetColorScheme

Appelé par l’infrastructure pour spécifier une palette de couleurs à utiliser lors de la modification de l’élément OLE.

virtual BOOL OnSetColorScheme(const LOGPALETTE* lpLogPalette);

Paramètres

lpLogPalette
Pointeur vers une structure Windows LOGPALETTE .

Valeur de retour

Différent de zéro si la palette de couleurs est utilisée ; sinon 0.

Notes

Si l’application conteneur a été écrite à l’aide de la bibliothèque de classes Microsoft Foundation, cette fonction est appelée lorsque la fonction IOleObject ::SetColorScheme de l’objet correspondant COleClientItem est appelée. L’implémentation par défaut retourne FALSE. Remplacez cette fonction si vous souhaitez utiliser la palette recommandée. L’application serveur n’est pas nécessaire pour utiliser la palette suggérée.

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

COleServerItem ::OnSetData

Appelé par l’infrastructure pour remplacer les données de l’élément OLE par les données spécifiées.

virtual BOOL OnSetData(
    LPFORMATETC lpFormatEtc,
    LPSTGMEDIUM lpStgMedium,
    BOOL bRelease);

Paramètres

lpFormatEtc
Pointeur vers une structure FORMATETC spécifiant le format des données.

lpStgMedium
Pointeur vers une structure STGMEDIUM dans laquelle résident les données.

bRelease
Indique qui a la propriété du support de stockage après avoir terminé l’appel de fonction. L’appelant décide qui est responsable de la libération des ressources allouées pour le compte du support de stockage. L’appelant effectue cette opération en définissant bRelease. Si bRelease n’est pas différent de zéro, l’élément de serveur prend possession et libère le support lorsqu’il a fini de l’utiliser. Lorsque bRelease est 0, l’appelant conserve la propriété et l’élément serveur peut utiliser le support de stockage uniquement pendant la durée de l’appel.

Valeur de retour

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

Notes

L’élément de serveur ne prend pas possession des données tant qu’il n’a pas réussi à l’obtenir. Autrement dit, elle ne prend pas possession si elle retourne 0. Si la source de données prend possession, elle libère le support de stockage en appelant la fonction ReleaseStgMedium .

L'implémentation par défaut n'exécute aucune opération. Remplacez cette fonction pour remplacer les données de l’élément OLE par les données spécifiées. Il s’agit d’un élément substituable avancé.

Pour plus d’informations, consultez STGMEDIUM, FORMATETC et ReleaseStgMedium dans le Kit de développement logiciel (SDK) Windows.

COleServerItem::OnSetExtent

Appelé par l’infrastructure pour indiquer à l’élément OLE la quantité d’espace disponible dans le document conteneur.

virtual BOOL OnSetExtent(
    DVASPECT nDrawAspect,
    const CSize& size);

Paramètres

nDrawAspect
Spécifie l’aspect de l’élément OLE dont les limites sont spécifiées. Ce paramètre peut avoir 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_THUMo NAIL Item 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.

size
Structure CSize spécifiant la nouvelle taille de l’élément OLE.

Valeur de retour

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

Notes

Si l’application conteneur a été écrite avec la bibliothèque de classes Microsoft Foundation, cette fonction est appelée lorsque la fonction membre SetExtent de l’objet correspondant COleClientItem est appelée. L’implémentation par défaut définit le membre m_sizeExtent à la taille spécifiée si nDrawAspect est DVASPECT_CONTENT ; sinon, elle retourne 0. Remplacez cette fonction pour effectuer un traitement spécial lorsque vous modifiez la taille de l’élément.

COleServerItem ::OnShow

Appelé par l’infrastructure pour indiquer à l’application serveur d’afficher l’élément OLE en place.

virtual void OnShow();

Notes

Cette fonction est généralement appelée lorsque l’utilisateur de l’application conteneur crée un élément ou exécute un verbe, tel que Edit, qui nécessite l’affichage de l’élément. L’implémentation par défaut tente d’activer sur place. Si cela échoue, la fonction appelle la OnOpen fonction membre pour afficher l’élément OLE dans une fenêtre distincte.

Remplacez cette fonction si vous souhaitez effectuer un traitement spécial lorsqu’un élément OLE est affiché.

COleServerItem ::OnUpdate

Appelé par l’infrastructure lorsqu’un élément a été modifié.

virtual void OnUpdate(
    COleServerItem* pSender,
    LPARAM lHint,
    CObject* pHint,
    DVASPECT nDrawAspect);

Paramètres

pSender
Pointeur vers l’élément qui a modifié le document. Sa valeur peut être NULL.

lHint
Contient des informations sur la modification.

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

nDrawAspect
Valeur de l’énumération DVASPECT. Ce paramètre peut avoir 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_THUMo NAIL Item 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

L’implémentation par défaut appelle NotifyChanged, quel que soit l’indicateur ou l’expéditeur.

COleServerItem ::OnUpdateItems

Appelé par l’infrastructure pour mettre à jour tous les éléments du document serveur.

virtual void OnUpdateItems();

Notes

L’implémentation par défaut appelle UpdateLink pour tous les COleClientItem objets du document.

COleServerItem ::SetItemName

Appelez cette fonction lorsque vous créez un élément lié pour définir son nom.

void SetItemName(LPCTSTR lpszItemName);

Paramètres

lpszItemName
Pointeur vers le nouveau nom de l’élément.

Notes

Le nom doit être unique dans le document. Lorsqu’une application serveur est appelée pour modifier un élément lié, l’application utilise ce nom pour rechercher l’élément. Vous n’avez pas besoin d’appeler cette fonction pour les éléments incorporés.

Voir aussi

Exemple MFC HIERSVR
CDocItem, classe
Graphique hiérarchique
COleClientItem, classe
COleServerDoc, classe
COleTemplateServer, classe