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 | |
HOOK_BITBLT | |
HOOK_COPYBITS | |
HOOK_FILLPATH | |
HOOK_GRADIENTFILL | |
HOOK_LINETO | |
HOOK_MOVEPANNING | Veraltet |
HOOK_PAINT | Veraltet |
HOOK_PLGBLT | |
HOOK_STRETCHBLT | |
HOOK_STRETCHBLTROP | |
HOOK_STROKEANDFILLPATH | |
HOOK_STROKEPATH | |
HOOK_SYNCHRONIZE |
DrvSynchronize oder DrvSynchronizeSurface (entweder oder beides) |
HOOK_SYNCHRONIZEACCESS | Veraltet |
HOOK_TEXTOUT | |
HOOK_TRANSPARENTBLT |
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 |