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

メソッドは IPrintCorePS2::GetOptionAttribute 、オプション属性リストまたは特定のオプション属性の値を取得します。

構文

HRESULT GetOptionAttribute(
  [in]  PDEVOBJ pdevobj,
  [in]  DWORD   dwFlags,
  [in]  PCSTR   pszFeatureKeyword,
  [in]  PCSTR   pszOptionKeyword,
  [in]  PCSTR   pszAttribute,
  [out] PDWORD  pdwDataType,
  [out] PBYTE   pbData,
  [in]  DWORD   cbSize,
  [out] PDWORD  pcbNeeded
);

パラメーター

[in] pdevobj

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

[in] dwFlags

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

[in] pszFeatureKeyword

クエリを実行する 1 つの機能キーワード (keyword)を指定する ASCII 文字列を含む呼び出し元が指定したバッファーへのポインター。

[in] pszOptionKeyword

クエリを実行する単一のオプションキーワード (keyword)を指定する ASCII 文字列を含む呼び出し元が指定したバッファーへのポインター。 この値は、 IPrintCorePS2::EnumOptions の以前の呼び出しから取得できます。

[in] pszAttribute

要求された 1 つの属性を指定する ASCII 文字列を含む呼び出し元が指定したバッファーへのポインター。 このパラメーターが NULL の場合、呼び出し元は、オプションに特定の属性名を指定するのではなく、オプションに対してサポートされているすべての属性名のリストを要求します。

[out] pdwDataType

要求された属性のデータ型を指定する値を受け取るメモリ位置へのポインター。 この値は、printoem.h で定義されている EATTRIBUTE_DATATYPE 列挙の列挙子です。

[out] pbData

要求されたデータを受信する呼び出し元が指定したバッファーへのポインター。 要求を満たすために必要なバイト数をクエリするには、このパラメーターを NULL に設定 します

[in] cbSize

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

[out] pcbNeeded

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

戻り値

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

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

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

E_INVALIDARG
メソッドが存在しない属性のクエリを実行しようとしました。

機能キーワード (keyword)名前またはオプションキーワード (keyword)名前が認識されませんでした。

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

E_FAIL
メソッドが失敗しました。

注釈

このメソッドが pszAttribute パラメーターと pbData パラメーターを NULL に設定して呼び出された場合、このメソッドは*pcbNeeded をオプションでサポートされているすべての属性名のリストに必要なバイト数に設定して を返します。 メソッドが 2 回目に呼び出され、 pszAttributeNULL に設定され、 pbData が前の呼び出しで *pcbNeeded で指定されたサイズのバッファーを指している場合、メソッドは *pdwDataType を kADT_ASCII ( EATTRIBUTE_DATATYPE 列挙型の列挙子) に設定し 、pbData がオプションでサポートされているすべての属性名の null 区切りリストを指します。 このリストは、2 つの null 文字で終了します。

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

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

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

要件

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

こちらもご覧ください

DEVOBJ

IPrintCorePS2

IPrintCorePS2::EnumOptions

IPrintCorePS2::GetFeatureAttribute

IPrintCorePS2::GetGlobalAttribute