次の方法で共有


DrvFillPath 関数 (winddi.h)

DrvFillPath 関数は、閉じたパスの塗りつぶしを処理するための省略可能なエントリ ポイントです。

構文

BOOL DrvFillPath(
  [in, out] SURFOBJ  *pso,
  [in]      PATHOBJ  *ppo,
  [in]      CLIPOBJ  *pco,
  [in]      BRUSHOBJ *pbo,
  [in]      POINTL   *pptlBrushOrg,
  [in]      MIX      mix,
  [in]      FLONG    flOptions
);

パラメーター

[in, out] pso

描画するサーフェスを定義する SURFOBJ 構造体へのポインター。

[in] ppo

塗りつぶすパスを定義する PATHOBJ 構造体へのポインター。 PATHOBJ_Xxx サービス ルーチンは、パスを構成する線、ベジエ曲線、およびその他のデータを列挙するために提供されます。

[in] pco

CLIPOBJ 構造体へのポインター。 CLIPOBJ_Xxx サービス ルーチンは、 クリップ領域 を一連の四角形として列挙するために提供されます。

[in] pbo

閉じたパスを塗りつぶすために使用されるパターンと色を定義する BRUSHOBJ 構造体へのポインター。 このパラメーターは、 mix で指定された塗りつぶし操作でブラシを使用する必要がある場合にのみ逆参照する必要があります。 たとえば、 mix が BLACKNESS に設定されている場合、 pbo は定義されていないため、逆参照しないでください。

[in] pptlBrushOrg

ブラシの原点を定義する POINTL 構造体へのポインター。これは、デバイス上のブラシ パターンを揃えるために使用されます。

[in] mix

ブラシに使用する前景ラスター操作と背景ラスター操作を定義するミックス モード。 ミックス モードの詳細については、「解説」を参照してください。

[in] flOptions

巻き取りモードの塗りつぶしを実行する必要があることを示すFP_WINDINGMODE、または交互モードの塗りつぶしを実行する必要があることを示すFP_ALTERNATEMODEを指定します。 その他のフラグはすべて無視する必要があります。 これらのモードの詳細については、「 パスフィルモード」を参照してください。

戻り値

ドライバーがパスを入力できる場合、戻り値は TRUE です。 パスまたはクリッピングが複雑すぎてドライバーで処理できない場合、GDI で処理する必要がある場合、戻り値は FALSE になり、エラー コードはログに記録されません。 ブラシを認識できないなどの予期しないエラーがドライバーで発生した場合、戻り値はDDI_ERRORされ、エラー コードがログに記録されます。

解説

GDI は DrvFillPath を呼び出して、 デバイスで管理されるサーフェイス上のパスを埋めることができます。 この関数を呼び出すかどうかを決定する場合、GDI は、DEVINFO 構造体の flGraphicsCaps メンバー内の塗りつぶしの要件を次のフラグと比較します:GCAPS_BEZIERS、GCAPS_ALTERNATEFILL、およびGCAPS_WINDINGFILL。

ミックス モードでは、受信パターンと、デバイス表面に既に存在するデータを混合する方法を定義します。 MIX データ型は、1 つの ULONG にパックされた 2 つのバイナリ ラスター演算 (ROP2) 値で構成されます。 最下位バイトは、前景ラスター演算を定義します。次のバイトは、バックグラウンド ラスター演算を定義します。 ラスター操作コードの詳細については、Microsoft Windows SDKのドキュメントを参照してください。

要件

   
対象プラットフォーム デスクトップ
Header winddi.h (Winddi.h を含む)

関連項目

BRUSHOBJ

CLIPOBJ

DEVINFO

DrvStrokeAndFillPath

PATHOBJ

SURFOBJ