次の方法で共有


インストール可能な機能とオプションの処理

重要

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

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

プリンターの機能またはオプションの一部がインストール可能な場合があります。 たとえば、プリンターは、オプションのエンベロープ フィーダーを受け入れる場合があり、現在添付されている場合とそうでない場合があります。 このエンベロープ フィーダーは、GPD ファイル内で次の 2 つの方法で記述する必要があります。

  • InputBin 機能のオプションとして。

  • インストール可能な「機能」として (実際にはオプションであっても)、ユーザーが実際にインストールされているかどうかを示すことができます。

まず、InputBin 機能のオプションとしてエンベロープ フィーダーと自動フィーダーを指定するには、次の GPD エントリを使用できます。

*Feature: InputBin
{
    *Name: "Input Bin"
    *Option: AUTO
    {
        *Name: "Automatic Feeder"
        *Command: CmdSelect {Command Attributes}
    }
    *Option: ENVFEED
    {
        *Name: "Envelope Feeder"
        *Command: CmdSelect {Command Attributes}
    }
}

エンベロープ フィーダーを取り付け可能にするには、次のように追加の GPD エントリが必要です。

*InstalledOptionName: "Installed"
*NotInstalledOptionName: "Not installed"
*Feature: InputBin
{
    *Name: "Input Bin"
    *Option: AUTO
    {
        *Name: "Automatic Feeder"
        *Command: CmdSelect {Command Attributes}
    }
    *Option: ENVFEED
    {
        *Name: "Envelope Feeder"
        *Command: CmdSelect {Command Attributes}
        *Installable?: TRUE
        *InstallableFeatureName: "Optional Envelope Feeder"
    }
}

エンベロープ フィーダーの *Option エントリ内に、次の 2 つの属性が追加されています。

  • *Installable? 属性は、オプションがインストール可能であることを示します。

  • *InstallableFeatureName 属性は、ユーザーがオプションが実際にインストールされているかどうかを示すことができるように、Unidrv が表示するテキスト文字列を指定します。

機能またはオプションに *Installable?TRUE に設定されている場合は、常に Unidrv によってプロパティ シート表示用の追加機能が作成されます。 (インストール可能な項目がオプションの場合でも、Unidrv はプロパティ シートでその機能表現を作成します)。この Unidrv 合成機能は、*InstallableFeatureName で指定された文字列によって識別されます。 この機能には、「インストール済み」と「未インストール」の 2 つのオプションがあり、ユーザーはこれらのオプションのいずれかを選択できます。 文字列「Installed」と「Notinstalled」は *InstalledOptionName 属性と *NotInstalledOptionName 属性で指定されているため、他のテキストの方が適切な場合はそれらを変更できます。

したがって、この例では、プロパティ シートには InputBin 機能 (Input Bin というラベルが付けられます) が含まれます。この機能には、自動フィーダーエンベロープ フィーダーというラベルが付いた 2 つのオプションが含まれます。 プロパティ シートには、省略可能なエンベロープ フィーダーというラベルの付いた追加機能も含まれます。2 つのオプションは、[インストール済み] と [未インストール] というラベルが付けられます。 ユーザーは、最初に[省略可能なエンベロープフィーダー] で [インストール済み] を選択した場合にのみ、[入力ビン] で [エンベロープフィーダー] を選択できます。

場合によっては、特定のインストール可能なオプションを同時にインストールできないこと、または他のインストール可能なオプションがインストールされている場合は特定のインストール不可能なオプションを選択できないことを示す必要があります。 このような状況を処理するには、オプション制約を指定する GPD エントリを使用します。

*DisabledFeature エントリを必要とするオプション機能では、*Installable? 属性を使用できません。 これらの機能については、「インストール済み」および「未インストール」オプションを使用してオプション機能を明示的に指定する必要があります。 たとえば、プリンターにオプションの二重化ユニットがあるとします。 二重化ユニットがインストールされていない場合は、二重機能 (「標準機能」を参照) を無効にする必要があります。 「インストール済み」および「インストールされていない」オプションを使用して、「オプションの両面印刷ユニット」機能を定義する必要があります。 「未インストール」*Option エントリ内に、二重機能の *DisabledFeature エントリを含めます。 次の GPD エントリを使用できます。

*Feature: DuplexUnit
{
    *ConflictPriority: 3   *% Make priority higher than Duplex feature
    *Name: "Optional Duplexing Unit"
    *Option: Installed
    {
        *Name: "Installed"
    }
    *Option: NotInstalled
    {
        *Name: "Not Installed"
        *DisabledFeatures: LIST(Duplex)
        *Constraints: LIST (Duplex.LongEdge, Duplex.ShortEdge)
    }
}

次に示すように、関連するオプション制約も必ず指定してください。