PFN_DrvStrokePath
コールバックシグネチャ
BOOL PFN_DrvStrokePath(
SURFOBJ* param0,
PATHOBJ* param1,
CLIPOBJ* param2,
XFORMOBJ* param3,
BRUSHOBJ* param4,
POINTL* param5,
LINEATTRS* param6,
DWORD param7
);パラメーター
| フィールド | 型 |
|---|---|
| param0 | SURFOBJ* |
| param1 | PATHOBJ* |
| param2 | CLIPOBJ* |
| param3 | XFORMOBJ* |
| param4 | BRUSHOBJ* |
| param5 | POINTL* |
| param6 | LINEATTRS* |
| param7 | DWORD |
公式ドキュメント
DrvStrokePath 関数は、パスをストローク(輪郭描画)します。
戻り値
ドライバーがパスをストロークできる場合、戻り値は TRUE です。代わりに GDI がパスをストロークすべき場合、戻り値は FALSE になりますが、エラーコードは記録されません。ドライバーがエラーを検出した場合、戻り値は DDI_ERROR となり、エラーコードが報告されます。
解説(Remarks)
ドライバーがこの関数をフックしており、かつ該当する GCAPS が設定されている場合、GDI は線または曲線を任意の属性の組み合わせで描画するときに DrvStrokePath を呼び出します。
ドライバーがこのエントリポイントをサポートする場合、任意のクリッピングを伴うコスメティックな太線の描画もサポートする必要があります。提供されている GDI 関数を使用すると、この呼び出しは、クリッピングが事前計算された 1 ピクセル幅の線の集合に分解できます。
デバイス管理サーフェス上で何らかの描画を行う場合、この関数は必須です。
高機能なデバイス向けのドライバーは、ベジェ曲線や幾何学的な太線を含むパスを描画するために、この呼び出しをオプションで受け取ることができます。GDI は、DEVINFO 構造体の flGraphicsCaps メンバーの GCAPS_BEZIERS フラグおよび GCAPS_GEOMETRICWIDE フラグを調べて、この関数を呼び出すかどうかを判断します。(これら 2 つのビットの 4 通りの組み合わせが、この呼び出しにおける 4 段階の機能レベルを決定します。) ベジェ曲線や幾何学的な太線を含む高度な呼び出しを受け取ったドライバーは、その呼び出しを処理しないことを選択して FALSE を返すことができます。これは、パスやクリッピングがデバイスで処理するには複雑すぎる場合に起こり得ます。呼び出しが FALSE を返した場合、GDI はその呼び出しを、より簡単に処理できる単純な呼び出しに分解します。
デバイス管理サーフェスの場合、この関数は少なくとも、単色ブラシを使用した 1 ピクセル幅の実線およびスタイル付きコスメティックラインをサポートする必要があります。
ミックスモードは、入力されるパターンをデバイスサーフェス上に既にあるデータとどのように混合するかを定義します。MIX データ型は、2 つのバイナリラスター演算 (ROP2) の値を 1 つの ULONG にまとめたものです。最下位バイトは前景のラスター演算を定義し、その次のバイトは背景のラスター演算を定義します。ラスター演算コードの詳細については、Microsoft Windows SDK のドキュメントを参照してください。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)