EnumOptions の使用
重要
Windows でプリンターとの通信手段として推奨されるのは、最新の印刷プラットフォームです。 プリンターデバイス開発におけるWindows 10および11での印刷体験をカスタマイズするために、MicrosoftのIPPインボックスクラスドライバーとPrint Support Apps (PSA)の使用を推奨します。
詳細については、最新の印刷プラットフォームに関する記事および「印刷サポート アプリの設計ガイド」を参照してください 。
呼び出し元は EnumOptions を使用して、サポートされているドライバー機能と PPD 機能のオプションのキーワード一覧を取得することができます。 PPD 機能の場合、 EnumOptions は常にサポートされ、PPD によって定義されたオプションが返されます。
ドライバー機能の場合、現在 EnumOptions がサポートされており、一連のオプションが固定されている機能に対してのみサポートされます。 例えば、%AddEuro には "True" と "False" の 2 つのオプションがあり、%PageOrder には 2 つのオプション "FrontToBack" と "BackToFront" があります。 EnumOptions は 、%PageOrder (スプーラー EMF スプールが有効な場合) と同様に、%AddEuro (言語レベルが 2 以上の場合) でサポートされます。 ただし、%CustomPageSize、%PSMemory などの機能には、可能なオプションの数に制限はありません。これは、EnumOptions がサポートされていないことを意味します。
現在サポートされていないドライバー機能、または EnumOptions を介して列挙できないサポートされているドライバー機能の場合、EnumOptions は E_NOTIMPL を返します。
また、ドライバー機能の一部のオプションは、特定の条件下ではサポートされない場合があります。 たとえば、Windows 2000 以降のオペレーティング システム リリースでスプーラー EMF スプーリングが無効になっている場合、%PagePerSheet 機能では 「小冊子」オプションはサポートされません。 別の例として、プリンターに Type42 ラスタライザーがない場合、%TTDownloadFormat では "NativeTrueType" オプションはサポートされません。 これらのサポートされていないオプションは、EnumOptions の出力キーワード一覧には表示されません。
Pscript は、次の機能キーワードを特別な方法で処理します。
*CustomPageSize 機能キーワードは、"CustomPageSize" がオプションキーワードである PageSize 機能キーワードのオプションに変換されます。 GetOptionAttribute を呼び出して PPD パラメーターを取得します。
*ManualFeed の Trueエントリは、"ManualFeed" がオプションキーワード名である *InputSlot 機能キーワードのオプションに変換されます。
*InputSlot 機能キーワードの場合、Pscript は常に、オプション キーワード名 "*UseFormTrayTable" を含むドライバー生成オプションを最初のオプションとして追加します (PPDで定義されたオプションとの名前の競合を避けるため、オプション キーワード名に "*" プレフィックスが付加されます)。その後に PPD で定義されたオプションが続きます。 [*UseFormTrayTable] オプションが選択されている場合、Pscript はフォーム-トレイ割り当てテーブルを使用して、選択した用紙サイズをサポートする用紙トレイを自動的に選択します。