Функция ExtDeviceMode (winspool.h)
Функция ExtDeviceMode предоставляется только для совместимости с 16-разрядными приложениями. Драйверы принтера без этого требования должны использовать функцию DocumentProperties, описанную в документации по пакету SDK для Microsoft Windows.
Функция ExtDeviceMode извлекает или изменяет сведения о инициализации принтера для заданного графического драйвера или отображает лист свойств конфигурации принтера драйвера для указанного принтера.
Синтаксис
LONG ExtDeviceMode(
[in, optional] HWND hWnd,
[in, optional] HANDLE hInst,
[in, out] LPDEVMODEA pDevModeOutput,
[in, optional] LPSTR pDeviceName,
[in, optional] LPSTR pPort,
[in, optional] LPDEVMODEA pDevModeInput,
[in, optional] LPSTR pProfile,
DWORD fMode
);
Параметры
[in, optional] hWnd
Обработайте родительское окно для листа свойств конфигурации принтера.
[in, optional] hInst
Не используется. Обработка экземпляра модуля драйвера устройства.
[in, out] pDevModeOutput
Указатель на структуру DEVMODE, которая получает данные конфигурации принтера, предоставленные в буфере, на который указывает параметр pDevModeInput.
[in, optional] pDeviceName
Указатель на строку, завершающую значение NULL, содержащую имя устройства, для которого отображается лист свойств конфигурации принтера.
[in, optional] pPort
Указатель на строку, завершающую значение NULL, содержащую имя порта, к которому подключено устройство, например LPT1.
[in, optional] pDevModeInput
Указатель на структуру DEVMODE, которую операционная система использует для инициализации полей листа свойств.
Этот параметр используется только в том случае, если флаг DM_IN_BUFFER задан в параметре fMode. Если DM_IN_BUFFER не задано, операционная система использует структуру DEVMODE принтера по умолчанию.
[in, optional] pProfile
Не используется. Указатель на строку, завершающую значение NULL, содержащую имя файла инициализации, из которого записываются и считываются сведения о инициализации.
fMode
Указывает операции, выполняемые функцией. Если этот параметр равен нулю, функция ExtDeviceMode возвращает количество байтов, необходимых структуре DEVMODE драйвера принтера. В противном случае этот параметр можно задать для одного или нескольких следующих значений флагов.
Флаг | Описание |
---|---|
DM_COPY | Напишите текущие параметры драйвера в структуру DEVMODE, на которую указывает параметр pDevModeOutput. Вызывающее приложение должно выделить буфер достаточно большой, чтобы содержать сведения. Если этот флаг не задан, pDevModeOutput может быть значение NULL. |
DM_IN_BUFFER | Объедините текущие параметры печати драйвера принтера с параметрами структуры DEVMODE, на которые указывает параметр pDevModeInput. Это происходит перед запросом, копированием или обновлением. Функция обновляет структуру только для этих элементов, указанных элементом dmField s структуры DEVMODE. В случае конфликта во время слияния параметры в структуре DEVMODE, на которые указывает pDevModeInput переопределить текущие параметры печати драйвера принтера. |
DM_UPDATE | Отображение листа свойств, чтобы разрешить пользователю изменять свойства принтера, а затем записывать текущие параметры драйвера на пользователя в куст пользователя в реестре. |
Возвращаемое значение
Если параметр wMode равен нулю, функция возвращает размер в байтах структуры DEVMODE, необходимой для хранения данных инициализации драйвера принтера. Обратите внимание, что это значение может быть больше размера структуры DEVMODE, если драйвер принтера добавляет к структуре частные данные. Если функция отображает диалоговое окно инициализации, возвращаемое значение — IDOK или IDCANCEL, в зависимости от кнопки, выбранной пользователем. Если функция не отображает диалоговое окно и успешно выполнена, возвращается значение IDOK. Возвращаемое значение меньше нуля, если функция завершилась ошибкой.
Замечания
Функция ExtDeviceMode вызывает функцию DocumentProperties (описанную в документации по пакету SDK для Windows) для отображения листа свойств, позволяющего пользователю выбирать параметры принтера, такие как размер бумаги, ориентация бумаги и качество вывода. Драйверы принтера, написанные для Windows 3.x и Windows 9x, используют эту функцию.
Требования
Требование | Ценность |
---|---|
целевая платформа | Настольный |
заголовка | winspool.h (include Winspool.h) |
библиотеки | Winspool.lib |
DLL | WinSpool.drv |