IPrintCorePS2::GetOptions メソッド (prcomoem.h)

メソッドはIPrintCorePS2::GetOptions、ドライバーの現在の機能設定を、機能/オプションのキーワード (keyword)ペアの一覧の形式で取得します。

構文

HRESULT GetOptions(
  [in]  PDEVOBJ pdevobj,
  [in]  DWORD   dwFlags,
  [in]  PCZZSTR pmszFeaturesRequested,
  [in]  DWORD   cbIn,
  [out] PZZSTR  pmszFeatureOptionBuf,
  [in]  DWORD   cbSize,
  [out] PDWORD  pcbNeeded
);

パラメーター

[in] pdevobj

DEVOBJ 構造体へのポインター。

[in] dwFlags

は予約済みであり、0 に設定する必要があります。

[in] pmszFeaturesRequested

設定が要求される機能キーワードの一覧 (MULTI_SZ形式) を含む呼び出し元が指定したバッファーへのポインター。 すべての機能の設定を取得するには、このパラメーターを NULL に設定します。

[in] cbIn

pmszFeaturesRequested が指すバッファーのサイズをバイト単位で指定します。 サイズには、最後のMULTI_SZ null 文字が含まれます。

[out] pmszFeatureOptionBuf

ドライバーの設定から取得した機能/オプションキーワード (keyword)ペアの一覧 (MULTI_SZ形式) を受け取る呼び出し元が指定したバッファーへのポインター。 各機能/オプションキーワード (keyword)ペアには、特徴キーワード (keyword)名、null 文字、オプションキーワード (keyword)名前、および別の null 文字が含まれます。 リストは 2 つの NULL 文字で終了します。

[in] cbSize

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

[out] pcbNeeded

要求されたデータの実際のサイズ (バイト単位) を受け取るメモリ位置へのポインター。

戻り値

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

リターン コード 説明
S_OK
メソッドが成功しました。
E_OUTOFMEMORY
cbSize の値が、出力バッファーに書き込まれるバイト数 (pmszFeatureOptionBuf が指すバッファー) よりも小さかった。

pmszFeatureOptionBuf をNULL に設定して、 メソッドが呼び出されました。

E_INVALIDARG
入力バッファー ( pmszFeaturesRequested が指すバッファー) が提供されましたが、その内容はMULTI_SZ形式ではありません。

pdevobj パラメーターが無効なドライバー コンテキスト オブジェクトを指しています。

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

注釈

このメソッドは、 ドキュメント固定 機能とプリンター固定機能 の両方を サポートします。 これは、コア ドライバーが DrvEnablePDEV 処理を完了し、すべてのオプション設定を設定した後でのみサポートされます。 サポートされていないときに を IPrintCorePS2::GetOptions 呼び出すと、E_NOTIMPLが返されます。 たとえば、コア ドライバーがレンダリング プラグインの IPrintOemPS::EnablePDEV メソッドを呼び出しても、ドライバーは DrvEnablePDEV 処理を引き続き使用するため、プラグインがプラグインの IPrintOemPS::D evMode メソッド内でを呼び出IPrintCorePS2::GetOptionsした場合、プラグインはE_NOTIMPL戻り値を受け取ります。 ただし、コア ドライバーが DrvEnablePDEV 処理を完了すると、プラグインの IPrintOemPS::EnablePDEV メソッドが呼び出されるため、プラグインは IPrintOemPS::EnablePDEV メソッド内で正常に呼び出IPrintCorePS2::GetOptionsされます。

要求された機能キーワード (keyword)が認識されない場合、または機能が認識されていても、その機能に対してオプションが選択されていない場合、その機能は無視され、機能/オプションキーワード (keyword)ペアは出力バッファーに配置されません。

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

このメソッドは、Pscript5 レンダー プラグインでサポートされています。

詳細については、「 GetOptions と SetOptions の使用」を参照してください。

要件

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

こちらもご覧ください

DEVOBJ

DrvEnablePDEV

IPrintCorePS2

IPrintOemPS::D evMode

IPrintOemPS::EnablePDEV