Функция обратного вызова 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. Затем функция обратного вызова интерфейса принтера вызывает функцию обратного вызова пользовательского интерфейса. Если предоставляются несколько подключаемых модулей пользовательского интерфейса, функция обратного вызова каждого подключаемого модуля вызывается, в свою очередь, в том порядке, в котором установлены подключаемые модули.
Функция обратного вызова получает указатель на структуру CPSUICBPARAM. Элемент причины структуры определяет событие, вызвавшее вызываемую функцию обратного вызова. Функция также получает указатель на ту же OEMCUIPPARAM структуру, которая использовалась , когда метод IPrintOemUI::CommonUIProp указал адрес функции обратного вызова.
Структура CPSUICBPARAM pOptItem и элементы pCurItem определяют измененный параметр. Функция обратного вызова может использовать эти указатели, а также pOEMOptItems и cOEMOptItem члены структуры OEMCUIPPARAM, чтобы определить, является ли измененный параметр владельцем подключаемого модуля пользовательского интерфейса.
При вызове функции обратного вызова необходимо определить, влияет ли какая-либо из настраиваемых структур OPTITEM на указанный параметр Reason. Если они есть, функция должна обрабатывать затронутые параметры и возвращать одно из CPSUI_ACTION префиксированных возвращаемых значений, описанных для типа функции _CPSUICALLBACK. В противном случае он должен возвращать CPSUICB_ACTION_NONE.
Следующие дополнительные правила применяются к возвращаемым значениям функции обратного вызова:
Если Причина содержит CPSUICB_REASON_APPLYNOW, обратный вызов должен возвращать CPSUICB_ACTION_ITEMS_APPLIED или CPSUICB_ACTION_NO_APPLY_EXIT. В последнем случае интерфейс драйвера принтера немедленно возвращается в CPSUI без вызова функции обратного вызова подключаемого модуля пользовательского интерфейса.
Если Причина содержит любое значение, кроме CPSUICB_REASON_APPLYNOW, возвращаемое значение должно быть одним из следующих значений:
CPSUICB_ACTION_REINIT_ITEMS
CPSUICB_ACTION_OPTIF_CHANGED
CPSUICB_ACTION_NONE
Эти возвращаемые значения перечислены в порядке уменьшения приоритета. Если существуют несколько подключаемых модулей пользовательского интерфейса, библиотека DLL интерфейса принтера вызывает функцию обратного вызова каждого из них и сохраняет значение возвращаемого значения с наивысшим приоритетом, передавая его обратно в CPSUI.
Требования
Требование | Ценность |
---|---|
целевая платформа | Настольный |
заголовка | printoem.h (include Printoem.h, Compstui.h) |