Поделиться через


Метод IPrintOemPS::EnableDriver (prcomoem.h)

Метод IPrintOemPS::EnableDriver позволяет подключаемого модуля отрисовки для Pscript подключить некоторые графические функции DDI.

Синтаксис

HRESULT EnableDriver(
  DWORD          DriverVersion,
  DWORD          cbSize,
  PDRVENABLEDATA pded
);

Параметры

DriverVersion

Номер версии интерфейса, предоставленного вызывающим абонентом. Это значение определяется PRINTER_OEMINTF_VERSION в файле printoem.h.

cbSize

Предоставленный вызывающим элементом размер в байтах структуры, на которую указывает pded.

pded

Предоставленный вызывающим указателем на структуру DRVENABLEDATA .

Возвращаемое значение

Метод должен возвращать одно из следующих значений:

Код возврата Описание
S_OK Операция успешно выполнена.
E_FAIL Сбой операции
E_NOTIMPL Метод не реализован.

Комментарии

Метод IPrintOemPS::EnableDriver позволяет подключаемому модулем отрисовки выполнять те же типы операций, что и функция DrvEnableDriver , экспортируемая библиотеками DLL графики принтера.

Как и функция DrvEnableDriver , метод IPrintOemPS::EnableDriver отвечает за предоставление адресов внутренне поддерживаемых графических функций DDI, известных как функции перехватчика. Он также может выполнять другие одноразовые операции инициализации. В отличие от функции DrvEnableDriver , реализация метода IPrintOemPS::EnableDriver является необязательной.

При реализации IPrintOemPS::EnableDriver необходимо также реализовать IPrintOemPS::D isableDriver. Действия, начатые в первом методе, может потребоваться выполнить в последнем методе. Например, если большой буфер выделен в IPrintOemPS::EnableDriver, но не освобожден в IPrintOemPS::D isableDriver, может произойти утечка памяти.

Метод должен заполнить предоставленную структуру DRVENABLEDATA и выделить массив структур DRVFN . Он должен заполнить массив указателями на функции подключения, а также определяемыми winddi.h значениями индекса, которые идентифицируют отключенные графические функции DDI.

Подключаемый модуль отрисовки для Pscript5 может подключить графическую функцию DDI, только если драйвер Pscript5 определяет функцию. Следующие графические функции DDI определены в Pscript5 и Или Unidrv и поэтому могут быть подключены:

Если вы предоставляете настраиваемую функцию перехватчика, она вытесняет эквивалентную графическую функцию DDI драйвера. Функции подключения также могут вызывать графические функции DDI драйвера. Дополнительные сведения см. в разделе Настраиваемые графические функции DDI.

Настраиваемые функции перехватчика имеют те же входные и выходные параметры, что и эквивалентная графическая функция DDI, за одним исключением : графические функции DDI получают указатели PDEV, а настраиваемые функции перехватчика — указатели DEVOBJ . Эти функции могут получать указатели PDEV двумя способами.

  1. Как содержимое элемента dhpdev структуры SURFOBJ для целевой поверхности. Для эквивалентной настраиваемой функции перехватчика член dhpdev целевой структуры SURFOBJ указывает на структуру DEVOBJ и должен быть приведен к типу PDEVOBJ при ссылке. Пример графической функции DDI — DrvBitBlt.

  2. В качестве входного аргумента для параметра dhpdev . Эквивалентная настраиваемая функция перехватчика должна привести этот входной параметр к типу PDEVOBJ при ссылке на него. Пример графической функции DDI — DrvDitherColor.

Хотя библиотека DLL графического принтера включает адреса своих функций DrvEnablePDEV, DrvDisablePDEV и DrvResetPDEV в структуре DRVENABLEDATA, подключаемый модуль отрисовки для Pscript5 реализует EnablePDEV, DisablePDEV и ResetPDEV как методы интерфейса IPrintOemPS и не помещает их адреса в структуру DRVENABLEDATA.

Если методы IPrintOemPS::EnableDriver экспортируются с помощью нескольких подключаемых модулей отрисовки, методы вызываются в том порядке, в который эти подключаемые модули указаны для установки.

Каждую графическую функцию DDI можно подключить с помощью одного подключаемого модуля отрисовки. Если несколько подключаемых модулей пытаются подключить одну и ту же графическую функцию DDI, все перехватчики после первого не учитываются.

Дополнительные сведения о создании и установке подключаемых модулей отрисовки см. в статье Настройка драйверов принтеров Майкрософт.

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть prcomoem.h (включая Prcomoem.h)