Функция MxdcGetPDEVAdjustment (mxdc.h)
Функция MxdcGetPDEVAdjustment экспортируется библиотекой DLL интерфейса принтера и предоставляет данные конфигурации принтера для Microsoft XPS Document Converter (MXDC).
Синтаксис
HRESULT MxdcGetPDEVAdjustment(
[in] HANDLE hPrinter,
[in] ULONG cbDevMode,
[in] const DEVMODE *pDevMode,
[in] ULONG cbIn,
[in, optional] const VOID *pvIn,
[in] ULONG cbPrintPropertiesCollection,
PrintPropertiesCollection *pPrintPropertiesCollection
);
Параметры
[in] hPrinter
Дескриптор текущего экземпляра принтера.
[in] cbDevMode
Размер структуры DEVMODE в байтах, включая частные данные DEVMODE драйвера.
[in] pDevMode
Копия структуры DEVMODE, полученной MXDC. Библиотека DLL интерфейса принтера использует сведения из этой структуры для возврата запрошенных данных.
[in] cbIn
Входной параметр, указывающий размер параметра pvIn в байтах. Этот параметр в настоящее время не используется, и его значение равно нулю.
[in, optional] pvIn
Параметр, состоящий из данных, отправляемых в библиотеку DLL интерфейса принтера из MXDC. Этот параметр в настоящее время не используется, и его значение равно NULL.
[in] cbPrintPropertiesCollection
Размер структуры данных PrintPropertiesCollection в байтах.
pPrintPropertiesCollection
Структура данных PrintPropertiesCollection , из которой библиотека DLL интерфейса принтера получает запрошенные данные. Эта структура определена в WinSpool.h. Запрошенные поля могут быть предварительно заполнены данными MXDC по умолчанию. Библиотека DLL интерфейса принтера должна игнорировать поля, которые она не понимает.
Возвращаемое значение
MxdcGetPDEVAdjustment должен возвращать одно из следующих значений:
Код возврата | Описание |
---|---|
S_OK | Библиотека DLL интерфейса принтера успешно вернула скорректированную область изображения, тип сжатия или DPI на основе заданной структуры DEVMODE. MXDC проверит возвращаемую снимаемую область, а затем использует ее для заполнения структуры GDIINFO соответствующими полями. |
E_NOTIMPL | Функция MxdcGetPDEVAdjustment не реализована в интерфейсе принтера. Интерфейс принтера не должен изменять поля, которые он не поддерживает. MxDC по умолчанию использует текущие значения по умолчанию. Для регистра области изображения MXDC по умолчанию использует физический размер страницы. Для параметра сжатия MXDC по умолчанию используется среднее сжатие JPEG. |
E_FAIL | Для этого или любых других значений сбоя MXDC возвращает -1 в функцию DrvEnablePDEV , перехватывает внутреннее исключение и устанавливает флаг сбоя и завершает задание печати. |
Комментарии
Функция MxdcGetPDEVAdjustment реализуется поставщиком оборудования. MXDC вызывает эту функцию для получения данных конфигурации принтера в виде контейнера свойств, включающего следующие данные:
MXDC позволяет библиотеке DLL интерфейса принтера настраивать DPI с помощью функции MxdcGetPDEVAdjustment , только если поле dmPrintQuality задания печати имеет значение меньше или равно 0. Если значение DPI не скорректировано, MXDC сопоставляет отрицательные значения dmPrintQuality со следующими разрешениями.
Имя GDI (Wingdi.h) | Значение GDI(Wingdi.h) | Интерпретация по умолчанию MXDC (точек на дюйм) |
---|---|---|
DMRES_HIGH | –4 | 2400 |
DMRES_MEDIUM | –3 | 1200 |
DMRES_LOW | -2 | 600 |
DMRES_DRAFT | -1 | 400 |
Имя свойства MXDC, в котором хранится значение разрешения MXDC по умолчанию, — L"MxdcDotsPerInch".
В следующей таблице перечислены типы свойств MXDC и поля контейнера свойств для свойств.
Property (propertyName) | Тип свойства (ePropertyValue) | Поля контейнера свойств |
---|---|---|
L"MxdcImageableArea" | kPropertyTypeBuffer | PrintPropertiesCollection::p ropertiesCollection[i].propertyValue.value.propertyBlob.cbBuf = sizeof(RECT) PrintPropertiesCollection::p ropertiesCollection[i].propertyValue.value.propertyBlob.pBuf |
L"MxdcImageCompressionType" | kPropertyTypeInt32 | PrintPropertiesCollection::p ropertiesCollection[i].propertyValue.value.propertyInt32 |
L"MxdcDotsPerInch" | kPropertyTypeInt32 | PrintPropertiesCollection::p ropertiesCollection[i].propertyValue.value.propertyInt32 |
L"MxdcLandscapeRotation" | kPropertyTypeInt32 | PrintPropertiesCollection::p ropertiesCollection[i].propertyValue.value.propertyInt32 |
В следующей таблице перечислены поддерживаемые типы данных MXDC и значения данных для свойств :
Property (propertyName) | Типы данных и значения |
---|---|
L"MxdcImageableArea" | Тип данных: RECT Значения: RECT::left (то же, что и FORM_INFO_1) RECT::right (то же, что и FORM_INFO_1) RECT::top (совпадает с FORM_INFO_1) RECT::bottom (совпадает с FORM_INFO_1) |
L"MxdcImageCompressionType" | Тип данных: LONG Значения: 1 = высокое сжатие JPEG 2 = среднее сжатие JPEG 3 = низкое сжатие JPEG 4 = сжатие PNG |
L"MxdcDotsPerInch" | Тип данных: LONG Значения: Положительное значение для точек на дюйм |
L"MxdcLandscapeRotation" | Тип данных: LONG Значения: 90 = MXDC_LANDSCAPE_ROTATE_COUNTERCLOCKWISE_90_DEGREES 0 = MXDC_LANDSCAPE_ROTATE_NONE -90 = MXDC_LANDSCAPE_ROTATE_COUNTERCLOCKWISE_270_DEGREES |
Функция MxdcGetPDEVAdjustment не является частью MXDC. MXDC вызывает эту функцию в библиотеке DLL конфигурации драйвера, чтобы получить данные для настройки принтера.
MXDC ожидает, что область изображения будет выражена в некоротированных координатах (книжная ориентация). MXDC поворачивает размер страницы и область изображения в соответствии со значением члена dmOrientation структуры DEVMODE, на которую указывает pDevMode. Таким образом, реализация MxdcGetPDEVAdjustment поставщиком оборудования должна избегать указания области для изображения в повернутых координатах (альбомная ориентация), так как это приведет к неправильной печати заданий альбомной печати.
Значением по умолчанию в MXDC будет MXDC_LANDSCAPE_ROTATE_COUNTERCLOCKWISE_270_DEGREES, что является его текущим устаревшим поведением.
Весь поворот будет выполняться в области, допускаемой для изображения. Если компонент конфигурации (UniDrv/PostScript, XPSDrv Monolithic) не понимает новые значения контейнера свойств, он должен игнорировать их, как в текущей структуре.
Требования
Требование | Значение |
---|---|
Целевая платформа | Персональный компьютер |
Верхняя часть | mxdc.h (включая Mxdc.h) |