EngAssociateSurface

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
URLhttps://github.com/inovia/IronHSP
備考Win32 API の gdi32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_gdi32_gen2.hs