IPrintCoreHelperPS::SetOptions メソッド (prcomoem.h)

IPrintCoreHelperPS::SetOptions メソッドは、複数の機能とオプションのペアを同時に設定します。

構文

HRESULT SetOptions(
  [in, optional] IN PDEVMODE                      pDevmode,
  [in]           IN DWORD                         cbSize,
  [in]           IN BOOL                          bResolveConflicts,
  [in]           IN const PRINT_FEATURE_OPTION [] pFOPairs,
  [in]           IN DWORD                         cPairs,
  [out]          OUT PDWORD                       pcPairsWritten,
  [out]          OUT PDWORD                       pdwResult
);

パラメーター

[in, optional] pDevmode

DEVMODEW 構造体へのポインター。 このポインターが指定されている場合、 IPrintCoreHelperPS::SetOptions では、既定または現在の DEVMODEW 構造体ではなく 、pDevmode によって指される DEVMODEW 構造体を使用する必要があります。 プラグイン プロバイダーまたは IPrintOemPS::D evMode からこのメソッドを呼び出す場合は、このパラメーターが必要です。 その他のほとんどの状況では、 パラメーターは NULL にする必要があります。 コア ドライバーは 、pDevmodeNULL に設定すると、渡された DEVMODEW 構造体の状態ではなく、内部状態を変更します。 これは、完全な UI 置換などの操作中に必要です。DDI によって返される DEVMODEW 構造体 ( DrvDocumentPropertySheets など) は、コア ドライバーの UI モジュールによって処理されます。

[in] cbSize

pDevmode パラメーターによって指される DEVMODEW 構造体のサイズ (バイト単位)。

[in] bResolveConflicts

構成ファイルの PPD ビューの 1 つ以上の制約と、Pscript または印刷プロセッサによって実装される機能の制約によって発生する競合を IPrintCoreHelperPS::SetOptions で解決するかどうかを示すブール値。 TRUE の場合、このメソッドは競合の解決を試みる必要があります。 FALSE の場合、このメソッドは競合の解決を試みてはなりません。

[in] pFOPairs

PRINT_FEATURE_OPTION要素の配列。各要素には機能とオプションのペアが含まれます。 各機能とオプションのペアには、機能とその機能に対して選択するオプションが一覧表示されます。 すべての設定が順番に適用されます。 重複は許可されませんが、後で配列に表示される設定 (つまり、より高いインデックス) は、配列の前に表示される設定よりも優先されます。

[in] cPairs

pFOPairs パラメーターによって指される機能とオプションのペアの数。

[out] pcPairsWritten

IPrintCoreHelperPS::SetOptions が返されるか失敗する前に正常に保存された機能とオプションのペアの数を受け取る変数へのポインター。 このメソッドが正常に返された場合、 pcPairsWrittencPairs と同じ値を持ちます。 メソッドが失敗した場合、 pcPairsWritten は 0 から cPairs の値までの任意の値を持つことができます。 このパラメーターは省略可能であり、 NULL にすることができます。

[out] pdwResult

競合解決の状態を受け取る変数へのポインター。 状態には、次のいずれかの値を指定できます。

説明
SETOPTIONS_RESULT_NO_CONFLICT 新しい設定に対して、構成ファイルの PPD ビューで指定された制約に違反はありませんでした。
SETOPTIONS_RESULT_CONFLICT_RESOLVED 構成ファイルの PPD ビューで指定された少なくとも 1 つの制約に違反し、呼び出し元はメソッドで競合を解決する必要があることを要求しました。 この値により、競合が解決された設定が変更されます。
SETOPTIONS_RESULT_CONFLICT_NOT_RESOLVED 構成ファイルの PPD ビューで指定された少なくとも 1 つの制約に違反し、呼び出し元はメソッドが競合を解決しないように要求しました。 設定は変更されず、競合は残ります。

戻り値

IPrintCoreHelperPS::SetOptions は、次のいずれかの値を返す必要があります。

リターン コード 説明
S_OK 操作が成功しました。
E_INVALIDARG 1 つ以上の引数が無効であるか、機能がサポートされていません。
E_OUTOFMEMORY 結果配列のメモリを割り当てませんでした。

その他のエラーの場合、メソッドは標準の COM エラー コードを返す必要があります。

注釈

IPrintCoreHelperPS::SetOptions を使用すると、複数の設定を同時に変更したり、選択したすべてのオプションを設定した後に制約を解決したりできます。 オプションの変更は、 pFOPairs 配列の先頭から順番に適用されるため、この配列に同じ機能が 2 回出現する場合は、その機能の最後のオプションのみが選択されます。 オプションに対する変更は、 bResolveConflicts パラメーターが TRUE でない限りコミットされません。

ほとんどのシナリオでは、 bResolveConflicts パラメーターをTRUE に設定する必要があります。 競合の解決をユーザーに求めるメッセージを表示する場合は、このパラメーターを FALSE に設定します。

要件

要件
対象プラットフォーム デスクトップ
Header prcomoem.h (Prcomoem.h を含む)

こちらもご覧ください

IPrintCoreHelperPS

IPrintCoreHelperPS::GetOptions