Share via


GetOptionAttribute の使用

重要

プリンターデバイス開発におけるWindows 10および11での印刷体験をカスタマイズするために、MicrosoftのIPPインボックスクラスドライバーとPrint Support Apps (PSA)の使用を推奨します。

詳細については、プリントサポートアプリデザインガイド.

この機能は、PostScript Printer Driver(PPD)機能でのみサポートされています。 ある属性が利用できない場合、 GetOptionAttribute E_INVALIDARG を返します。

一般オプション属性の出力パラメータ

以下の表で、 pdwDataTypeパラメータはEATTRIBUTE_DATATYPE 列挙型の値を取ります。

一般オプション属性 出力パラメーター
表示名 pdwDataType: kADT_UNICODE

pbData: オプシ ョ ンキーワー ド 名の翻訳文字列のヌ ル終端 Unicode 文字列

pcbNeeded: pbData が指 し 示す Unicode 文字列のバ イ ト 数 (ヌ ル終端を含む)

このオプション属性はEnumOptions PPD機能で復帰できる。
[呼び出し] pdwDataType: kADT_BINARY

pbData: byte array for the option's InvocationValue

pcbNeeded: pbDataが指すバイナリデータのバイト数

このオプション属性はEnumOptions PPD機能で復帰できる。 オプションのInvocationValueが空の場合、この関数はpdwDataType as above, set pcbNeeded = 0とし、S_OKを返す。
OrderDependencyValue pdwDataType: kADT_LONG

pbData: このオプションの PPD の OrderDependency または NonUIOrderDependency キーワードで指定された相対順序。 これらのキーワードの最初のパラメータは、LONGに変換されて返される実数であることに注意。

pcbNeeded: sizeof(LONG)

このオプション属性は、PPDにOrderDependencyまたは*NonUIOrderDependencyエントリがあり、そのエントリがoptionKeywordを省略しないオプションに対してのみ利用可能である。
OrderDependencySection pdwDataType: kADT_ASCII

pbData: 以下のセクション名のいずれかを含むヌル終端の ASCII 文字列: "ExitServer"、"Prolog"、"DocumentSetup"、"PageSetup"、"JCLSetup"、"AnySetup"

pcbNeeded: pbDataが指すASCII文字列のバイト数(ヌルターミネータを含む)

このオプション属性は、PPDにOrderDependencyまたはNonUIOrderDependencyエントリがあり、そのエントリがoptionKeywordを省略しないオプションに対してのみ利用できる。

特定のオプション属性の出力パラメータ

先に説明した一般的なオプション属性に加えて、以下の表に列挙したオプション属性は、利用可能な時期に制限がある場合があります。 いくつかの属性は、特定のPPD機能のすべてのオプションで利用可能であり、他の属性は、そのPPD機能の特定のオプションでのみ利用可能である。 そのような制限がある場合は、各オプション属性に記載されている。

Keyword オプション属性 出力パラメーター
InputSlot
RequiresPageRegion pdwDataType: kADT_BOOL

pbData: TRUE PageRegionの呼び出しコードをInputSlotの呼び出しコードと一緒に送らなければならない場合。FALSE その他. これはPPDのRequiresPageRegionキーワードに基づいている。 この入力スロット・オプションでキーワードが省略された場合、TRUE が返されます。

pcbNeeded: sizeof(BOOL)

このオプション属性は、ドライバが生成するオプション "*UseFormTrayTable "を除いて、"InputSlot "PPD機能のどのオプションでも利用可能である。
OutputBin
OutputOrderReversed pdwDataType: kADT_BOOL

pbData: TRUE binOptionの出力順が "Reverse "の場合はFALSE 出力順が "Normal "の場合。 これはPPDのDefaultOutputOrderとageStackOrderキーワードに基づいている。

pcbNeeded: sizeof(BOOL)

このオプション属性は、"OutputBin "PPD機能のどのオプションでも利用できる。
PageSize
ImageableArea pdwDataType: kADT_RECT

pbData: PPDのImageableAreaキーワードで指定されたPageSizeオプシ ョ ンの画像化可能領域の外接枠が、RECT構造体で返される。left and bottom メンバはllxとllyの値を持ち right and top メンバーにはurxとuryの値が含まれる。 数値はすべてミクロン単位。 PPDのllxとlyの値は、ミクロン単位に変換される前に、最も近い整数に切り上げられる。 PPDのurxとuryの値は、ミクロン単位に変換される前に最も近い整数に切り捨てられる。

pcbNeeded: sizeof(RECT)

このオプション属性は、"CustomPageSize "オプションを除く、"PageSize "PPD機能のどのオプションでも利用可能です。
PaperDimension pdwDataType: kADT_SIZE

pbData:PPDのPaperDimensionキーワードで指定されたPageSizeオプションの物理的な寸法は、SIZE構造体で返され、そのcxメンバは幅値を含み、cyメンバは高さ値を含む。 数値はすべてミクロン単位。

pcbNeeded: sizeof(SIZE)

PPDのPaperDimensionキーワードで指定されたPageSizeオプションの物理的な寸法は、SIZE構造体で返され、そのcxメンバは幅値を含み、cyメンバは高さ値を含む。
PageSize: CustomPageSize
HWMargins pdwDataType: kADT_RECT

pbData: PPDのHWMarginsキーワードで指定された4つの値がRECT構造体で返される。 数値はすべてミクロン単位。

pcbNeeded: sizeof(RECT)

このオプション属性は、"PageSize "PPD機能の "CustomPageSize "オプションでのみ利用可能です。
MaxMediaHeight pdwDataType: kADT_DWORD

pbData: PPD の *MaxMediaHeight キーワードで指定された値 (単位はミクロン)。

pcbNeeded: sizeof(DWORD)

このオプション属性は、"PageSize "PPD機能の "CustomPageSize "オプションでのみ利用可能です。
MaxMediaWidth pdwDataType: kADT_DWORD

pbData:PPD の MaxMediaWidth キーワードで指定された値をミクロン単位で指定する。

pcbNeeded: sizeof(DWORD)

このオプション属性は、"PageSize "PPD機能の "CustomPageSize "オプションでのみ利用可能です。
ParamCustomPageSize pdwDataType: kADT_CUSTOMSIZEPARAMS

pbData:それぞれの要素は、CUSTOMPARAM_MAX要素の配列であるCUSTOMSIZEPARAM 構造. この配列の各要素には、PPD の ParamCustomPageSize キーワードの paramOption 項目で指定された値が格納されます。 この配列の各要素には、PPD の ParamCustomPageSize キーワードの paramOption 項目で指定された値が格納されます。 Orientation "の場合、lMinValとlMaxValの値は[0, 3]の範囲である。

pcbNeeded: sizeof(CUSTOMSIZEPARAM) * CUSTOMPARAM_MAX

このオプション属性は、"PageSize "PPD機能の "CustomPageSize "オプションでのみ利用可能です。

詳細については、ParamCustomPageSize に関する以下のノートを参照してください。
InstalledMemory
VMOption pdwDataType: kADT_DWORD

pbData: PPD の VMOption キーワードで指定された値、または PPD がこのオプションに VMOption キーワードを指定していない場合は 0。

pcbNeeded: sizeof(DWORD)

このオプション属性は、"InstalledMemory "PPD機能のどのオプションでも利用できる。
FCacheSize pdwDataType: kADT_DWORD

pbData: PPD の FCacheSize キーワードで指定された値、または PPD がこのオプションに FCacheSize キーワードを指定していない場合は 0。

pcbNeeded: sizeof(DWORD)

このオプション属性は、"InstalledMemory "PPD機能のどのオプションでも利用できる。

ParamCustomPageSizeに関する注意事項

以下は、PPDファイルの「ParamCustomPageSize Width」項目の元の順序、最小値、最大値を取得する方法を示すサンプルコードです。 printoem.hで定義されているCUSTOMPARAM_WIDTH定数は、printoem.hで定義されている。 CUSTOMSIZEPARAM Widthエントリーに関連する情報を含む構造体。 この構造体は、そのような構造体の配列を形成する CUSTOMPARAM_MAX CUSTOMSIZEPARAM 構造体の1つである。 printoem.hヘッダーは、この配列の構造体のオフセット(Width、Height、WidthOffset、HeightOffset、Orientation)を列挙したCUSTOMPARAM_XXXという定数セットを定義している。

PCUSTOMSIZEPARAM  pCSParam;

pCSParam = (PCUSTOMSIZEPARAM)pbData + CUSTOMPARAM_WIDTH;

order = pCSParam->dwOrder;
// Convert lMinVal and lMaxVal from microns to points.
//   To convert microns to inches, divide by 25400.
//   To convert inches to points, multiply by 72.
min = pCSParam->lMinVal / 25400.0 * 72.0;
max = pCSParam->lMaxVal / 25400.0 * 72.0;