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


Функция ExtDeviceMode (winspool.h)

Функция ExtDeviceMode предоставляется только для совместимости с 16-разрядными приложениями. Драйверы принтера без этого требования должны использовать функцию DocumentProperties, описанную в документации по Microsoft Windows SDK.

Функция 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 драйвера принтера. В противном случае для этого параметра можно задать одно или несколько следующих значений флага.

Flag Описание
DM_COPY Запишите текущие параметры драйвера в структуру DEVMODE, на которую указывает параметр pDevModeOutput . Вызывающее приложение должно выделить буфер, достаточно большой для хранения информации. Если этот флаг не задан, pDevModeOutput может иметь значение NULL.
DM_IN_BUFFER Объедините текущие параметры печати драйвера принтера с параметрами в структуре DEVMODE, на которую указывает параметр pDevModeInput . Это происходит перед запросом, копированием или обновлением. Функция обновляет структуру только для тех элементов, которые указаны в элементе dmFields структуры DEVMODE. В случае конфликта во время слияния параметры в структуре DEVMODE, на которую указывает pDevModeInput , переопределяют текущие параметры печати драйвера принтера.
DM_UPDATE Отображение страницы свойств, позволяющей пользователю изменять свойства принтера, а затем записывать текущие параметры драйвера "на пользователя" в куст пользователя в реестре.

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

Если параметр wMode равен нулю, функция возвращает размер в байтах структуры DEVMODE, необходимой для хранения данных инициализации драйвера принтера. Обратите внимание, что это значение может быть больше размера структуры DEVMODE, если драйвер принтера добавляет частные данные в структуру. Если функция отображает диалоговое окно инициализации, возвращается значение IDOK или IDCANCEL в зависимости от выбранной пользователем кнопки. Если функция не отображает диалоговое окно и выполнена успешно, возвращается значение IDOK. Возвращаемое значение меньше нуля, если функция завершилась сбоем.

Комментарии

Функция ExtDeviceMode вызывает функцию DocumentProperties (описанную в документации по Windows SDK) для отображения листа свойств, который позволяет пользователю выбрать параметры принтера, такие как размер бумаги, ориентация бумаги и качество вывода. Эта функция используется в драйверах принтеров, написанных для Windows 3.x и Windows 9x.

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть winspool.h (включая Winspool.h)
Библиотека Winspool.lib
DLL Winspool.drv