EngAssociateSurface 関数は、指定したサーフェスを指定デバイスに属するものとしてマークする。
EngAssociateSurface hsurf, hdev, flHooks
hsurf : [intptr] hdev に関連付けるサーフェスまたはビットマップへのハンドル。このハンドルは EngCreateBitmap または EngCreateDeviceBitmap によって返されたものである。 hdev : [intptr] サーフェスを関連付けるデバイスへのハンドル。これはドライバの DrvCompletePDEV 関数に渡された GDI 作成のハンドルである。 flHooks : [int]
(プラグイン / モジュール : gdi32.dll)
EngAssociateSurface 関数は、指定したサーフェスを指定デバイスに属するものとしてマークする。 [戻り値] 関数が成功した場合、戻り値は TRUE となる。失敗した場合、ドライバは情報を実装中の GDI 関数へ送り、GDI の戻り値を返すべきである。 [備考] EngAssociateSurface は、プリンタドライバが「ルール」やデバイスフォントを実装したり、ディスプレイドライバが特殊な blt ハードウェアを利用するのに使用できる。hsurf が識別するサーフェスが標準フォーマットビットマップの場合、ドライバは flHooks のビットを設定して、自身が処理するサーフェスへの出力関数を指定できる。flHooks にビットを設定すると、特定の出力関数は代わりにドライバへ送られる。これはフッキングと呼ばれる。ドライバが呼び出しをフックしない場合、標準フォーマットビットマップに対する描画は GDI が自動的に管理する。サーフェスが関連付けられると、PDEV のデフォルトのパレットとスタイルステップを引き継ぐ。サーフェスは DrvEnableSurface から返される前に関連付けられていなければならない。デフォルトでは、ドライバが DrvCreateDeviceBitmap/DrvDeleteDeviceBitmap を実装してデバイスビットマップをサポートする場合、GDI はデバイスビットマップへの描画呼び出しとプライマリサーフェスへの描画呼び出しを自動的に同期しない。例えば GDI は、別のスレッドがドライバの DrvTextOut の実装を実行してプライマリサーフェスに描画している間に、ドライバの DrvBitBlt 関数を呼んでデバイスビットマップに描画することがある。ドライバは複数のデバイスビットマップに同時に描画するために呼ばれることもある。DrvEnableSurface がプライマリサーフェスへのハンドルを返した後、そのハンドルに対して EngAssociateSurface を呼んではならない。状況によってはバグチェックを引き起こす可能性がある。詳細は Microsoft Knowledge Base 記事 330248 を参照。
| プラグイン / モジュール | gdi32.dll |
| バージョン | 1.0 |
| 作成日 | 2026/04/16 |
| 著作者 | IronHSP / CsWin32 bridge |
| URL | https://github.com/inovia/IronHSP |
| 備考 | Win32 API の gdi32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。 |
| タイプ | 拡張命令 |
| グループ | Win32API |
| 対応環境 |
|
| hs ファイル | hsphelp\win32_gdi32_gen2.hs |