Функция 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, перехватывает внутреннее исключение и задает флаг для сбоя и завершения задания печати. |
Замечания
Функция MxdcGetPDEVAdjust ment, реализованная поставщиком оборудования. 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, которое хранит значение DPI по умолчанию MXDC, — L"MxdcDotsPerInch".
В следующей таблице перечислены типы свойств MXDC и поля контейнера свойств для свойств:
Свойство (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 и значения данных для свойств:
Свойство (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 Значения: Положительное значение для Dots на дюйм |
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 (include Mxdc.h) |