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 は -1 を DrvEnablePDEV 関数に返し、内部例外をキャッチし、フラグを設定して失敗し、印刷ジョブを終了します。 |
注釈
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 値: 1 インチあたりのドット数の正の値 |
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 モノリシック) が新しいプロパティ バッグの値を理解していない場合は、現在のデザインのように無視する必要があります。
要件
要件 | 値 |
---|---|
対象プラットフォーム | デスクトップ |
Header | mxdc.h (Mxdc.h を含む) |