IPrintCoreUI2::GetGlobalAttribute メソッド (prcomoem.h)
メソッドは IPrintCoreUI2::GetGlobalAttribute
、グローバル属性リストまたは特定のグローバル属性の値を取得します。
構文
HRESULT GetGlobalAttribute(
[in] POEMUIOBJ poemuiobj,
[in] DWORD dwFlags,
[in] PCSTR pszAttribute,
[out] PDWORD pdwDataType,
[out] PBYTE pbData,
[in] DWORD cbSize,
[out] PDWORD pcbNeeded
);
パラメーター
[in] poemuiobj
現在のコンテキスト ( OEMUIOBJ 構造体) へのポインター。
[in] dwFlags
は予約されており、0 に設定する必要があります。
[in] pszAttribute
要求された 1 つの属性を指定する ASCII 文字列を含む、呼び出し元が指定したバッファーへのポインター。 このパラメーターが NULL の場合、呼び出し元は、特定のグローバル属性名を指定するのではなく、サポートされているすべてのグローバル属性名のリストを要求します。
[out] pdwDataType
要求された属性のデータ型を指定する値を受け取るメモリ位置へのポインター。 この値は、printoem.h で定義されている EATTRIBUTE_DATATYPE 列挙の列挙子です。
[out] pbData
要求されたデータを受信する呼び出し元が指定したバッファーへのポインター。 要求を満たすために必要なバイト数を照会するには、このパラメーターを NULL に設定 します。
[in] cbSize
pbData が指すバッファーのサイズをバイト単位で指定します。
[out] pcbNeeded
要求されたデータの実際のサイズ (バイト単位) を受け取るメモリ位置へのポインター。
戻り値
このメソッドは、次のいずれかの値を返す必要があります。
リターン コード | 説明 |
---|---|
|
メソッドが成功しました。 |
|
cbSize の値は、出力バッファー (pbData が指すバッファー) に書き込まれるバイト数よりも小さくなっています。
pbData を NULL に設定して メソッドが呼び出されました。 |
|
メソッドが存在しない属性を照会しようとしました。
無効なコンテキスト オブジェクトを指す poemuiobj パラメーター。 |
|
メソッドが失敗しました |
注釈
このメソッドは、Unidrv プラグインではなく、Windows XP Pscript5 プラグインでのみサポートされます。
pszAttribute パラメーターと pbData パラメーターを NULL に設定してこのメソッドを呼び出すと、サポートされているすべてのグローバル属性名の一覧に必要なバイト数に *pcbNeeded が設定された 状態で メソッドが返されます。 メソッドが 2 回目に呼び出され、 pszAttribute が NULL に設定され、 pbData が前の呼び出しで *pcbNeeded で指定されたサイズのバッファーを指している場合、メソッドは *pdwDataType を kADT_ASCII ( EATTRIBUTE_DATATYPE 列挙型の列挙子) に設定し、 pbData を返し、サポートされているすべてのグローバル属性名の null 区切りリストを指します。 このリストは、2 つの null 文字で終了します。
データ アクセスごとに 2 つの呼び出しを行う必要性を減らすには、メソッドに固定サイズ (1 KB など) の出力バッファーを渡し、関数の戻り値をチェックします。 メソッドがS_OKを返す場合、バッファーには既に目的のデータが含まれています。 メソッドがE_OUTOFMEMORYを返す場合、*pcbNeeded の値は目的のデータを保持するために必要なバッファー サイズです。 呼び出し元は、その大きなサイズのバッファーを割り当て、メソッドの 2 回目の呼び出しを続行する必要があります。
詳細については、「 GetGlobalAttribute の使用」を参照してください。
要件
要件 | 値 |
---|---|
対象プラットフォーム | デスクトップ |
Header | prcomoem.h (Prcomoem.h を含む) |
こちらもご覧ください
IPrintCoreUI2::GetFeatureAttribute