次の方法で共有


IPrintCoreUI2::EnumConstrainedOptions メソッド (prcomoem.h)

メソッドは IPrintCoreUI2::EnumConstrainedOptions 、制約される機能のオプションを決定します。

構文

HRESULT EnumConstrainedOptions(
  [in]  POEMUIOBJ poemuiobj,
  [in]  DWORD     dwFlags,
  [in]  PCSTR     pszFeatureKeyword,
  [out] PZZSTR    pmszConstrainedOptionList,
  [in]  DWORD     cbSize,
  [out] PDWORD    pcbNeeded
);

パラメーター

[in] poemuiobj

現在のコンテキスト ( OEMUIOBJ 構造体) へのポインター。

[in] dwFlags

は予約されており、0 に設定する必要があります。

[in] pszFeatureKeyword

呼び出し元に関心のある単一の機能キーワード (keyword)を含む呼び出し元が指定したバッファーへのポインター。

[out] pmszConstrainedOptionList

この機能のオプション キーワードの一覧を受け取る呼び出し元指定バッファーへのポインター MULTI_SZ形式。 各キーワード (keyword)は、現在の構成で制約されているオプションを表します。

リストを入力せずに制約付きオプション・リストのサイズ (*pcbNeeded) を照会するには、このパラメーターを NULL に設定します。

[in] cbSize

pmszConstrainedOptionList が指すバッファーのサイズをバイト単位で指定します。

[out] pcbNeeded

制約付きオプション リストの実際のサイズ (バイト単位) を受け取るメモリ位置へのポインター。

戻り値

このメソッドは、次のいずれかの値を返す必要があります。

リターン コード 説明
S_OK
メソッドが成功しました。 このメソッドは、機能のオプションが制約されていない場合にもこの値を返す必要があります。 この場合、メソッドは pmszConstrainedOptionList が指すバッファーに 1 つの null 文字を配置し、**pcbNeeded* を 1 に設定する必要があります。
E_OUTOFMEMORY
cbSize の値が、出力バッファーに書き込まれるバイト数 (pmszConstrainedOptionList が指すバッファー) よりも小さくなっています。

pmszConstrainedOptionListNULL に設定してメソッドが呼び出されました。

E_INVALIDARG
pszFeatureKeyword が指す文字列は、認識された機能ではありません。

無効なコンテキスト オブジェクトを指す poemuiobj パラメーター。

機能の持続性が 、peomuiobj が指すコンテキスト オブジェクトの持続性と一致しませんでした。 (「 プロパティ シート ページ Driver-Supplied 置き換える」を参照してください)。

E_FAIL
メソッドが失敗しました。
E_NOTIMPL
メソッドがサポートされていません。

注釈

このメソッドは、コア ドライバーの標準 UI ページを完全に置き換える Windows XP Pscript5 UI プラグインでのみサポートされ、UI プラグインの IPrintOemUI::D ocumentPropertySheets および IPrintOemUI::D evicePropertySheets 関数とそのプロパティ シート コールバック ルーチンの間にのみサポートされます。 詳細については、「 プロパティ シート ページ Driver-Supplied 置き換える 」を参照してください。

データ アクセスごとに 2 つの呼び出しを行う必要性を減らすには、メソッドに固定サイズ (1 KB など) の出力バッファーを渡し、関数の戻り値をチェックします。 メソッドがS_OKを返す場合、バッファーには既に目的のデータが含まれています。 メソッドがE_OUTOFMEMORYを返す場合、*pcbNeeded の値は目的のデータを保持するために必要なバッファー サイズです。 呼び出し元は、その大きなサイズのバッファーを割り当て、メソッドの 2 回目の呼び出しを続行する必要があります。

要件

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

こちらもご覧ください

IPrintCoreUI2

IPrintCoreUI2::WhyConstrained

IPrintOemUI::D evicePropertySheets

IPrintOemUI::D ocumentPropertySheets

OEMUIOBJ