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 を含む)

こちらもご覧ください

DrvEnablePDEV

GDIINFO

IPrintOemUIMXDC インターフェイス