Функция DeviceCapabilitiesW (wingdi.h)
Функция DeviceCapabilities извлекает возможности драйвера принтера.
Синтаксис
int DeviceCapabilitiesW(
[in] LPCWSTR pDevice,
[in] LPCWSTR pPort,
[in] WORD fwCapability,
[out] LPWSTR pOutput,
[in] const DEVMODEW *pDevMode
);
Параметры
[in] pDevice
Указатель на строку, завершающуюся значением NULL, которая содержит имя принтера. Обратите внимание, что это имя принтера, а не драйвера принтера.
[in] pPort
Указатель на строку, завершающуюся значением NULL, которая содержит имя порта, к которому подключено устройство, например LPT1.
[in] fwCapability
Возможности для запроса. Этот параметр может принимать одно из указанных ниже значений.
Значение | Значение |
---|---|
|
Извлекает имена бумажных контейнеров принтера. Буфер POutput получает массив строковых буферов. Каждый буфер строки имеет длину 24 символа и содержит имя бумажной корзины. Возвращаемое значение указывает количество записей в массиве. Строки имен заканчиваются значением NULL, если только имя не имеет длину 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 символа и содержит имя файла. Возвращаемое значение указывает количество записей в массиве. Строки имен заканчиваются null, если только имя не имеет длину 64 символа. Если pOutput имеет значение NULL, возвращаемым значением является количество файлов. |
|
Возвращает максимальный размер бумаги, который могут указывать члены dmPaperLength и dmPaperWidth структуры DEVMODE драйвера принтера. LOWORD возвращаемого значения содержит максимальное значение dmPaperWidth , а HIWORD — максимальное значение dmPaperLength . |
|
Извлекает имена бумажных форм, которые в настоящее время доступны для использования. Буфер POutput получает массив строковых буферов. Каждый строковый буфер имеет длину 64 символа и содержит имя бумажной формы. Возвращаемое значение указывает количество записей в массиве. Строки имен заканчиваются null, если только имя не имеет длину 64 символа. Если pOutput имеет значение NULL, возвращаемым значением является количество форм бумаги. |
|
Извлекает имена поддерживаемых типов мультимедиа. Буфер POutput получает массив строковых буферов. Каждый строковый буфер имеет длину 64 символа и содержит имя поддерживаемого типа мультимедиа. Возвращаемое значение указывает количество записей в массиве. Строки заканчиваются null, если имя не имеет длину 64 символа. Если pOutput имеет значение NULL, возвращаемое значение — это необходимое количество имен типов мультимедиа. |
|
Извлекает список поддерживаемых типов мультимедиа. Буфер pOutput получает массив значений DWORD, указывающих поддерживаемые типы носителей. Возвращаемое значение указывает количество записей в массиве. Список возможных значений массива см. в описании элемента dmMediaType структуры DEVMODE . Если pOutput имеет значение NULL, возвращаемое значение указывает необходимое количество записей в массиве. |
|
Возвращает минимальный размер бумаги, который могут указывать члены dmPaperLength и dmPaperWidth структуры DEVMODE драйвера принтера. LOWORD возвращаемого значения содержит минимальное значение dmPaperWidth , а HIWORD — минимальное значение dmPaperLength . |
|
Возвращает связь между книжной и альбомной ориентацией устройства с точки зрения количества градусов поворота книжной ориентации против часовой стрелки для создания альбомной ориентации. Может возвращаться одно из следующих значений:
|
|
Извлекает массив целых чисел, указывающих, что принтер может печатать несколько страниц документов на каждой печатной странице. Буфер pOutput получает массив значений DWORD . Каждое значение представляет поддерживаемое количество страниц документов на каждую распечатаемую страницу. Возвращаемое значение указывает количество записей в массиве. Если pOutput имеет значение NULL, возвращаемое значение указывает необходимое количество записей в массиве. |
|
Извлекает список поддерживаемых имен документов (например, Letter или Legal). Буфер POutput получает массив строковых буферов. Каждый строковый буфер имеет длину 64 символа и содержит имя бумажной формы. Возвращаемое значение указывает количество записей в массиве. Строки имен заканчиваются null, если только имя не имеет длину 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 |