EngAssociateSurface-Funktion (winddi.h)

Die EngAssociateSurface-Funktion kennzeichnet eine bestimmte Oberfläche als zu einem angegebenen Gerät gehört.

Syntax

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

Parameter

hsurf

Handle mit der Oberfläche oder Bitmap, die hdev zugeordnet werden soll. Dieses Handle wurde von EngCreateBitmap oder EngCreateDeviceBitmap zurückgegeben.

hdev

Handle mit dem Gerät, dem die Oberfläche zugeordnet werden soll. Dies ist das von GDI erstellte Handle, das an die DrvCompletePDEV-Funktion des Treibers übergeben wurde.

flHooks

Gibt die Funktionen an, die der Treiber von GDI aus einbinden kann. Der Treiber muss die entsprechende Funktion für jedes Bit implementieren, das er in flHooks festlegt. Dieses Element ist ein bitweiser OR mit einem der folgenden Werte:

Flag Zu hakende Funktion
HOOK_ALPHABLEND

DrvAlphaBlend

HOOK_BITBLT

DrvBitBlt

HOOK_COPYBITS

DrvCopyBits

HOOK_FILLPATH

DrvFillPath

HOOK_GRADIENTFILL

DrvGradientFill

HOOK_LINETO

DrvLineTo

HOOK_MOVEPANNING Veraltet
HOOK_PAINT Veraltet
HOOK_PLGBLT

DrvPlgBlt

HOOK_STRETCHBLT

DrvStretchBlt

HOOK_STRETCHBLTROP

DrvStretchBltROP

HOOK_STROKEANDFILLPATH

DrvStrokeAndFillPath

HOOK_STROKEPATH

DrvStrokePath

HOOK_SYNCHRONIZE

DrvSynchronize oder DrvSynchronizeSurface (entweder oder beides)

HOOK_SYNCHRONIZEACCESS Veraltet
HOOK_TEXTOUT

DrvTextOut

HOOK_TRANSPARENTBLT

DrvTransparentBlt

Rückgabewert

Der Rückgabewert ist TRUE , wenn die Funktion erfolgreich ist. Andernfalls sollte der Treiber die Informationen an die GDI-Funktion senden, die er implementiert, und den Rückgabewert von GDI zurückgeben.

Hinweise

EngAssociateSurface kann von Druckertreibern verwendet werden, um "Regeln" oder Geräteschriftarten zu implementieren, oder von Anzeigetreibern, um spezielle blt-Hardware zu verwenden.

Wenn die von hsurf identifizierte Oberfläche eine Bitmap im Standardformat ist, kann der Treiber angeben, welche Ausgabefunktionen für die Oberfläche verarbeitet werden sollen, indem er Bits in flHooks festlegt. Durch festlegen von Bits in flHooks werden stattdessen bestimmte Ausgabefunktionen an den Treiber gesendet. Dies wird als Hooking bezeichnet. Wenn der Treiber keinen Aufruf einhakt, verwaltet GDI den Vorgang automatisch, wenn eine Bitmap im Standardformat gezeichnet wird.

Wenn die Oberfläche zugeordnet ist, wird von den Standardpaletten- und Stilschritten des PDEV ausgegangen. Eine Oberfläche muss zugeordnet sein, bevor sie von DrvEnableSurface zurückgegeben wird.

Wenn ein Treiber Gerätebits durch Die Implementierung von DrvCreateDeviceBitmap/DrvDeleteDeviceBitmap unterstützt, synchronisiert GDI Zeichnungsaufrufe nicht automatisch mit der Geräte-Bitmap und der primären Oberfläche. GDI kann z. B. die DrvBitBlt-Funktion des Treibers aufrufen, um auf eine Geräte-Bitmap zu zeichnen, während ein anderer Thread auf die primäre Oberfläche zeichnet, indem die Implementierung von DrvTextOut durch den Treiber ausgeführt wird. Der Treiber kann sogar aufgerufen werden, um gleichzeitig auf mehrere Geräte-Bitmaps zu zeichnen.

Nachdem DrvEnableSurface ein Handle an eine primäre Oberfläche zurückgegeben hat, rufen Sie EngAssociateSurface für dieses Handle nicht auf. Dies kann unter bestimmten Umständen zu einer Fehlerüberprüfung führen. Weitere Informationen finden Sie im Microsoft Knowledge Base-Artikel 330248.

Anforderungen

   
Unterstützte Mindestversion (Client) Verfügbar in Windows 2000 und höheren Versionen der Windows-Betriebssysteme.
Zielplattform Universell
Header winddi.h (einschließlich Winddi.h)
Bibliothek Win32k.lib
DLL Win32k.sys

Weitere Informationen

DrvBitBlt

DrvCompletePDEV

DrvCopyBits

DrvCreateDeviceBitmap

DrvDeleteDeviceBitmap

DrvEnableSurface

DrvFillPath

DrvLineTo

DrvStretchBlt

DrvStrokeAndFillPath

DrvStrokePath

DrvSynchronisieren

DrvSynchronizeSurface

DrvTextOut

EngModifySurface