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


Функция обратного вызова OEMCUIPCALLBACK (printoem.h)

Тип функции OEMCUIPCALLBACK используется для определения функций обратного вызова, которые задаются методом IPrintOemUI::CommonUIProp подключаемого модуля пользовательского интерфейса. Структура определена в файле printoem.h.

Синтаксис

OEMCUIPCALLBACK Oemcuipcallback;

LONG Oemcuipcallback(
  PCPSUICBPARAM unnamedParam1,
  POEMCUIPPARAM unnamedParam2
)
{...}

Параметры

unnamedParam1

Указатель на структуру CPSUICBPARAM .

unnamedParam2

Указатель на структуру OEMCUIPPARAM .

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

См. следующий раздел Примечаний.

Комментарии

Функция обратного вызова, определяемая методом IPrintOemUI::CommonUIProp , вызывается, когда пользователь изменяет лист свойств принтера. Функция обратного вызова предназначена для обработки пользовательских изменений настраиваемых элементов параметров.

При изменении элемента страницы свойств CPSUI вызывает библиотеку DLL интерфейса принтера драйвера принтера. Эта библиотека DLL содержит собственную функцию обратного вызова типа _CPSUICALLBACK, которая обрабатывает значения параметров, содержащиеся в собственных структурах OPTITEM. Затем функция обратного вызова DLL интерфейса принтера вызывает функцию обратного вызова подключаемого модуля пользовательского интерфейса. Если предоставляется несколько подключаемых модулей пользовательского интерфейса, функция обратного вызова каждого подключаемого модуля вызывается, в свою очередь, в том порядке, в котором были установлены подключаемые модули.

Функция обратного вызова получает указатель на структуру CPSUICBPARAM . Элемент Reason структуры идентифицирует событие, вызвавшее функцию обратного вызова. Функция также получает указатель на ту же структуру OEMCUIPPARAM , которая использовалась, когда метод IPrintOemUI::CommonUIProp указал адрес функции обратного вызова.

Элементы pOptItem и pCurItem структуры CPSUICBPARAM определяют измененный параметр. Функция обратного вызова может использовать эти указатели вместе с элементами pOEMOptItems и cOEMOptItem структуры OEMCUIPPARAM, чтобы определить, принадлежит ли измененный параметр подключаемого модуля пользовательского интерфейса.

При вызове функции обратного вызова она должна определить, влияет ли указанное значение Reason на какие-либо из ее настраиваемых структур OPTITEM. Если это так, функция должна обработать затронутые параметры и вернуть одно из возвращаемых значений с CPSUI_ACTION префиксом, описанных для типа функции _CPSUICALLBACK . В противном случае он должен вернуть CPSUICB_ACTION_NONE.

К возвращаемым значениям функции обратного вызова применяются следующие дополнительные правила:

  • Если аргумент Reason содержит CPSUICB_REASON_APPLYNOW, обратный вызов должен возвращать либо CPSUICB_ACTION_ITEMS_APPLIED, либо CPSUICB_ACTION_NO_APPLY_EXIT. В последнем случае интерфейс драйвера принтера немедленно возвращается в CPSUI без вызова функции обратного вызова подключаемого модуля пользователя.

  • Если аргумент Reason содержит любое значение, кроме CPSUICB_REASON_APPLYNOW, то возвращаемое значение должно быть одним из следующих:

    • CPSUICB_ACTION_REINIT_ITEMS

    • CPSUICB_ACTION_OPTIF_CHANGED

    • CPSUICB_ACTION_NONE

      Эти возвращаемые значения перечислены в порядке убывания приоритета. Если существует несколько подключаемых модулей пользовательского интерфейса, библиотека DLL интерфейса принтера вызывает функцию обратного вызова каждого из них и сохраняет возвращаемое значение с наивысшим приоритетом, передавая его обратно в CPSUI.

Требования

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