次の方法で共有


EngAssociateSurface 関数 (winddi.h)

EngAssociateSurface 関数は、指定したサーフェスを指定したデバイスに属するものとしてマークします。

構文

ENGAPI BOOL EngAssociateSurface(
  HSURF hsurf,
  HDEV  hdev,
  FLONG flHooks
);

パラメーター

hsurf

hdev に関連付けるサーフェスまたはビットマップへのハンドル。 このハンドルは 、EngCreateBitmap または EngCreateDeviceBitmap によって返されました。

hdev

サーフェスを関連付けるデバイスへのハンドル。 これは、ドライバーの DrvCompletePDEV 関数に渡された GDI で作成されたハンドルです。

flHooks

ドライバーが GDI からフックできる関数を指定します。 ドライバーは 、flHook で設定するすべてのビットに対応する関数を実装する必要があります。 このメンバーは、次のいずれかの値のビットごとの OR です。

フラグ フックする関数
HOOK_ALPHABLEND

DrvAlphaBlend

HOOK_BITBLT

DrvBitBlt

HOOK_COPYBITS

DrvCopyBits

HOOK_FILLPATH

DrvFillPath

HOOK_GRADIENTFILL

DrvGradientFill

HOOK_LINETO

DrvLineTo

HOOK_MOVEPANNING 古い
HOOK_PAINT 古い
HOOK_PLGBLT

DrvPlgBlt

HOOK_STRETCHBLT

DrvStretchBlt

HOOK_STRETCHBLTROP

DrvStretchBltROP

HOOK_STROKEANDFILLPATH

DrvStrokeAndFillPath

HOOK_STROKEPATH

DrvStrokePath

HOOK_SYNCHRONIZE

DrvSynchronize または DrvSynchronizeSurface (またはその両方)

HOOK_SYNCHRONIZEACCESS 古い
HOOK_TEXTOUT

DrvTextOut

HOOK_TRANSPARENTBLT

DrvTransparentBlt

戻り値

関数が成功した場合、戻り値は TRUE です。 それ以外の場合、ドライバーは、実装している GDI 関数に情報を送信し、GDI の戻り値を返す必要があります。

解説

EngAssociateSurface は、プリンター ドライバーで "ルール" またはデバイス フォントを実装したり、ディスプレイ ドライバーで特別な blt ハードウェアを使用したりするために使用できます。

hsurf によって識別されるサーフェスが標準形式ビットマップの場合、ドライバーは flHooks でビットを設定することで、処理するサーフェスに対する出力関数を指定できます。 flHooks でビットを設定すると、代わりに特定の出力関数がドライバーに送信されます。 これはフックと呼ばれます。 ドライバーが呼び出しをフックしない場合、GDI は、標準の形式のビットマップが描画されているときに操作を自動的に管理します。

サーフェスを関連付けると、 PDEV の既定のパレットステップとスタイル ステップが想定されます。 DrvEnableSurface によって返される前に、サーフェスを関連付ける必要があります。

既定では、ドライバーが DrvCreateDeviceBitmapDrvDeleteDeviceBitmap/ を実装してデバイス ビットマップをサポートしている場合、GDI はデバイス ビットマップとプライマリ サーフェスへの描画呼び出しを自動的に同期しません。 たとえば、GDI はドライバーの DrvBitBlt 関数を呼び出してデバイス ビットマップに描画し、別のスレッドは ドライバーの DrvTextOut の実装を実行してプライマリ サーフェスに描画します。 ドライバーを呼び出して、同時に複数のデバイス ビットマップに描画することもできます。

DrvEnableSurface がプライマリ サーフェスにハンドルを返した後、そのハンドルで EngAssociateSurface を呼び出さないでください。 これにより、特定の状況でバグチェックが発生する可能性があります。 詳細については、 Microsoft サポート技術情報の記事「330248」を参照してください。

要件

   
サポートされている最小のクライアント Windows 2000 以降のバージョンの Windows オペレーティング システムで使用できます。
対象プラットフォーム ユニバーサル
Header winddi.h (Winddi.h を含む)
Library Win32k.lib
[DLL] Win32k.sys

関連項目

DrvBitBlt

DrvCompletePDEV

DrvCopyBits

DrvCreateDeviceBitmap

DrvDeleteDeviceBitmap

DrvEnableSurface

DrvFillPath

DrvLineTo

DrvStretchBlt

DrvStrokeAndFillPath

DrvStrokePath

DrvSynchronize

DrvSynchronizeSurface

DrvTextOut

EngModifySurface