Fonction DrvStrokeAndFillPath (winddi.h)

La fonction DrvStrokeAndFillPath agit (contours) et remplit un chemin d’accès simultanément.

Syntaxe

BOOL DrvStrokeAndFillPath(
  [in, out]      SURFOBJ   *pso,
  [in, out]      PATHOBJ   *ppo,
  [in]           CLIPOBJ   *pco,
  [in, optional] XFORMOBJ  *pxo,
  [in]           BRUSHOBJ  *pboStroke,
  [in]           LINEATTRS *plineattrs,
  [in]           BRUSHOBJ  *pboFill,
  [in]           POINTL    *pptlBrushOrg,
  [in]           MIX       mixFill,
  [in]           FLONG     flOptions
);

Paramètres

[in, out] pso

Pointeur vers une structure SURFOBJ qui décrit la surface sur laquelle dessiner.

[in, out] ppo

Pointeur vers une structure PATHOBJ qui décrit le chemin à remplir. Les routines de service PATHOBJ_Xxx sont fournies pour énumérer les lignes, les courbes de Béziers et d’autres données qui composent le chemin.

[in] pco

Pointeur vers une structure CLIPOBJ . Les routines de service CLIPOBJ_Xxx sont fournies pour énumérer la région de clip sous la forme d’un ensemble de rectangles.

[in, optional] pxo

Pointeur vers une structure XFORMOBJ requise lorsqu’une ligne géométrique large est dessinée. Il spécifie la transformation qui prend les coordonnées mondiales en coordonnées d’appareil. Cela est nécessaire, car le chemin d’accès est fourni dans les coordonnées de l’appareil, mais une ligne géométrique large est en fait élargie dans les coordonnées mondiales. Le XFORMOBJ peut être interrogé pour savoir quelle est la transformation.

[in] pboStroke

Pointeur vers une structure BRUSHOBJ qui spécifie le pinceau à utiliser lors du caressage du chemin.

[in] plineattrs

Pointeur vers la structure LINEATTRS qui décrit les attributs de la ligne à dessiner.

[in] pboFill

Pointeur vers une structure BRUSHOBJ qui spécifie le pinceau à utiliser lors du remplissage du chemin.

[in] pptlBrushOrg

Pointeur vers une structure POINTL qui spécifie l’origine du pinceau pour les deux pinceaux.

[in] mixFill

Mode mix qui définit les opérations de trame de premier plan et d’arrière-plan à utiliser pour le pinceau. Pour plus d’informations sur le mode mix, consultez Remarques.

[in] flOptions

Spécifie soit FP_WINDINGMODE, c’est-à-dire qu’un remplissage en mode enroulement doit être effectué, soit FP_ALTERNATEMODE, ce qui signifie qu’un remplissage en mode alternatif doit être effectué. Tous les autres indicateurs doivent être ignorés. Pour plus d’informations sur ces modes, consultez Modes de remplissage de chemin d’accès.

Valeur retournée

La valeur de retour est TRUE si le pilote est en mesure de remplir le chemin d’accès. Sinon, si GDI doit remplir le chemin d’accès, la valeur de retour est FALSE. Si une erreur se produit, la valeur de retour est DDI_ERROR et un code d’erreur est consigné.

Remarques

Si une ligne large est utilisée pour caresser, la zone remplie doit être réduite pour compenser.

Le pilote peut retourner FALSE si le chemin d’accès ou le découpage est trop complexe pour que l’appareil puisse le gérer ; dans ce cas, GDI se convertit en un appel plus simple. Par exemple, si le pilote de périphérique a défini l’indicateur GCAPS_BEZIERS dans le membre flGraphicsCaps de la structure DEVINFO et reçoit ensuite un chemin avec des courbes de Béziers, il peut retourner FALSE ; GDI convertit ensuite les courbes de Bézier en lignes et appelle à nouveau DrvStrokeAndFillPath . Si le pilote de périphérique retourne à nouveau FALSE , GDI simplifie davantage l’appel, en effectuant des appels à DrvStrokePath et DrvFillPath, ou à DrvBitBlt, en fonction de la combinaison et de la largeur des lignes qui composent le chemin.

Le mode mix définit la façon dont le modèle entrant doit être mélangé avec les données qui se trouvent déjà sur l’surface de l’appareil. Le type de données MIX se compose de deux valeurs d’opération raster binaire (ROP2) regroupées dans un seul ULONG. L’octet d’ordre le plus bas définit l’opération raster de premier plan ; l’octet suivant définit l’opération raster en arrière-plan. Pour plus d’informations sur les codes d’opération raster, consultez la documentation Microsoft Windows SDK.

Configuration requise

   
Plateforme cible Bureau
En-tête winddi.h (inclure Winddi.h)

Voir aussi

CLIPOBJ

DrvBitBlt

DrvFillPath

DrvStrokePath

LINEATTRS

PATHOBJ

SURFOBJ

XFORMOBJ