IPrintCoreUI2::WhyConstrained メソッドは、指定した機能/オプションの選択が制約される理由を決定します。
構文
HRESULT WhyConstrained(
[in] POEMUIOBJ poemuiobj,
[in] DWORD dwFlags,
[in] PCSTR pszFeatureKeyword,
[in] PCSTR pszOptionKeyword,
[out] PZZSTR pmszReasonList,
[in] DWORD cbSize,
[out] PDWORD pcbNeeded
);
パラメーター
[in] poemuiobj
現在のコンテキストへのポインター。OEMUIOBJ 構造体。
[in] dwFlags
予約済みであり、0 に設定する必要があります。
[in] pszFeatureKeyword
呼び出し元に関心のある単一の特徴キーワードを含む呼び出し元が指定したバッファーへのポインター。
[in] pszOptionKeyword
option キーワードを含む呼び出し元が指定したバッファーへのポインター。
[out] pmszReasonList
指定した機能/オプションに制約を配置する機能/オプション キーワード ペアの一覧を受け取る呼び出し元が指定したバッファーへのポインター。 このリストはMULTI_SZ形式で、リスト内の各項目は null 文字で区切られます。 リストは 2 つの null 文字で終了します。
リストを入力せずに理由リストのサイズ (*pcbNeeded) を照会するには、このパラメーターを NULL 設定します。
[in] cbSize
pmszReasonList が指すバッファーのサイズバイト単位で指定します。
[out] pcbNeeded
理由リストの実際のサイズ (バイト単位) を受け取るメモリ位置へのポインター。
戻り値
このメソッドは、次のいずれかの値を返す必要があります。
| リターン コード | 形容 |
|---|---|
|
メソッドは成功しました。 |
|
cbSize の値が、出力バッファーに書き込まれるバイト数 (pmszReasonList 指すバッファー) よりも小さかった。
このメソッドは、pmszReasonList null 設定 呼び出されました。 |
|
このメソッドはサポートされていません。 |
|
の パラメーターが無効なコンテキスト オブジェクトを指しています。
機能キーワードまたはオプション キーワードが認識されませんでした。 機能の持続性 (プロパティ シート ページDriver-Supplied 置き換えるを参照) は、現在のコンテキストで指定されているのと一致しませんでした。 |
|
メソッドが失敗しました |
備考
このメソッドは、コア ドライバーの標準 UI ページを完全に置き換える Windows XP Pscript5 UI プラグインでのみサポートされ、UI プラグインの IPrintOemUI::D ocumentPropertySheets および IPrintOemUI::D evicePropertySheets 関数、およびプロパティ シート コールバック ルーチン中にのみサポートされます。 詳細については、「プロパティ シート ページ Driver-Supplied 置き換える」 を参照してください。
OEM UI のユーザーが制約されている項目を選択しようとすると、呼び出し元は、このメソッドを使用して、アイテムが制約されている理由を説明するメッセージを表示できます。 このメソッドから制御が戻ると、pmszReasonList は、現在のドライバー設定に表示される 1 つ以上の機能/オプション ペアの一覧を指しますが、選択した機能/オプション キーワードと競合します。 競合がない場合、メソッドはS_OKを返し、pmszReasonList null 文字のみを含む空の ASCII 文字列を入力し、*pcbNeeded を 1 に設定する必要があります。
データ アクセスごとに 2 つの呼び出しを行う必要性を減らすには、メソッドに固定サイズ (1 KB など) の出力バッファーを渡し、関数の戻り値を確認します。 メソッドがS_OKを返す場合、バッファーには対象のデータが既に含まれています。 メソッドがE_OUTOFMEMORYを返す場合、*pcbNeeded の値は、目的のデータを保持するために必要なバッファー サイズです。 呼び出し元は、その大きなサイズのバッファーを割り当て、メソッドの 2 番目の呼び出しを続行する必要があります。
必要条件
| 要件 | 価値 |
|---|---|
| ターゲット プラットフォーム の | デスクトップ |
| ヘッダー | prcomoem.h (Prcomoem.h を含む) |
関連項目
IPrintCoreUI2::EnumConstrainedOptions
IPrintOemUI::D evicePropertySheets
IPrintOemUI::D ocumentPropertySheets
OEMUIOBJ を する