Fonction GetDeviceCaps (wingdi.h)

La fonction GetDeviceCaps récupère des informations spécifiques à l’appareil pour l’appareil spécifié.

Syntaxe

int GetDeviceCaps(
  [in] HDC hdc,
  [in] int index
);

Paramètres

[in] hdc

Handle pour le contrôleur de domaine.

[in] index

Élément à retourner. Ce paramètre peut prendre les valeurs suivantes.

Index Signification
DRIVERVERSION
Version du pilote de périphérique.
TECHNOLOGIE
Technologie de l’appareil. Il peut s’agir de l’une des valeurs suivantes.
DT_PLOTTER Traceur vectoriel
DT_RASDISPLAY Affichage raster
DT_RASPRINTER Imprimante raster
DT_RASCAMERA Caméra raster
DT_CHARSTREAM Flux de caractères
DT_METAFILE Metafile
DT_DISPFILE Afficher le fichier
 

Si le paramètre hdc est un handle pour le contrôleur de domaine d’un métafichier amélioré, la technologie de l’appareil est celle de l’appareil référencé tel que spécifié à la fonction CreateEnhMetaFile . Pour déterminer s’il s’agit d’un contrôleur de domaine de métafichier amélioré, utilisez la fonction GetObjectType .

HORZSIZE
Largeur, en millimètres, de l’écran physique.
VERTSIZE
Hauteur, en millimètres, de l’écran physique.
HORZRES
Largeur, en pixels, de l’écran ; ou pour les imprimantes, la largeur, en pixels, de la zone imprimable de la page.
VERTRES
Hauteur, en lignes raster, de l’écran ; ou pour les imprimantes, la hauteur, en pixels, de la zone imprimable de la page.
LOGPIXELSX
Nombre de pixels par pouce logique le long de la largeur de l’écran. Dans un système avec plusieurs moniteurs d’affichage, cette valeur est la même pour tous les moniteurs.
LOGPIXELSY
Nombre de pixels par pouce logique le long de la hauteur de l’écran. Dans un système avec plusieurs moniteurs d’affichage, cette valeur est la même pour tous les moniteurs.
BITSPIXEL
Nombre de bits de couleur adjacents pour chaque pixel.
AVIONS
Nombre de plans de couleurs.
NUMBRUSHES
Nombre de pinceaux spécifiques à l’appareil.
NUMPENS
Nombre de stylets spécifiques à l’appareil.
NUMFONTS
Nombre de polices spécifiques à l’appareil.
NUMCOLORS
Nombre d’entrées dans la table de couleurs de l’appareil, si la profondeur de couleur de l’appareil n’est pas supérieure à 8 bits par pixel. Pour les appareils avec des profondeurs de couleurs supérieures, -1 est retourné.
ASPECTX
Largeur relative d’un pixel d’appareil utilisé pour le dessin de traits.
ASPECTY
Hauteur relative d’un pixel d’appareil utilisé pour le dessin de trait.
ASPECTXY
Largeur diagonale du pixel de l’appareil utilisé pour le dessin de traits.
PDEVICESIZE
Réservé.
CLIPCAPS
Indicateur qui indique les fonctionnalités de découpage de l’appareil. Si l’appareil peut se découper dans un rectangle, il s’agit de 1. Sinon, la valeur est 0.
SIZEPALETTE
Nombre d’entrées dans la palette système. Cet index est valide uniquement si le pilote de périphérique définit le bit RC_PALETTE dans l’index RASTERCAPS et est disponible uniquement si le pilote est compatible avec Windows 16 bits.
NUMRESERVED
Nombre d’entrées réservées dans la palette système. Cet index est valide uniquement si le pilote de périphérique définit le bit RC_PALETTE dans l’index RASTERCAPS et est disponible uniquement si le pilote est compatible avec Windows 16 bits.
COLORRES
Résolution de couleur réelle de l’appareil, en bits par pixel. Cet index est valide uniquement si le pilote de périphérique définit le bit RC_PALETTE dans l’index RASTERCAPS et est disponible uniquement si le pilote est compatible avec Windows 16 bits.
PHYSICALWIDTH
Pour les périphériques d’impression : largeur de la page physique, en unités d’appareil. Par exemple, une imprimante configurée pour imprimer à 600 ppp sur du papier de 8,5 x 11 pouces a une valeur de largeur physique de 5100 unités d’appareil. Notez que la page physique est presque toujours supérieure à la zone imprimable de la page, et jamais plus petite.
PHYSICALHEIGHT
Pour les périphériques d’impression : hauteur de la page physique, en unités d’appareil. Par exemple, une imprimante configurée pour imprimer à 600 ppp sur du papier de 8,5 par 11 pouces a une valeur de hauteur physique de 6600 unités d’appareil. Notez que la page physique est presque toujours supérieure à la zone imprimable de la page, et jamais plus petite.
PHYSICALOFFSETX
Pour les périphériques d’impression : distance entre le bord gauche de la page physique et le bord gauche de la zone imprimable, en unités d’appareil. Par exemple, une imprimante configurée pour imprimer à 600 ppp sur du papier de 8,5 par 11 pouces, qui ne peut pas imprimer sur le papier de 0,25 pouce le plus à gauche, a un décalage physique horizontal de 150 unités d’appareil.
PHYSICALOFFSETY
Pour les périphériques d’impression : distance entre le bord supérieur de la page physique et le bord supérieur de la zone imprimable, en unités d’appareil. Par exemple, une imprimante configurée pour imprimer à 600 ppp sur du papier de 8,5 par 11 pouces, qui ne peut pas imprimer sur les 0,5 pouces de papier les plus hauts, a un décalage physique vertical de 300 unités d’appareil.
VREFRESH
Pour les appareils d’affichage : fréquence de rafraîchissement verticale actuelle de l’appareil, en cycles par seconde (Hz).

Une valeur de fréquence d’actualisation verticale de 0 ou 1 représente la fréquence d’actualisation par défaut du matériel d’affichage. Ce taux par défaut est généralement défini par des commutateurs sur un écran carte ou une carte mère d’ordinateur, ou par un programme de configuration qui n’utilise pas de fonctions d’affichage telles que ChangeDisplaySettings.

SCALINGFACTORX
Facteur de mise à l’échelle pour l’axe X de l’imprimante.
SCALINGFACTORY
Facteur de mise à l’échelle pour l’axe y de l’imprimante.
BLTALIGNMENT
Alignement de dessin horizontal préféré, exprimé sous la forme d’un multiple de pixels. Pour de meilleures performances de dessin, les fenêtres doivent être alignées horizontalement sur un multiple de cette valeur. La valeur zéro indique que l’appareil est accéléré et que tout alignement peut être utilisé.
SHADEBLENDCAPS
Valeur qui indique les fonctionnalités d’ombrage et de fusion de l’appareil. Pour plus d’informations, voir Remarques.
SB_CONST_ALPHA Gère le membre SourceConstantAlpha de la structure BLENDFUNCTION , qui est référencée par le paramètre blendFunction de la fonction AlphaBlend .
SB_GRAD_RECT Capable d’effectuer des rectangles GradientFill .
SB_GRAD_TRI Capable d’effectuer des triangles GradientFill .
SB_NONE L’appareil ne prend en charge aucune de ces fonctionnalités.
SB_PIXEL_ALPHA Capable de gérer l’alpha par pixel dans AlphaBlend.
SB_PREMULT_ALPHA Capable de gérer l’alpha prémultiplié dans AlphaBlend.
 
RASTERCAPS
Valeur qui indique les fonctionnalités raster de l’appareil, comme indiqué dans le tableau suivant.
RC_BANDING Nécessite la prise en charge de la bande.
RC_BITBLT Capable de transférer des bitmaps.
RC_BITMAP64 Capable de prendre en charge les bitmaps supérieures à 64 Ko.
RC_DI_BITMAP Capable de prendre en charge les fonctions SetDIBits et GetDIBits .
RC_DIBTODEV Capable de prendre en charge la fonction SetDIBitsToDevice .
RC_FLOODFILL Capable d’effectuer des remplissages d’inondation.
RC_PALETTE Spécifie un appareil basé sur une palette.
RC_SCALING Capable de mettre à l’échelle.
RC_STRETCHBLT Capable d’exécuter la fonction StretchBlt .
RC_STRETCHDIB Capable d’exécuter la fonction StretchDIBits .
 
COURBECAPS
Valeur qui indique les fonctionnalités de courbe de l’appareil, comme indiqué dans le tableau suivant.
CC_NONE L’appareil ne prend pas en charge les courbes.
CC_CHORD L’appareil peut dessiner des arcs d’accord.
CC_CIRCLES L’appareil peut dessiner des cercles.
CC_ELLIPSES L’appareil peut dessiner des points de suspension.
CC_INTERIORS L’appareil peut dessiner des intérieurs.
CC_PIE L’appareil peut dessiner des coins de tarte.
CC_ROUNDRECT L’appareil peut dessiner des rectangles arrondis.
CC_STYLED L’appareil peut dessiner des bordures de style.
CC_WIDE L’appareil peut dessiner des bordures larges.
CC_WIDESTYLED L’appareil peut dessiner des bordures larges et stylées.
 
LINECAPS
Valeur qui indique les fonctionnalités de ligne de l’appareil, comme indiqué dans le tableau suivant :
LC_NONE L’appareil ne prend pas en charge les lignes.
LC_INTERIORS L’appareil peut dessiner des intérieurs.
LC_MARKER L’appareil peut dessiner un marqueur.
LC_POLYLINE L’appareil peut dessiner une polyligne.
LC_POLYMARKER L’appareil peut dessiner plusieurs marqueurs.
LC_STYLED L’appareil peut dessiner des lignes de style.
LC_WIDE L’appareil peut dessiner des lignes larges.
LC_WIDESTYLED L’appareil peut dessiner des lignes larges et stylées.
 
POLYGONALCAPS
Valeur qui indique les fonctionnalités de polygone de l’appareil, comme indiqué dans le tableau suivant.
PC_NONE L’appareil ne prend pas en charge les polygones.
PC_INTERIORS L’appareil peut dessiner des intérieurs.
PC_POLYGON L’appareil peut dessiner des polygones de remplissage de remplacement.
PC_RECTANGLE L’appareil peut dessiner des rectangles.
PC_SCANLINE L’appareil peut dessiner une seule ligne de balayage.
PC_STYLED L’appareil peut dessiner des bordures de style.
PC_WIDE L’appareil peut dessiner des bordures larges.
PC_WIDESTYLED L’appareil peut dessiner des bordures larges et stylées.
PC_WINDPOLYGON L’appareil peut dessiner des polygones enroulement-remplissage.
 
TEXTCAPS
Valeur qui indique les fonctionnalités de texte de l’appareil, comme indiqué dans le tableau suivant.
TC_OP_CHARACTER L’appareil est capable de précision de sortie de caractères.
TC_OP_STROKE L’appareil est capable de précision de sortie de trait.
TC_CP_STROKE L’appareil est capable d’avoir une précision de découpage de trait.
TC_CR_90 L’appareil peut effectuer une rotation de caractères de 90 degrés.
TC_CR_ANY L’appareil est capable de n’importe quelle rotation de caractères.
TC_SF_X_YINDEP L’appareil peut être mis à l’échelle indépendamment dans les directions x et y.
TC_SA_DOUBLE L’appareil est capable de doubler le caractère pour la mise à l’échelle.
TC_SA_INTEGER L’appareil utilise des multiples entiers uniquement pour la mise à l’échelle des caractères.
TC_SA_CONTIN L’appareil utilise des multiples pour la mise à l’échelle exacte des caractères.
TC_EA_DOUBLE L’appareil peut dessiner des caractères de double poids.
TC_IA_ABLE L’appareil peut italiciser.
TC_UA_ABLE L’appareil peut souligner.
TC_SO_ABLE L’appareil peut dessiner des barrés.
TC_RA_ABLE L’appareil peut dessiner des polices raster.
TC_VA_ABLE L’appareil peut dessiner des polices vectorielles.
TC_RESERVED Réservés au; doit être égal à zéro.
TC_SCROLLBLT L’appareil ne peut pas faire défiler à l’aide d’un transfert de bloc de bits. Notez que cette signification peut être l’opposé de ce que vous attendez.
 
COLORMGMTCAPS
Valeur qui indique les fonctionnalités de gestion des couleurs de l’appareil.
CM_CMYK_COLOR L’appareil peut accepter le profil de couleur ICC de l’espace de couleur CMJN.
CM_DEVICE_ICM L’appareil peut effectuer un ICM sur le pilote de périphérique ou sur le périphérique lui-même.
CM_GAMMA_RAMP L’appareil prend en charge GetDeviceGammaRamp et SetDeviceGammaRamp
CM_NONE L’appareil ne prend pas en charge ICM.
 

Valeur retournée

La valeur de retour spécifie la valeur de l’élément souhaité.

Lorsque nIndex est BITSPIXEL et que l’appareil a 15bpp ou 16bpp, la valeur de retour est 16.

Remarques

Lorsque nIndex a la valeur SHADEBLENDCAPS :

  • Pour une imprimante, GetDeviceCaps retourne tout ce que l’imprimante signale.
  • Pour un périphérique d’affichage, toutes les opérations de fusion sont disponibles ; outre SB_NONE, les seules valeurs de retour sont SB_CONST_ALPHA et SB_PIXEL_ALPHA, qui indiquent si ces opérations sont accélérées.
Sur un système à plusieurs moniteurs, si hdc est le bureau, GetDeviceCaps retourne les fonctionnalités du moniteur principal. Si vous souhaitez obtenir des informations sur d’autres moniteurs, vous devez utiliser les API multi-moniteurs ou CreateDC pour obtenir un HDC pour le contexte d’appareil (DC) d’un moniteur spécifique.
Note Display1 est généralement le moniteur principal, mais pas toujours.
 
GetDeviceCaps fournit les six index suivants à la place des échappements d’imprimante.
Index Sortie d’échappement de l’imprimante remplacée
PHYSICALWIDTH GETPHYSPAGESIZE
PHYSICALHEIGHT GETPHYSPAGESIZE
PHYSICALOFFSETX GETPRINTINGOFFSET
PHYSICALOFFSETY GETPHYSICALOFFSET
SCALINGFACTORX GETSCALINGFACTOR
SCALINGFACTORY GETSCALINGFACTOR
 
RemarqueGetDeviceCaps signale les informations fournies par le pilote d’affichage. Si le pilote d’affichage refuse de signaler des informations, GetDeviceCaps calcule les informations en fonction de calculs fixes. Si le pilote d’affichage signale des informations non valides, GetDeviceCaps retourne les informations non valides. En outre, si le pilote d’affichage refuse les informations de rapport, GetDeviceCaps peut calculer des informations incorrectes, car il suppose une résolution fixe (96 PPP) ou une taille fixe (en fonction des informations que le pilote d’affichage a fournies et n’a pas fournies). Malheureusement, un pilote d’affichage implémenté sur le modèle WDDM (Windows Display Driver Model) (introduit dans Windows Vista) fait que GDI n’obtient pas les informations. Par conséquent, GetDeviceCaps doit toujours calculer les informations.
 

Exemples

Pour obtenir un exemple, consultez Préparation à l’impression.

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 wingdi.h (inclure Windows.h)
Bibliothèque Gdi32.lib
DLL Gdi32.dll

Voir aussi

CreateEnhMetaFile

CreateIC

Fonctions de contexte de l’appareil

Vue d’ensemble des contextes d’appareil

DeviceCapabilities

GetDIBits

GetObjectType

SetDIBits

SetDIBitsToDevice

StretchBlt

StretchDIBits