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


Функция 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