EngStretchBlt

EngStretchBlt 関数は、GDI に伸縮ビットブロック転送を実行させる。

EngStretchBlt psoDest, psoSrc, psoMask, pco, pxlo, pca, pptlHTOrg, prclDest, prclSrc, pptlMask, iMode

psoDest : [var] 描画先のサーフェスを記述する SURFOBJ 構造体へのポインタ。
psoSrc : [var] ビットブロック転送のソースサーフェスを記述する SURFOBJ 構造体へのポインタ。
psoMask : [var] ソースのマスクを定義する SURFOBJ 構造体へのポインタ。マスクは 1 ピクセルあたり 1 ビットのビットマップである論理マップで定義される。マスクはコピーされるソースの領域を制限する。このパラメータが指定されると、暗黙の rop4 0xCCAA を持ち、マスクが 1 のところでソースをコピーし、マスクが 0 のところでは宛先をそのままにすべきことを意味する。NULL の場合、rop4 は暗黙的に 0xCCCC で、ソース矩形のすべての場所でソースをコピーすべきことを意味する。
pco : [var] 宛先で変更する領域を制限する CLIPOBJ 構造体へのポインタ。GDI サービスがクリップ領域を矩形の集合として列挙するために提供される。可能な限り GDI はクリッピングを単純化する。ただし DrvBitBlt と異なり、EngStretchBlt は単一クリッピング矩形で呼ばれることがある。これにより出力をクリッピングする際の丸め誤差を防ぐ。
pxlo : [var] ソースとターゲットのサーフェス間でカラーインデックスをどう変換するかを指定する XLATEOBJ 構造体へのポインタ。この XLATEOBJ 構造体は、任意のソースインデックスの RGB 色を見つけるためにも問い合わせることができる。場合によっては高品質な伸縮ビットブロック転送が色を補間する必要がある。
pca : [var] ビットを伸縮する前にソースビットマップに適用するカラー調整値を定義する COLORADJUSTMENT 構造体へのポインタ。詳細は Microsoft Windows SDK ドキュメントを参照。
pptlHTOrg : [var] ハーフトーンブラシの原点を定義する POINTL 構造体へのポインタ。ハーフトーンブラシを使用するドライバは、ブラシのパターンの左上ピクセルをデバイスサーフェス上のこの点に整列させるべきである。
prclDest : [var] 宛先サーフェスの座標系で変更する領域を定義する RECTL 構造体へのポインタ。この矩形は整列していない 2 点で定義される。すなわち 2 番目の点の座標は必ずしも 1 番目の点より大きいとは限らない。記述される矩形は下辺と右辺を含まない。この関数は決して空の宛先矩形では呼ばれない。宛先矩形が整列していない場合、EngStretchBlt がそれを整列させる。
prclSrc : [var] ソースサーフェスの座標系で、コピーする領域を定義する RECTL 構造体へのポインタ。矩形は prclDest で定義される矩形にマップされる。この関数は決して空のソース矩形では呼ばれず、ソース矩形の点は常に整列している。マッピングは prclSrc と prclDest によって定義される。prclDest と prclSrc に指定された点は整数座標上にあり、これはピクセル中心に対応する。そのような 2 点で定義される矩形は、与えられた点を頂点とする幾何学的矩形と見なされるが、各座標から 0.5 を引いたものになる。(POINTL 構造体はこれらの分数座標頂点を指定する省略表記である。) 矩形の辺はピクセルと交わることはなく、ピクセルの集合の周りを通る。矩形内のピクセルは右下を含まない矩形に期待されるピクセルである。EngStretchBlt は幾何学的ソース矩形を幾何学的宛先矩形に正確にマップする。
pptlMask : [var] 指定したマスク内のピクセルで、ソース矩形の左上ピクセルに対応するものを定義する POINTL 構造体へのポインタ。マスクが指定されない場合、このパラメータは無視される。
iMode : [int] 出力ピクセルを得るためにソースピクセルをどう組み合わせるかを指定する。HALFTONE モードは他のモードより遅いが、より高品質な画像を生成する。

(プラグイン / モジュール : gdi32.dll)

解説

EngStretchBlt 関数は、GDI に伸縮ビットブロック転送を実行させる。

[戻り値]
関数が成功した場合、戻り値は TRUE となる。それ以外の場合は FALSE となり、エラーコードが報告される。

[備考]
この関数により、GDI ビットマップとデバイスサーフェスに同じハーフトーニングアルゴリズムを適用できる。ドライバが
DrvStretchBlt をフックしているがサポートしない処理を要求された場合、EngStretchBlt を呼ぶべきである。

情報

プラグイン / モジュールgdi32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の gdi32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_gdi32_gen2.hs