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


Функция DrvDeviceCapabilities (winddiui.h)

Функция DrvDeviceCapabilities в интерфейсе принтера dll возвращает запрошенные сведения о возможностях принтера.

Синтаксис

DWORD DrvDeviceCapabilities(
                 HANDLE   hPrinter,
  [in]           PWSTR    pszDeviceName,
                 WORD     Capability,
  [out]          PVOID    pOutput,
  [in, optional] PDEVMODE pDevmode
);

Параметры

hPrinter

Дескриптор принтера, предоставленный вызывающим абонентом.

[in] pszDeviceName

Предоставленный вызывающим элементом указатель на строку имени принтера.

Capability

Битовый флаг, предоставленный вызывающим абонентом, указывающий запрашиваемую информацию. Это может быть один из флагов, перечисленных в следующей таблице. (Флаги определены в файле заголовка Wingdi.h.)

Флаг Определение
DC_BINADJUST Не используется для операционных систем на основе NT.
DC_BINNAMES Параметр pOutput указывает на буфер, который функция должна заполнить массивом строковых буферов длиной 24 символа. Каждый строковый буфер в массиве должен содержать строку с расширенными символами, завершающуюся значением NULL, указывающую имя исходной ячейки бумаги. Возвращаемое значение функции должно быть числом элементов в возвращаемом массиве. Если pOutput имеет значение NULL, функция должна просто возвращать необходимое количество элементов массива.
DC_BINS Параметр pOutput указывает на буфер, который функция должна заполнить массивом WORD. Каждый элемент массива должен содержать константу с префиксом DMBIN (или настраиваемое значение), представляющую поддерживаемую ячейку источника бумаги. Возвращаемое значение функции должно быть числом элементов в возвращаемом массиве. Если pOutput имеет значение NULL, функция должна просто возвращать необходимое количество элементов массива.
DC_COLLATE Параметр pOutput не используется. Возвращаемое значение функции должно быть равно 1, если принтер поддерживает сортировку; В противном случае возвращаемое значение должно быть равно нулю.
DC_COLORDEVICE Параметр pOutput не используется. Возвращаемое значение функции должно быть равно 1, если принтер поддерживает цветную печать; В противном случае возвращаемое значение должно быть равно нулю.
DC_COPIES Параметр pOutput не используется. Возвращаемое значение функции должно быть максимальным числом копий, которые может поддерживать принтер.
DC_DATATYPE_PRODUCED Не используется для операционных систем на основе NT.
DC_DRIVER Параметр pOutput не используется. Возвращаемое значение функции должно быть членом dmDriverVersion внутренней структуры драйвера [DEVMODEW](/windows/win32/api/wingdi/ns-wingdi-devmodew).
DC_DUPLEX Параметр pOutput не используется. Возвращаемое значение функции должно быть равно 1, если принтер поддерживает дуплексную печать; В противном случае возвращаемое значение должно быть равно нулю.
DC_EMF_COMPLIANT Не используется для операционных систем на основе NT.
DC_ENUMRESOLUTIONS Параметр pOutput указывает на буфер, который функция должна заполнить массивом LONG. Для каждого разрешения, поддерживаемого принтером, функция должна возвращать два длинных слова (одно для измерения x и другое для измерения y ) разрешения в точках на дюйм. Возвращаемое значение функции должно быть числом поддерживаемых разрешений. Если pOutput имеет значение NULL, функция должна просто возвращать количество поддерживаемых разрешений.
DC_EXTRA Параметр pOutput не используется. Возвращаемое значение функции должно быть членом dmDriverExtra внутренней структуры драйвера [DEVMODEW](/windows/win32/api/wingdi/ns-wingdi-devmodew).
DC_FIELDS Параметр pOutput не используется. Возвращаемое значение функции должно быть членом dmFields внутренней структуры драйвера [DEVMODEW](/windows/win32/api/wingdi/ns-wingdi-devmodew). Член dmFields указывает, какие элементы в независимой от устройства части структуры DEVMODEW поддерживаются драйвером принтера.
DC_FILEDEPENDENCIES Параметр pOutput указывает на буфер, который функция должна заполнить массивом строковых буферов длиной 64 символа. Каждый строковый буфер в массиве должен содержать строку с расширенными символами, завершающуюся значением NULL, указывающую имя файла, который должен быть установлен вместе с драйвером. Возвращаемое значение функции должно быть числом элементов в возвращаемом массиве. Если pOutput имеет значение NULL, функция должна просто возвращать необходимое количество элементов массива.
DC_MANUFACTURER Не используется для операционных систем на основе NT.
DC_MAXEXTENT Параметр pOutput не используется. Функция должна возвращать структуру POINTS (описанную в документации по Microsoft Windows SDK). Структура должна содержать максимально допустимые значения для элементов dmPaperWidth (измерение x ) и dmPaperLength (измерение y ) структуры DEVMODEW принтера.
DC_MEDIAREADY Параметр pOutput указывает на буфер, который функция должна заполнить массивом строковых буферов длиной 64 символа. Каждый строковый буфер в массиве должен содержать строку с расширенными символами, завершающуюся значением NULL, указывающую имя бумажной формы, доступной для использования. Возвращаемое значение функции должно быть числом элементов в возвращаемом массиве. Если pOutput имеет значение NULL, функция должна просто возвращать необходимое количество элементов массива.
DC_MEDIATYPENAMES Параметр pOutput указывает на буфер, который функция должна заполнить массивом строковых буферов длиной 64 символа. Каждый строковый буфер в массиве должен содержать строку с расширенными символами, завершающуюся значением NULL, указывающую имя поддерживаемого типа мультимедиа. Возвращаемое значение функции должно быть числом элементов в возвращаемом массиве. Если pOutput имеет значение NULL, функция должна просто возвращать необходимое количество элементов массива.
DC_MEDIATYPES Параметр pOutput указывает на буфер, который функция должна заполнить массивом DWORD. Каждый элемент массива должен содержать константу с префиксом DMMEDIA (см. структуру [DEVMODEW](/windows/win32/api/wingdi/ns-wingdi-devmodew) или настраиваемое значение, представляющее поддерживаемый тип мультимедиа. Возвращаемое значение функции должно быть числом элементов в возвращаемом массиве. Если pOutput имеет значение NULL, функция должна просто возвращать необходимое количество элементов массива.
DC_MINEXTENT Параметр pOutput не используется. Функция должна возвращать структуру POINTS (описано в документации по Windows SDK). Структура должна содержать минимально допустимые значения для элементов dmPaperWidth (измерение x ) и dmPaperLength (измерение y ) структуры DEVMODEW принтера.
DC_MODEL Не используется для операционных систем на основе NT.
DC_NUP Параметр pOutput указывает на буфер, который функция должна заполнить массивом DWORD. Каждый элемент массива должен содержать целое число, представляющее параметр N-up (то есть каждое целое число должно представлять поддерживаемое количество страниц документов на физическую страницу). Возвращаемое значение функции должно быть числом элементов в возвращаемом массиве. Если pOutput имеет значение NULL, функция должна просто возвращать необходимое количество элементов массива.
DC_ORIENTATION Параметр pOutput не используется. Возвращаемым значением функции должно быть количество степеней поворота, необходимое для создания альбомной ориентации из книжной ориентации. Нулевое значение указывает, что альбомная ориентация не поддерживается.
DC_PAPERNAMES Параметр pOutput указывает на буфер, который функция должна заполнить массивом строковых буферов длиной 64 символа. Каждый строковый буфер в массиве должен содержать строку с расширенными символами, завершающуюся значением NULL, указывающую имя бумажной формы. Возвращаемое значение функции должно быть числом элементов в возвращаемом массиве. Если pOutput имеет значение NULL, функция должна просто возвращать необходимое количество элементов массива.
DC_PAPERS Параметр pOutput указывает на буфер, который функция должна заполнить массивом WORD. Каждый элемент массива должен содержать константу с префиксом DMPAPER (или настраиваемое значение), представляющую поддерживаемую форму бумаги. Возвращаемое значение функции должно быть числом элементов в возвращаемом массиве. Если pOutput имеет значение NULL, функция должна просто возвращать необходимое количество элементов массива.
DC_PAPERSIZE Параметр pOutput указывает на буфер, который функция должна заполнить массивом POINT. Каждый элемент массива должен содержать размеры x и y размера бумаги формы в единицах 0,1 мм в книжной ориентации. Возвращаемое значение функции должно быть числом элементов в возвращаемом массиве. Если pOutput имеет значение NULL, функция должна просто возвращать необходимое количество элементов массива.
DC_PERSONALITY Параметр pOutput указывает на буфер, который функция должна заполнить массивом строковых буферов длиной 32 символа. Каждый строковый буфер в массиве должен содержать строку с расширенными символами, завершающуюся null, задающую язык описания принтера, поддерживаемый принтером (например, L"HP-GL/2"). Возвращаемое значение функции должно быть числом элементов в возвращаемом массиве. Если pOutput имеет значение NULL, функция должна просто возвращать необходимое количество элементов массива.
DC_PRINTERMEM Параметр pOutput не используется. Возвращаемое значение функции должно быть целым числом, представляющим объем доступной памяти принтера в килобайтах.
DC_PRINTRATE Параметр pOutput не используется. Возвращаемое значение функции должно быть целым числом, представляющим скорость печати, в единицах, указанных для DC_PRINTRATEUNIT.
DC_PRINTRATEPPM Параметр pOutput не используется. Возвращаемое значение функции должно быть целым числом, представляющим скорость печати в страницах в минуту.
DC_PRINTRATEUNIT Параметр pOutput не используется. Возвращаемое значение функции должно определять единицы измерения, используемые для указания значения, возвращаемого для DC_PRINTRATE. Необходимо указать одну из следующих констант: PRINTRATEUNIT_PPM — страниц/мин. PRINTRATEUNIT_CPS — chars./sec. PRINTRATEUNIT_LPM — строки/мин. PRINTRATEUNIT_IPM - дюйм/мин.
DC_SIZE Параметр pOutput не используется. Возвращаемое значение функции должно быть членом dmSize внутренней структуры драйвера [DEVMODEW](/windows/win32/api/wingdi/ns-wingdi-devmodew).
DC_STAPLE Параметр pOutput не используется. Возвращаемое значение функции должно иметь значение TRUE , если принтер поддерживает скобы, и FALSE , если принтер не поддерживает скобы.
DC_TRUETYPE Параметр pOutput не используется. Возвращаемое значение функции может быть равно нулю, одному или нескольким из следующих флагов: DCTT_BITMAP: устройство может печатать шрифты TrueType в виде графики. DCTT_DOWNLOAD: устройство может принимать скачанные шрифты TrueType. DCTT_DOWNLOAD_OUTLINE: (только Windows 95/98/Me) Устройство может скачивать контурные шрифты TrueType. DCTT_SUBDEV. Устройство может заменить шрифты устройства шрифтами TrueType.
DC_VERSION Параметр pOutput не используется. Возвращаемое значение функции должно быть членом dmSpecVersion внутренней структуры драйвера [DEVMODEW](/windows/win32/api/wingdi/ns-wingdi-devmodew).

[out] pOutput

Предоставленный вызывающим объектом указатель на буфер для получения сведений, предоставляемых функцией. Использование буфера зависит от значения, полученного для параметра Capability .

[in, optional] pDevmode

Предоставленный вызывающим объектом указатель на структуру DEVMODEW , которая описывает текущие характеристики задания печати. Если этот параметр имеет значение NULL, DrvDeviceCapabilities извлекает текущие значения инициализации по умолчанию для указанного драйвера принтера, например пользовательская структура DEVMODEW очереди печати.

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

Возвращаемое значение функции зависит от значения, полученного для параметра Capability . Если полученное значение Capability представляет возможность, которую драйвер не поддерживает, или если возникла ошибка, функция должна вернуть GDI_ERROR.

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть winddiui.h (включая Winddiui.h)