Метод IPrintOemUni::D riverDMS (prcomoem.h)
Метод IPrintOemUni::DriverDMS
позволяет подключаемый модуль отрисовки для Unidrv указать, что он использует поверхность рисования, управляемую устройством.
Синтаксис
HRESULT DriverDMS(
PVOID pDevObj,
PVOID pBuffer,
DWORD cbSize,
PDWORD pcbNeeded
);
Параметры
pDevObj
Предоставленный вызывающим объектом указатель на структуру DEVOBJ .
pBuffer
Предоставленный вызывающим объектом указатель на буфер для получения флагов, заданных методом. (См. следующий раздел примечаний.)
cbSize
Размер буфера, на который указывает pBuffer, предоставленный вызывающим объектом ( в байтах).
pcbNeeded
Предоставленный вызывающим абонентом указатель на расположение для получения необходимого минимального размера pBuffer .
Возвращаемое значение
Метод должен возвращать одно из следующих значений.
Код возврата | Описание |
---|---|
|
Операция успешно выполнена. |
|
Сбой операции |
Комментарии
Подключаемый модуль отрисовки для Unidrv должен реализовывать IPrintOemUni::DriverDMS
метод . Метод будет вызываться только в том случае, если Unidrv найдет допустимый указатель интерфейса на подключаемый модуль отрисовки изготовителя оборудования.
Метод IPrintOemUni::DriverDMS
позволяет подключаемый модуль отрисовки указать, что он будет использовать управляемую устройством поверхность рисования вместо поверхности, управляемой GDI по умолчанию.
Метод должен указывать HOOK_ флаги с префиксом в буфере, на который указывает pBuffer, указывая, какие из графических функций подключения DDI подключаемого модуля должны вызываться для поверхности рисования. Флаги с префиксом HOOK_ определены в файле winddi.h и описаны в описании функции EngAssociateSurface . Флаги, указанные параметром , IPrintOemUni::DriverDMS
передаются Unidrv в EngAssociateSurface. (Обратите внимание, что для поддержки управляемой устройством поверхности подключаемый модуль отрисовки должен подключать все функции рисования.) Дополнительные сведения см. в статье Обработка поверхностей Device-Managed.
Если IPrintOemUni::DriverDMS
задает флаги в буфере, на который указывает pBuffer, Unidrv создает управляемую устройством поверхность, вызывая EngCreateDeviceSurface. Если IPrintOemUni::DriverDMS
флаги не заданы, Unidrv создает поверхность, управляемую GDI, вызывая EngCreateBitmap. В любом из этих случаев IPrintOemUni::DriverDMS
должен возвращать S_OK.
Если размер выходного буфера, заданный параметром cbSize , слишком мал, метод должен указать необходимый размер в расположении, на которое указывает pcbNeeded, вызвать Метод SetLastError(ERROR_INSUFFICIENT_BUFFER) и вернуть E_FAIL.
Требования
Требование | Значение |
---|---|
Целевая платформа | Персональный компьютер |
Верхняя часть | prcomoem.h (включая Prcomoem.h) |