MaskBlt

MaskBlt 関数は、指定したマスクとラスタ演算を使用して、ソースとコピー先のビットマップのカラーデータを結合する。

MaskBlt hdcDest, xDest, yDest, width, height, hdcSrc, xSrc, ySrc, hbmMask, xMask, yMask, rop

hdcDest : [intptr] コピー先のデバイスコンテキストへのハンドル。
xDest : [int] コピー先矩形の左上隅の x 座標(論理単位)。
yDest : [int] コピー先矩形の左上隅の y 座標(論理単位)。
width : [int] コピー先の矩形およびソースビットマップの幅(論理単位)。
height : [int] コピー先の矩形およびソースビットマップの高さ(論理単位)。
hdcSrc : [intptr] ビットマップのコピー元となるデバイスコンテキストへのハンドル。dwRop パラメータがソースを含まないラスタ操作を指定する場合は 0 でなければならない。
xSrc : [int] ソースビットマップの左上隅の x 座標(論理単位)。
ySrc : [int] ソースビットマップの左上隅の y 座標(論理単位)。
hbmMask : [intptr] ソースデバイスコンテキスト内のカラービットマップと結合する、モノクロのマスクビットマップへのハンドル。
xMask : [int] hbmMask パラメータで指定されたマスクビットマップの水平ピクセルオフセット。
yMask : [int] hbmMask パラメータで指定されたマスクビットマップの垂直ピクセルオフセット。
rop : [int] 関数がソースデータとコピー先データの結合を制御するのに使用する前景および背景の三項ラスタ演算コード(ROP)。背景ラスタ演算コードはこの値の上位ワードの上位バイトに、前景ラスタ演算コードはこの値の上位ワードの下位バイトに格納される。下位ワードは無視され、0 でなければならない。マクロ MAKEROP4 はこのような前景・背景ラスタ演算コードの組み合わせを作成する。この関数のコンテキストにおける前景と背景の説明については、後述の「解説」セクションを参照のこと。一般的なラスタ演算コード(ROP)の一覧は BitBlt 関数を参照。なお、CAPTUREBLT ROP は通常、印刷デバイスコンテキストには使用できない。

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

解説

MaskBlt 関数は、指定したマスクとラスタ演算を使用して、ソースとコピー先のビットマップのカラーデータを結合する。

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

[備考]
MaskBlt 関数はデバイス依存ビットマップを使用する。hbmMask で指定されたマスク内の値 1 は、その位置で dwRop
で指定された前景ラスタ演算コードを適用すべきことを示す。マスク内の値 0 は、その位置で dwRop
で指定された背景ラスタ演算コードを適用すべきことを示す。ラスタ演算がソースを必要とする場合、マスク矩形はソース矩形を覆っていなければならない。そうでないと関数は失敗する。ラスタ演算がソースを必要としない場合、マスク矩形はコピー先矩形を覆っていなければならない。そうでないと関数は失敗する。この関数の呼び出し時にソースデバイスコンテキストに回転または剪断変換が有効だとエラーになる。ただし、他の種類の変換は許可される。ソース、パターン、コピー先のビットマップのカラー形式が異なる場合、この関数はパターンまたはソース形式(あるいは両方)をコピー先の形式に合わせて変換する。マスクビットマップがモノクロビットマップでない場合、エラーが発生する。拡張メタファイルを記録中にソースデバイスコンテキストが拡張メタファイルデバイスコンテキストを指している場合、エラーが発生し(関数は
FALSE を返す)関数は失敗する。すべてのデバイスが MaskBlt 関数をサポートしているわけではない。アプリケーションは
GetDeviceCaps 関数を nIndex パラメータを RC_BITBLT
として呼び出し、デバイスがこの関数をサポートしているかを判定する必要がある。マスクビットマップが指定されない場合、この関数は前景ラスタ演算コードを用いて
BitBlt と全く同じ動作をする。ICM: blit
が発生してもカラー管理は行われない。マルチモニタシステムで使用される場合、hdcSrc と hdcDest
は同じデバイスを参照していなければならず、そうでなければ関数は失敗する。異なるデバイスの DC
間でデータを転送するには、GetDIBits を呼び出してメモリビットマップ(互換ビットマップ、または DDB)を 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