Функция DeviceCapabilitiesA (wingdi.h)
Функция DeviceCapabilities извлекает возможности драйвера принтера.
Синтаксис
int DeviceCapabilitiesA(
[in] LPCSTR pDevice,
[in] LPCSTR pPort,
[in] WORD fwCapability,
[out] LPSTR pOutput,
[in] const DEVMODEA *pDevMode
);
Параметры
[in] pDevice
Указатель на строку, завершающуюся нулевым значением, которая содержит имя принтера. Обратите внимание, что это имя принтера, а не драйвера принтера.
[in] pPort
Указатель на строку, завершающуюся нулевым значением, которая содержит имя порта, к которому подключено устройство, например LPT1.
[in] fwCapability
Возможности для запроса. Этот параметр может принимать одно из указанных ниже значений.
Значение | Значение |
---|---|
|
Извлекает имена бумажных контейнеров принтера. Буфер pOutput получает массив строковых буферов. Каждый строковый буфер имеет длину 24 символа и содержит имя бумажной корзины. Возвращаемое значение указывает количество записей в массиве. Строки имен заканчиваются нулевым значением, если только имя не содержит 24 символа. Если pOutput имеет значение NULL, возвращаемое значение — это необходимое количество записей в ячейке. |
|
Извлекает список доступных бумажных ячеек. Буфер pOutput получает массив значений WORD , указывающих доступные источники бумаги для принтера. Возвращаемое значение указывает количество записей в массиве. Список возможных значений массива см. в описании элемента dmDefaultSource структуры DEVMODE . Если pOutput имеет значение NULL, возвращаемое значение указывает необходимое количество записей в массиве. |
|
Если принтер поддерживает сортировку, возвращаемое значение равно 1; в противном случае возвращаемое значение равно нулю. Параметр pOutput не используется. |
|
Если принтер поддерживает цветную печать, возвращаемое значение равно 1; в противном случае возвращаемое значение равно нулю. Параметр pOutput не используется. |
|
Возвращает количество копий, которые устройство может распечатать. |
|
Возвращает номер версии драйвера принтера. |
|
Если принтер поддерживает двустороннюю печать, возвращается значение 1; в противном случае возвращаемое значение равно нулю. Параметр pOutput не используется. |
|
Возвращает список разрешений, поддерживаемых принтером. Буфер pOutput получает массив значений LONG . Для каждого поддерживаемого разрешения массив содержит пару значений LONG , указывающих размеры x и y разрешения в точках на дюйм. Возвращаемое значение указывает количество поддерживаемых разрешений. Если pOutput имеет значение NULL, возвращаемое значение указывает количество поддерживаемых разрешений. |
|
Возвращает количество байтов, необходимых для конкретного устройства части структуры DEVMODE для драйвера принтера. |
|
Возвращает элемент dmFields структуры DEVMODE драйвера принтера. Элемент dmFields указывает, какие элементы в аппаратно-независимой части структуры поддерживаются драйвером принтера. |
|
Извлекает имена всех дополнительных файлов, которые необходимо загрузить при установке драйвера. Буфер pOutput получает массив строковых буферов. Каждый буфер строки содержит 64 символа и содержит имя файла. Возвращаемое значение указывает количество записей в массиве. Строки имен заканчиваются нулевым значением, если только имя не содержит 64 символа. Если pOutput имеет значение NULL, возвращаемым значением является количество файлов. |
|
Возвращает максимальный размер бумаги, который могут указывать члены dmPaperLength и dmPaperWidth структуры DEVMODE драйвера принтера. LOWORD возвращаемого значения содержит максимальное значение dmPaperWidth , а HIWORD — максимальное значение dmPaperLength . |
|
Извлекает имена бумажных форм, которые в настоящее время доступны для использования. Буфер pOutput получает массив строковых буферов. Каждый строковый буфер имеет длину 64 символа и содержит имя бумажной формы. Возвращаемое значение указывает количество записей в массиве. Строки имен заканчиваются нулевым значением, если только имя не содержит 64 символа. Если pOutput имеет значение NULL, возвращаемое значение равно количеству бумажных форм. |
|
Извлекает имена поддерживаемых типов мультимедиа. Буфер pOutput получает массив строковых буферов. Каждый строковый буфер длиной 64 символа содержит имя поддерживаемого типа мультимедиа. Возвращаемое значение указывает количество записей в массиве. Строки завершаются нулевым значением, если имя не содержит 64 символа. Если pOutput имеет значение NULL, возвращаемое значение — это необходимое количество имен типов мультимедиа. |
|
Получает список поддерживаемых типов мультимедиа. Буфер pOutput получает массив значений DWORD, указывающих поддерживаемые типы мультимедиа. Возвращаемое значение указывает количество записей в массиве. Список возможных значений массива см. в описании элемента dmMediaType структуры DEVMODE . Если pOutput имеет значение NULL, возвращаемое значение указывает необходимое количество записей в массиве. |
|
Возвращает минимальный размер бумаги, который могут указывать члены dmPaperLength и dmPaperWidth структуры DEVMODE драйвера принтера. LOWORD возвращаемого значения содержит минимальное значение dmPaperWidth , а HIWORD — минимальное значение dmPaperLength . |
|
Возвращает связь между книжной и альбомной ориентацией для устройства с точки зрения количества градусов поворота книжной ориентации против часовой стрелки для создания альбомной ориентации. Может возвращаться одно из следующих значений:
|
|
Извлекает массив целых чисел, указывающих, что принтер может печатать несколько страниц документа на каждую печатаемую страницу. Буфер pOutput получает массив значений DWORD . Каждое значение представляет поддерживаемое количество страниц документа на каждую печатаемую страницу. Возвращаемое значение указывает количество записей в массиве. Если pOutput имеет значение NULL, возвращаемое значение указывает необходимое количество записей в массиве. |
|
Возвращает список поддерживаемых названий документов (например, Letter или Legal). Буфер pOutput получает массив строковых буферов. Каждый строковый буфер имеет длину 64 символа и содержит имя бумажной формы. Возвращаемое значение указывает количество записей в массиве. Строки имен заканчиваются нулевым значением, если только имя не содержит 64 символа. Если pOutput имеет значение NULL, возвращаемое значение равно количеству бумажных форм. |
|
Извлекает список поддерживаемых размеров бумаги. Буфер pOutput получает массив значений WORD , указывающих доступные размеры бумаги для принтера. Возвращаемое значение указывает количество записей в массиве. Список возможных значений массива см. в описании элемента dmPaperSize структуры DEVMODE . Если pOutput имеет значение NULL, возвращаемое значение указывает необходимое количество записей в массиве. |
|
Извлекает размеры в десятых миллиметрах каждого поддерживаемого размера бумаги. Буфер pOutput получает массив структур POINT . Каждая структура содержит ширину (x-измерение) и длину (размерность y) размера бумаги, как если бы бумага находилась в DMORIENT_PORTRAIT ориентации. Возвращаемое значение указывает количество записей в массиве. |
|
Возвращает список языков описания принтера, поддерживаемых принтером. Буфер pOutput получает массив строковых буферов. Каждый буфер содержит 32 символа и содержит имя языка описания принтера. Возвращаемое значение указывает количество записей в массиве. Строки имен завершаются null, если только имя не имеет длину 32 символа. Если pOutput имеет значение NULL, возвращаемое значение указывает необходимое количество записей массива. |
|
Возвращаемое значение — это объем доступной памяти принтера в килобайтах. Параметр pOutput не используется. |
|
Возвращаемое значение указывает скорость печати принтера. Значение, возвращаемое для DC_PRINTRATEUNIT , указывает единицы DC_PRINTRATE значения. Параметр pOutput не используется. |
|
Возвращаемое значение указывает скорость печати принтера в страницах в минуту. Параметр pOutput не используется. |
|
Возвращаемое значение является одним из следующих значений, которые указывают единицы скорости печати для значения, возвращаемого для флага DC_PRINTRATE . Параметр pOutput не используется.
|
|
Возвращает элемент dmSize структуры DEVMODE драйвера принтера. |
|
Если принтер поддерживает скрепку, возвращаемое значение не равно нулю; в противном случае возвращаемое значение равно нулю. Параметр pOutput не используется. |
|
Извлекает возможности драйвера использовать шрифты TrueType. Для DC_TRUETYPE параметр pOutput должен иметь значение NULL. Возвращаемое значение может быть одним или несколькими из следующих значений:
|
|
Возвращает версию спецификации, которой соответствует драйвер принтера. |
[out] pOutput
Указатель на массив. Формат массива зависит от параметра fwCapability . Ознакомьтесь с каждой из приведенных выше возможностей, чтобы узнать, что возвращается, если pOutput имеет значение NULL.
[in] pDevMode
Указатель на структуру DEVMODE . Если этот параметр имеет значение NULL, DeviceCapabilities получает текущие значения инициализации по умолчанию для указанного драйвера принтера. В противном случае функция извлекает значения, содержащиеся в структуре, на которую указывает pDevMode .
Возвращаемое значение
Если функция выполнена успешно, возвращаемое значение зависит от параметра fwCapability . Возвращаемое значение, равное нулю, обычно указывает на то, что, хотя функция успешно завершена, произошел сбой определенного типа, например возможность, которая не поддерживается. Дополнительные сведения см. в описаниях значений fwCapability .
Если функция возвращает значение -1, это может означать, что эта возможность не поддерживается, или произошел общий сбой функции.
Комментарии
Если драйвер принтера поддерживает пользовательские возможности устройства, драйвер должен вызывать функцию SetPrinterData для каждой пользовательской возможности. Функция SetPrinterData добавляет соответствующие данные принтера в систему печати, что позволяет 32-разрядным приложениям получать доступ к пользовательским возможностям в 64-разрядных установках Windows.
Для каждой пользовательской возможности необходимо сначала добавить данные принтера, описывающие тип возможности. Для этого при вызове SetPrinterData задайте для строки pValueNameзначение CustomDeviceCapabilityType_Xxx, где "Xxx" — шестнадцатеричное представление возможности. Например, у вас может быть "CustomDeviceCapabilityType_1234". Заданные данные реестра должны иметь тип REG_DWORD и задать для них одно из следующих значений:
- 0, если настраиваемая возможность имеет значение DWORD
- 1, если настраиваемая возможность является буфером байтов
- 2, если настраиваемая возможность представляет собой массив элементов
Примечание
Заголовок wingdi.h определяет DeviceCapabilities в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | wingdi.h (включая Windows.h) |
Библиотека | WinSpool.lib |
DLL | Winspool.drv |