Изменение страницы листа свойств, предоставленного драйвером
Внимание
Современная платформа печати — это предпочтительный способ взаимодействия с принтерами Windows. Рекомендуется использовать драйвер класса "Входящие" Microsoft IPP вместе с приложениями поддержки печати (PSA), чтобы настроить возможности печати в Windows 10 и 11 для разработки устройств принтера.
Дополнительные сведения см. в статье "Современная платформа печати" и руководство по проектированию приложений поддержки печати.
Подключаемый модуль пользовательского интерфейса может изменять страницы листов свойств, предоставленных Unidrv или Pscript5, реализуя метод IPrintOemUI::CommonUIProp и функцию обратного вызова.
Подключаемый модуль пользовательского интерфейса использует метод IPrintOemUI::CommonUIProp, чтобы указать набор элементов параметров, которые CPSUI может добавлять, удалять или заменять на странице "Параметры устройства" листа свойств принтера или на страницах "Макет", "Бумага и качество" и "Дополнительно".
Функция обратного вызова типа OEMCUIPCALLBACK используется для обработки изменений пользователей для настраиваемых элементов параметров.
Добавление элементов параметров
Подключаемый модуль пользовательского интерфейса должен описать новые элементы параметров, поместив их в массив структур OPTITEM, предоставляемых драйвером. Библиотека DLL интерфейса принтера драйвера вызывает метод IPrintOemUI iPrintOemUI::CommonUIProp дважды. При первом вызове метода он должен возвращать необходимое количество структур OPTITEM. Драйвер выделяет пространство для массива OPTITEM и описывает массив в структуре OEMCUIPPARAM. Драйвер снова вызывает IPrintOemUI::CommonUIProp , предоставляя адрес структуры OEMCUIPPARAM, чтобы метод мог загружать структуры OPTITEM с описанием параметров.
Удаление элементов параметров
Чтобы удалить параметр с страницы листа свойств, предоставленной Unidrv или Pscript5, метод подключаемого модуля пользовательского интерфейса IPrintOemUI::CommonUIProp может пройти по массиву структур OPTITEM, на которые указывает структура OEMCUIPPARAM. Для каждого параметра, который вы хотите удалить из листа свойств, можно задать флаг OPTIF_HIDE структуры OPTITEM. (Обратите внимание, что этот параметр не удаляется; он скрывает параметр от пользователя, чтобы пользователь не может изменить значение по умолчанию.)
Замена элементов параметров
Чтобы заменить параметр на странице листа свойств, предоставленной Unidrv или Pscript, следуйте инструкциям, приведенным в предыдущем разделе "Удаление элементов параметров", чтобы удалить существующий элемент параметра, а затем следуйте инструкциям в предыдущем разделе "Добавление элементов параметров", чтобы создать новый элемент параметра для замены старого.
Обработка изменений в настраиваемых значениях параметров
Чтобы обработать изменения пользователей в настраиваемых элементах параметров, необходимо предоставить по крайней мере одну функцию обратного вызова. Можно указать одну функцию обратного вызова, которая обрабатывает параметры как листа свойств документа, так и листа свойств принтера, или можно указать отдельную функцию для каждой. Эти обратные вызовы имеют тип OEMCUIPCALLBACK.
Функция обратного вызова указывается путем размещения адреса в структуре OEMCUIPPARAM . Подключаемый модуль пользовательского интерфейса получает адрес этой структуры в качестве входных данных для метода IPrintOemUI::CommonUIProp.
Когда пользователь открывает лист свойств принтера или лист свойств документа и изменяет параметры, CPSUI вызывает библиотеку DLL интерфейса принтера драйвера принтера. Эта библиотека DLL обрабатывает значения параметров, содержащиеся в собственных структурах OPTITEM . Затем для каждого подключаемого модуля пользовательского интерфейса библиотека DLL интерфейса принтера вызывает функцию обратного вызова OEMCUIPCALLBACK, которая ранее была указана IPrintOemUI::CommonUIProp.