Функция DeviceCapabilities

Declare Function DeviceCapabilities Lib "winspool.drv" Alias "DeviceCapabilitiesA" ( _
    ByVal pDeviceName As String, _
    ByVal pPort As String, _
    ByVal fwCapability As Long, _
    pOutput As Any, _
    pDevMode As Any) As Long
	

DeviceCapabilities показывает возможности драйвера принтера

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

В успешном случае возвращаемое значение зависит от настройки параметра fwCapability. Возвращаемое значение равное нулю указывает на успешным вызов функции, но при этом был некоторый тип отказа. В случае ошибки возвращается -1 (минус один).

Параметры

pDeviceName
Имя принтера (не драйвера)
pPort
Имя подключенного порта (например, LPT1)
fwCapability
Устанавливает возможность сделать запросы. Этот параметр может быть одним из ниже перечисленных значений Возвращает версию спецификации, которой соответствует драйвер принтера.
DC_BINNAMESИзвлекает названия магазинов бумагоподающего устройства принтера. Буфер pOutput принимает массив строковых буферов. Каждый строковый буфер -длиной 24 символа и содержит название магазина бумагоподающего устройства. Возвращаемое значение обозначает число записей в массиве. Строки названия с нулевым символом в конце, если название не длиннее 24 символов. Если pOutput - ПУСТО (NULL), возвращаемое значение - число обязательных записей лотка
DC_BINSИзвлекает перечень доступных магазинов бумагоподающего устройства. Буфер pOutput принимает массив значений типа (WORD), которые указывают доступные источники бумаги для принтера. Возвращаемое значение обозначает число записей в массиве. Список возможных значений массива, см. в описании члена dmDefaultSource структуры DEVMODE. Если pOutput - ПУСТО (NULL), возвращаемое значение указывает обязательное число записей в массиве.
DC_COLLATEЕсли принтер поддерживает сортировку, возвращаемое значение равно 1; в противном случае, величина возвращаемого значения - ноль. Параметр pOutput не используется.
DC_COLORDEVICEЕсли принтер поддерживает цветную печать, возвращаемое значение равно 1; в противном случае, величина возвращаемого значения - ноль. Параметр pOutput не используется.
DC_COPIESВозвращает количество копий, которое устройство может отпечатать.
DC_DRIVERВозвращает номер версии драйвера принтера.
DC_DUPLEXЕсли принтер поддерживает двустороннюю печать, возвращаемое значение равно 1; в противном случае, величина возвращаемого значения - ноль. Параметр pOutput не используется.
DC_ENUMRESOLUTIONSИзвлекает перечень разрешающих способностей, поддерживаемых принтером. Буфер pOutput принимает массив значений типа LONG. Для каждой поддерживаемой разрешающей способности, массив содержит пару значений LONG, которые задают x и y размеры разрешающей способности, в точках на дюйм. Возвращаемое значение обозначает число поддерживаемых разрешающих способностей. Если pOutput - ПУСТО (NULL), возвращаемое значение обозначает число поддерживаемых разрешающих способностей.
DC_EXTRAВозвращает число байтов, обязательных для зависимой от устройства части структуры DEVMODE для драйвера принтера.
DC_FIELDSВозвращает член dmFields структуры DEVMODE драйвера принтера. Член dmFields указывает, какие члены в аппаратно-независимой части структуры поддерживаются драйвером принтера.
DC_FILEDEPENDENCIESИзвлекает имена любых дополнительных файлов, которые должны быть загружены, когда драйвер установлен. Буфер pOutput принимает массив строковых буферов. Каждый строковый буфер - длиной 64 символа и содержит имя файла. Возвращаемое значение обозначает число записей в массиве. Если имя файла меньше 64 символов, строки имени с нулем в конце. Если pOutput - ПУСТО (NULL), возвращаемое значение - число файлов.
DC_MAXEXTENTВозвращает максимальный формат бумаги, который драйвер принтера может установить в членах dmPaperLength и dmPaperWidth структуры DEVMODE. LOWORD (младшее слово) возвращаемого значения содержит максимальное значение dmPaperWidth, а HIWORD (старшее слово) содержит максимальное значение dmPaperLength.
DC_MEDIAREADYИзвлекает названия форматов бумаги, которые являются текущими доступными для использования. Буфер pOutput принимает массив строковых буферов. Каждый строковый буфер - длиною 64 символа и содержит название формата бумаги. Возвращаемое значение обозначает число записей в массиве. Если строки названия - меньше 64 символов, строки с нулем в конце. Если pOutput - ПУСТО (NULL), возвращаемое значение - число форматов бумаги.
DC_MEDIATYPENAMESИзвлекает названия поддерживаемых типов медиа. Буфер pOutput принимает массив строковых буферов. Каждый строковый буфер - длиной 64 символа и содержит название поддерживаемого типа медиа. Возвращаемое значение обозначает число записей в массиве. Если pOutput - ПУСТО (NULL), возвращаемое значение - число обязательных названий типов аудио- и видео средств информации.
DC_MEDIATYPESИзвлекает перечень типов поддерживаемых аудио- и видео средств информации. Буфер pOutput принимает массив значений типа DWORD, которые обозначают поддерживаемые типы аудио- и видео средств информации. Возвращаемое значение обозначает число записей в массиве. Список возможных значений массива, см. в описании члена dmMediaTyp структуры DEVMODE. Если pOutput - ПУСТО (NULL), возвращаемое значение указывает обязательное число записей в массиве.
DC_MINEXTENTВозвращает минимальный размер бумаги, который драйвер принтера может установить в членах dmPaperLength и dmPaperWidth структуры DEVMODE. LOWORD (младшее слово) возвращаемого значения содержит минимальное значение dmPaperWidth , а HIWORD (старшее слово) содержит минимальное значение dmPaperLength.
DC_ORIENTATIONВозвращает соотношение между книжной и альбомной ориентациями для устройства, на основе числа градусов, где вертикальная (книжная) ориентация перемещается по кругу против часовой стрелки, чтобы перейти в горизонтальную (альбомную) ориентацию. Возвращаемое значение может быть одним из ниже следующих: 0 Не горизонтальная (альбомная) ориентация. 90 Книжная повернута на 90 градусов, чтобы перейти в альбомную ориентацию. 270 Книжная повернута на 270 градусов, чтобы перейти в альбомную ориентацию.
DC_NUPИзвлекает массив целых чисел, которые обозначают, что принтер способен печатать несколько страниц документа на печатную полосу. Буфер pOutput принимает массив значений типа DWORD. Каждое значение обозначает поддерживаемое число страниц документа в печатаной полосе. Возвращаемое значение обозначает число записей в массиве. Если pOutput - ПУСТО (NULL), возвращаемое значение указывает обязательное число записей в массиве.
DC_PAPERNAMESИзвлекает перечень поддерживаемых названий бумаги (например, Letter (Письмо) или Legal (Официальный документ). Буфер pOutput принимает массив строковых буферов. Каждый строковый буфер - длиной 64 символа и содержит название формата бумаги. Возвращаемое значение обозначает номер записей в массиве. Если pOutput - ПУСТО (NULL), возвращаемое значение - число форматов бумаги.
DC_PAPERS = 2Извлекает перечень поддерживаемых размеров бумаги. Буфер pOutput принимает массив значений типа WORD, которые обозначают доступные размеры бумаги для принтера. Возвращаемое значение обозначает число записей в массиве. Список возможных значений массива, см. в описании члена dmPaperSize структуры DEVMODE. Если pOutput - ПУСТО (NULL), возвращаемое значение обозначает обязательное число записей в массиве.
DC_PAPERSIZEИзвлекает размеры, в десятых долях миллиметра, каждого поддерживаемого размера бумаги. Буфер pOutput принимает массив структур POINT. Каждая структура содержит ширину (в направлении оси x) и длину (в направлении оси y) размера бумаги, как будто бы бумага ориентации DMORIENT_PORTRAIT. Возвращаемое значение обозначает число записей в массиве.
DC_PERSONALITYИзвлекает перечень языков написания, поддерживаемых принтером. Буфер pOutput принимает массив строковых буферов. Каждый буфер - длиной 32 символа и содержит название языка, которым пишет принтер. Возвращаемое значение обозначает число записей в массиве. Если pOutput - ПУСТО (NULL), возвращаемое значение обозначает обязательное число записей массива.
DC_PRINTERMEM = 28Возвращаемое значение - объем доступной памяти принтера, в килобайтах. Параметр pOutput не используется.
DC_PRINTRATEВозвращаемое значение указывает скорость печати принтера. Значение, возвращенное для DC_PRINTRATEUNIT обозначает единицы измерения значения DC_PRINTRATE. Параметр pOutput не используется.
DC_PRINTRATEPPMВозвращаемое значение указывает скорость печати принтера, в страницах в минуту. Параметр pOutput не используется.
DC_PRINTRATEUNITВозвращаемое значение - одно из ниже перечисленных значений, которые указывают единицы измерения скорости печати для значений, возвращаемых флажком DC_PRINTRATE. Параметр pOutput не используется. PRINTRATEUNIT_CPS Символов в минуту. PRINTRATEUNIT_IPM Дюймов в минуту. PRINTRATEUNIT_LPM Строк в минуту. PRINTRATEUNIT_PPM Страниц в минуту.
DC_SIZEВозвращает член dmSize структуры DEVMODE драйвера принтера.
DC_STAPLEЕсли принтер поддерживает сшивание страниц скобками, возвращаемое значение - не нуль; в противном случае, величина возвращаемого значения - ноль. Параметр pOutput не используется.
DC_TRUETYPEИзвлекает данные о способности драйвера использовать шрифты TrueType. Для DC_TRUETYPE, параметр pOutput должен быть ПУСТО (NULL). Возвращаемое значение может быть одно или несколько ниже следующих значений: DCTT_BITMAP - Устройство может печатать шрифты TrueType как графику. DCTT_DOWNLOAD - Устройство может загрузить шрифты TrueType. DCTT_SUBDEV - Устройство может заменить шрифты устройства на шрифт TrueType.
DC_VERSION
pOutput
Массив. Формат массива зависит от настройки параметра fwCapability . Если pOutput равен NULL, функция возвращает число байт, необходимых для вывода данных.
pDevMode
Структура DEVMODE. Если этот параметр равен NULL, функция извлекает текущие заданные по умолчанию значения инициализации для устанавливаемого драйвера принтера. В противном случае, функция извлекает значения, содержащиеся в структуре, на которую указывает параметр pDevMode

Пример

Dim Ret As Long, PaperSizes() As Integer
Ret = DeviceCapabilities(Printer.DeviceName, "DOT4_002", DC_PAPERS, ByVal 0&, ByVal 0&)
ReDim PaperSizes(1 To Ret) As Integer
Call DeviceCapabilities(Printer.DeviceName, "DOT4_002", DC_PAPERS, PaperSizes(1), ByVal 0&)
Me.AutoRedraw = True
Me.Print "Поддерживаемые размеры:"
Dim Cnt As Long
For Cnt = 1 To Ret
    Me.Print Str$(PaperSizes(Cnt))
Next
' Объем памяти
Ret = DeviceCapabilities(Printer.DeviceName, "DOT4_002", DC_PRINTERMEM, PaperSizes(1), ByVal 0&)
Print Ret

Категория

Принтеры

Реклама