Функция EngAssociateSurface (winddi.h)
Функция EngAssociateSurface помечает заданную поверхность как принадлежащая указанному устройству.
Синтаксис
ENGAPI BOOL EngAssociateSurface(
HSURF hsurf,
HDEV hdev,
FLONG flHooks
);
Параметры
hsurf
Дескриптор поверхности или точечный рисунок, который будет связан с hdev. Этот дескриптор был возвращен EngCreateBitmap или EngCreateDeviceBitmap.
hdev
Дескриптор устройства, с которым должна быть связана поверхность. Это созданный GDI дескриптор, который был передан в функцию DrvCompletePDEV драйвера.
flHooks
Указывает функции, которые драйвер может перехватить из GDI. Драйвер должен реализовать соответствующую функцию для каждого бита, который он задает в flHooks. Этот элемент является побитовой или любого из следующих значений:
Flag | Функция для подключения |
---|---|
HOOK_ALPHABLEND | |
HOOK_BITBLT | |
HOOK_COPYBITS | |
HOOK_FILLPATH | |
HOOK_GRADIENTFILL | |
HOOK_LINETO | |
HOOK_MOVEPANNING | Устаревшие. |
HOOK_PAINT | Устаревшие. |
HOOK_PLGBLT | |
HOOK_STRETCHBLT | |
HOOK_STRETCHBLTROP | |
HOOK_STROKEANDFILLPATH | |
HOOK_STROKEPATH | |
HOOK_SYNCHRONIZE |
DrvSynchronize или DrvSynchronizeSurface (либо оба) |
HOOK_SYNCHRONIZEACCESS | Устаревшие. |
HOOK_TEXTOUT | |
HOOK_TRANSPARENTBLT |
Возвращаемое значение
Возвращаемое значение равно TRUE , если функция выполнена успешно. В противном случае драйвер должен отправить сведения в реализуемую функцию GDI и вернуть возвращаемое значение GDI.
Комментарии
EngAssociateSurface может использоваться драйверами принтера для реализации "правил" или шрифтов устройств, а также драйверами дисплея для использования специального оборудования blt.
Если поверхность, определяемая hsurf, является растровым изображением стандартного формата, драйвер может указать, какие функции вывода будут обрабатываться на поверхности, задавая биты в flHook. Задание битов в flHook приводит к отправке определенных выходных функций в драйвер. Это называется перехватчиком. Если драйвер не перехватывает вызов, GDI автоматически управляет операцией при рисовании растрового изображения стандартного формата.
При связывании поверхности предполагается, что используется палитра по умолчанию и шаги стиля PDEV. Поверхность должна быть связана перед тем, как она будет возвращена DrvEnableSurface.
По умолчанию, когда драйвер поддерживает растровые изображения устройства путем реализации DrvCreateDeviceBitmap/DrvDeleteDeviceBitmap, GDI не синхронизирует автоматически вызовы рисования с растровым изображением устройства и с основной поверхностью. Например, GDI может вызывать функцию DrvBitBlt драйвера для рисования на растровом рисунке устройства, в то время как другой поток рисует на основную поверхность, выполняя реализацию Драйвера DrvTextOut. Драйвер можно даже вызвать для одновременного рисования на нескольких точечных изображениях устройства.
После того как DrvEnableSurface вернет дескриптор основной поверхности, не вызывайте EngAssociateSurface для этого дескриптора. Это может привести к ошибке проверка в определенных обстоятельствах. Дополнительные сведения см. в статье базы знаний Майкрософт 330248.
Требования
Минимальная версия клиента | Доступно в Windows 2000 и более поздних версиях операционных систем Windows. |
Целевая платформа | Универсальное |
Верхняя часть | winddi.h (включая Winddi.h) |
Библиотека | Win32k.lib |
DLL | Win32k.sys |