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_EMBEDSOURCE 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 ::IsConnected | 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 | Met à jour tous les conteneurs avec la 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
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_EMBEDSOURCE d’un élément OLE.
void GetEmbedSourceData(LPSTGMEDIUM lpStgMedium);
Paramètres
lpStgMedium
Pointeur vers la structure STGMEDIUM qui recevra les données CF_EMBEDSOURCE 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 ::IsConnected
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 prendre l'une ou l'autre 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
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 :
Valeur | 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 prendre l'une ou l'autre 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.
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_THUMBNAIL.
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 prendre l'une ou l'autre 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.
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 prendre l'une ou l'autre 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.
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_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
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