PlgBlt

PlgBlt 関数は、ソースデバイスコンテキスト内の指定矩形からコピー先デバイスコンテキスト内の指定平行四辺形へ、色データのビットをビットブロック転送する。

PlgBlt hdcDest, lpPoint, hdcSrc, xSrc, ySrc, width, height, hbmMask, xMask, yMask

hdcDest : [intptr] コピー先のデバイスコンテキストへのハンドル。
lpPoint : [var] コピー先平行四辺形の 3 つの角を識別する、論理空間内の 3 点の配列へのポインタ。ソース矩形の左上隅はこの配列の最初の点に、右上隅は 2 番目の点に、左下隅は 3 番目の点にマッピングされる。ソース矩形の右下隅は、平行四辺形の暗黙の 4 番目の点にマッピングされる。
hdcSrc : [intptr] コピー元のデバイスコンテキストへのハンドル。
xSrc : [int] ソース矩形の左上隅の x 座標(論理単位)。
ySrc : [int] ソース矩形の左上隅の y 座標(論理単位)。
width : [int] ソース矩形の幅(論理単位)。
height : [int] ソース矩形の高さ(論理単位)。
hbmMask : [intptr] ソース矩形の色をマスクするために使用するオプションのモノクロビットマップへのハンドル。
xMask : [int] モノクロビットマップの左上隅の x 座標(論理単位)。
yMask : [int] モノクロビットマップの左上隅の y 座標(論理単位)。

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

解説

PlgBlt
関数は、ソースデバイスコンテキスト内の指定矩形からコピー先デバイスコンテキスト内の指定平行四辺形へ、色データのビットをビットブロック転送する。

[戻り値]
関数が成功した場合、戻り値は非ゼロである。関数が失敗した場合、戻り値はゼロである。

[備考]
PlgBlt 関数はデバイス依存ビットマップで動作する。平行四辺形の 4 番目の頂点(D)は、最初の 3
点(A、B、C)をベクトルとして扱い、D = B + C - A として計算される。ビットマスクが存在する場合、マスク内の値 1
はソースピクセル色をコピー先にコピーすることを示す。マスク内の値 0
はコピー先のピクセル色を変更しないことを示す。マスク矩形がソース矩形やコピー先矩形より小さい場合、関数はマスクパターンを複製する。ソースデバイスコンテキストにはスケーリング、平行移動、反射変換が許可されるが、回転や剪断変換は許可されない。マスクビットマップがモノクロビットマップでない場合、エラーが発生する。必要であれば、ピクセルをどう伸縮するかを決めるためにコピー先デバイスコンテキストのストレッチモードが使用される。拡張メタファイルを記録中にソースデバイスコンテキストが拡張メタファイルデバイスコンテキストを指している場合、エラーが発生する。コピー先座標はコピー先デバイスコンテキストに従って変換され、ソース座標はソースデバイスコンテキストに従って変換される。ソース変換に回転や剪断がある場合、エラーが返される。コピー先とソースの矩形のカラー形式が一致しない場合、PlgBlt
はソース矩形をコピー先矩形に合わせて変換する。すべてのデバイスが PlgBlt 関数をサポートしているわけではない。詳細は
GetDeviceCaps 関数の RC_BITBLT
ラスタケーパビリティの説明を参照。ソースとコピー先のデバイスコンテキストが互換性のないデバイスを表している場合、PlgBlt
はエラーを返す。マルチモニタシステムで使用される場合、hdcSrc と hdcDest
は同じデバイスを参照していなければならず、そうでなければ関数は失敗する。異なるデバイスの DC
間でデータを転送するには、GetDIBits を呼び出してメモリビットマップを DIB に変換する。DIB を 2
台目のデバイスに表示するには、SetDIBits または StretchDIBits を呼び出す。

情報

プラグイン / モジュール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