EngCreateBitmap 関数 (winddi.h)
EngCreateBitmap 関数は、GDI がビットマップを作成および管理することを要求します。
構文
ENGAPI HBITMAP EngCreateBitmap(
SIZEL sizl,
LONG lWidth,
[in] ULONG iFormat,
[in] FLONG fl,
[in] PVOID pvBits
);
パラメーター
sizl
作成するビットマップの幅と高さをピクセル単位でメンバーに含む SIZEL 構造体を指定します。 SIZEL 構造体は SIZE 構造体と 同じです。
pvBits が NULL でない場合、この値はデバイスに表示されているすべてのピクセルを表し、デバイスが画面外のメモリを保持できるようにします。
lWidth
ビットマップの割り当て幅を指定します。これは、1 つのスキャン行を下に移動するためにポインターに追加する必要があるバイト数です。
[in] iFormat
必要なピクセルあたりの色情報のビット数の観点からビットマップの形式を指定します。 このパラメーターには、次のいずれかの値を指定できます。
値 | 説明 |
---|---|
BMF_1BPP | 白黒 |
BMF_4BPP | ピクセルあたり 4 ビット |
BMF_8BPP | ピクセルあたり 8 ビット |
BMF_16BPP | ピクセルあたり 16 ビット |
BMF_24BPP | 1 ピクセルあたり 24 ビット |
BMF_32BPP | ピクセルあたり 32 ビット |
BMF_4RLE | ピクセルあたり 4 ビット。エンコードされた実行長 |
BMF_8RLE | ピクセルあたり 8 ビット。エンコードされた実行長 |
[in] fl
作成するビットマップに関するプロパティを指定するビットマスクです。 このパラメーターには、0 または次の値の任意の組み合わせを指定できます。
値 | 説明 |
---|---|
BMF_NOZEROINIT | GDI は、割り当て時にビットマップをゼロ初期化しません。 このフラグは、 pvBits が NULL の場合にのみチェックされます。 |
BMF_TOPDOWN | 最初のスキャン行は、ビットマップの上部を表します。 既定では、標準形式のビットマップの下部に最初のスキャン行があることに注意してください。 |
BMF_USERMEM | GDI は、ユーザー メモリからビットマップのメモリを割り当てます。 既定では、メモリはカーネルのアドレス空間から割り当てられます。 このフラグは、作成されるビットマップが他のプロセスで使用されない場合にのみ指定する必要があります。 プリンター ドライバーによってユーザー メモリを EngWritePrinter に渡すことはできません。 |
[in] pvBits
作成するビットマップの最初のスキャン行へのポインター。 このパラメーターが NULL の場合、GDI はビットマップのピクセルの記憶域を割り当てます。 pvBits が NULL でない場合は、ビットマップのバッファーへのポインターです。
戻り値
関数が正常に完了した場合、戻り値は作成されたビットマップを識別するハンドルです。 それ以外の場合、戻り値は 0 です。 EngCreateBitmap はエラー コードをログに記録しません。
解説
ビットマップのストレージは、必要に応じてドライバーによって提供できます。
ドライバーは、DrvEnableSurface から戻る前に EngAssociateSurface を呼び出して、作成したビットマップをサーフェスとして関連付ける必要があります。
必要なくなったら、 EngDeleteSurface を使用してビットマップを削除する必要があります。
フレーム バッファー ディスプレイ ドライバーでは pvBits パラメーターを使用する必要があります。これにより、GDI はほとんどの描画をディスプレイに直接実行できます。
要件
サポートされている最小のクライアント | Windows 2000 以降のバージョンの Windows オペレーティング システムで使用できます。 |
対象プラットフォーム | ユニバーサル |
Header | winddi.h (Winddi.h を含む) |
Library | Win32k.lib |
[DLL] | Win32k.sys |