IViewObject ::GetColorSet, méthode (oleidl.h)
Retourne la palette logique que l’objet utilisera pour dessiner dans sa méthode IViewObject ::D raw avec les paramètres correspondants.
Syntaxe
HRESULT GetColorSet(
[in] DWORD dwDrawAspect,
[in] LONG lindex,
[in] void *pvAspect,
[in] DVTARGETDEVICE *ptd,
[in] HDC hicTargetDev,
[out] LOGPALETTE **ppColorSet
);
Paramètres
[in] dwDrawAspect
Spécifie la représentation de l'objet. Les représentations incluent du contenu, une icône, une miniature ou un document imprimé. Les valeurs valides sont extraites de l’énumération DVASPECT. Pour plus d’informations, consultez l’énumération DVASPECT .
[in] lindex
Partie de l'objet appropriée pour l'opération de dessin. Son interprétation varie selon dwDrawAspect. Pour plus d’informations, consultez l’énumération DVASPECT .
[in] pvAspect
Pointeur vers des informations supplémentaires sur la vue de l’objet spécifié dans dwDrawAspect. Étant donné qu’aucun des aspects actuels ne prend en charge d’informations supplémentaires, pvAspect doit toujours avoir la valeur NULL.
[in] ptd
Pointeur vers la structure DVTARGETDEVICE qui décrit l’appareil pour lequel l’objet doit être rendu. Si la valeur est NULL, la vue doit être rendue pour l’appareil cible par défaut (généralement l’affichage). Une valeur autre que NULL est interprétée conjointement avec hicTargetDev et hdcDraw. Par exemple, si hdcDraw spécifie une imprimante comme contexte d’appareil, ptd pointe vers une structure décrivant ce périphérique d’imprimante. Les données peuvent en fait être imprimées si hicTargetDev est une valeur valide ou elles peuvent être affichées en mode aperçu avant impression si hicTargetDev a la valeur NULL.
[in] hicTargetDev
Contexte d’information pour l’appareil cible indiqué par le paramètre ptd à partir duquel l’objet peut extraire les métriques de l’appareil et tester les fonctionnalités de l’appareil. Si ptd a la valeur NULL, l’objet doit ignorer le paramètre hicTargetDev .
[out] ppColorSet
Adresse de la variable pointeur LOGPALETTE qui reçoit un pointeur vers la structure LOGPALETTE. La structure LOGPALETTE contient l’ensemble des couleurs qui seraient utilisées si IViewObject ::D raw était appelé avec les mêmes paramètres pour dwAspect, lindex, pvAspect, ptd et hicTargetDev. Si ppColorSet a la valeur NULL, l’objet n’utilise pas de palette.
Valeur retournée
Cette méthode retourne S_OK en cas de réussite. Les autres valeurs de retour possibles sont les suivantes.
Code de retour | Description |
---|---|
|
Le jeu de couleurs est vide ou l’objet ne fournit pas les informations. |
|
Aucune donnée de présentation pour l’objet. |
|
Valeur non valide pour lindex ; Actuellement, seul -1 est pris en charge. |
|
Valeur non valide pour dwAspect. |
|
Une ou plusieurs des valeurs de paramètre fournies ne sont pas valides. |
|
Mémoire insuffisante disponible pour cette opération. |
Remarques
La méthode IViewObject ::GetColorSet interroge de manière récursive tous les objets imbriqués et retourne un jeu de couleurs qui représente l’union de toutes les couleurs demandées. Le jeu de couleurs finit par être percolé sur le conteneur de niveau supérieur qui possède le cadre de fenêtre. Ce conteneur peut appeler IViewObject ::GetColorSet sur chacun de ses objets incorporés pour obtenir toutes les couleurs nécessaires pour dessiner les objets incorporés. Le conteneur peut utiliser les jeux de couleurs obtenus conjointement avec d’autres couleurs dont il a besoin pour définir la palette de couleurs globale.
L’implémentation fournie par OLE de IViewObject ::GetColorSet examine les données dont elle dispose pour dessiner l’image. Si CF_DIB est le format de dessin, la palette trouvée dans la bitmap est utilisée. Pour une bitmap standard, aucune information de couleur n’est retournée. Si le format de dessin est un métafichier, le gestionnaire d’objets énumère le métafichier à la recherche d’un enregistrement de métafichier CreatePalette. Si vous en trouvez un, le gestionnaire l’utilise comme jeu de couleurs.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | oleidl.h |