MxdcGetPDEVAdjustment 함수(mxdc.h)
MxdcGetPDEVAdjustment 함수는 프린터 인터페이스 DLL에 의해 내보내지고 Microsoft XPS 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
MXDC가 받은 DEVMODE 구조체의 복사본입니다. 프린터 인터페이스 DLL은 이 구조체의 정보를 사용하여 요청된 데이터를 반환합니다.
[in] cbIn
pvIn 매개 변수의 크기를 바이트 단위로 지정하는 입력 매개 변수입니다. 이 매개 변수는 현재 사용되지 않으며 해당 값은 0입니다.
[in, optional] pvIn
MXDC에서 프린터 인터페이스 DLL로 전송되는 데이터로 구성된 매개 변수입니다. 이 매개 변수는 현재 사용되지 않으며 해당 값은 NULL입니다.
[in] cbPrintPropertiesCollection
PrintPropertiesCollection 데이터 구조의 크기(바이트)입니다.
pPrintPropertiesCollection
프린터 인터페이스의 DLL이 요청된 데이터를 가져오는 PrintPropertiesCollection 데이터 구조체입니다. 이 구조체는 WinSpool.h에 정의되어 있습니다. 요청된 필드는 MXDC의 기본 데이터로 미리 채워질 수 있습니다. 프린터 인터페이스 DLL은 이해하지 못하는 필드를 무시해야 합니다.
반환 값
MxdcGetPDEVAdjustment 는 다음 값 중 하나를 반환해야 합니다.
반환 코드 | 설명 |
---|---|
S_OK | 프린터 인터페이스 DLL은 지정된 DEVMODE 구조에 따라 조정된 이미지 가능 영역, 압축 유형 또는 DPI를 성공적으로 반환했습니다. MXDC는 반환된 이미지 가능 영역의 유효성을 검사한 다음 이를 사용하여 GDIINFO 구조를 해당 필드에 채웁다. |
E_NOTIMPL | MxdcGetPDEVAdjustment 함수는 프린터 인터페이스에서 구현되지 않습니다. 프린터 인터페이스는 지원하지 않는 필드를 수정해서는 안 됩니다. MXDC의 기본값은 현재 기본값입니다. 이미지 가능 영역의 경우 MXDC는 기본적으로 실제 페이지 크기를 사용합니다. 압축 옵션의 경우 MXDC는 기본적으로 중간 JPEG 압축으로 설정됩니다. |
E_FAIL | 이 값 또는 다른 오류 값의 경우 MXDC는 DrvEnablePDEV 함수에 -1을 반환하고, 내부 예외를 catch하고, 플래그를 설정하여 인쇄 작업을 실패하고 종료합니다. |
설명
MxdcGetPDEVAdjustment 함수는 하드웨어 공급업체에 의해 구현됩니다. MXDC는 다음 데이터를 포함하는 속성 모음의 형태로 프린터 구성 데이터를 가져오기 위해 이 함수를 호출합니다.
MXDC를 사용하면 인쇄 작업의 dmPrintQuality 필드에 값이 0보다 작거나 같은 경우에만 프린터 인터페이스 DLL이 MxdcGetPDEVAdjustment 함수를 통해 DPI를 조정할 수 있습니다. 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 값 인치당 점의 양수 값 |
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는 pDevMode가 가리키는 DEVMODE 구조체의 dmOrientation 멤버 값에 따라 페이지 크기와 이미지 가능 영역을 모두 회전합니다. 따라서 하드웨어 공급업체의 MxdcGetPDEVAdjustment 구현은 가로 인쇄 작업이 잘못 인쇄되도록 하기 때문에 회전된 좌표(가로 방향)에서 이미지 가능 영역을 지정하지 않아야 합니다.
MXDC의 기본값은 현재 레거시 동작인 MXDC_LANDSCAPE_ROTATE_COUNTERCLOCKWISE_270_DEGREES.
모든 회전은 이미지 가능 영역에서 수행됩니다. 구성 구성 요소(UniDrv/PostScript, XPSDrv 모놀리식)가 새 속성 모음 값을 이해하지 못하는 경우 현재 디자인에서와 같이 무시해야 합니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 데스크톱 |
머리글 | mxdc.h(Mxdc.h 포함) |