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