共用方式為


IPrintCoreUI2::GetOptionAttribute 方法 (prcomoem.h)

IPrintCoreUI2::GetOptionAttribute 方法會擷取選項屬性清單或特定選項屬性的值。

語法

HRESULT GetOptionAttribute(
  [in]  POEMUIOBJ poemuiobj,
  [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] poemuiobj

目前內容的指標,OEMUIOBJ 結構。

[in] dwFlags

已保留 ,且必須設定為零。

[in] pszFeatureKeyword

呼叫端提供的緩衝區指標,其中包含指定要查詢之單一功能關鍵詞的 ASCII 字串。

[in] pszOptionKeyword

呼叫端提供的緩衝區指標,其中包含指定要查詢之單一選項關鍵詞的 ASCII 字串。 這個值可以從先前呼叫 IPrintCoreUI2::EnumOptions取得。

[in] pszAttribute

呼叫端提供的緩衝區指標,其中包含指定所要求之單一屬性的 ASCII 字串。 如果此參數 NULL,則呼叫端會要求選項的所有支援屬性名稱清單,而不是指定選項的特定屬性名稱。

[out] pdwDataType

接收指定所要求屬性數據類型之值的記憶體位置指標。 這個值是 EATTRIBUTE_DATATYPE 列舉的列舉值。

[out] pbData

接收要求數據的呼叫端提供的緩衝區指標。 若要只查詢滿足要求所需的位元元數目,請將此參數設定為 NULL

[in] cbSize

指定 pbData所指向之緩衝區的大小,以位元組為單位。

[out] pcbNeeded

記憶體位置的指標,該位置會接收所要求數據的實際大小,以位元組為單位。

傳回值

這個方法必須傳回下列其中一個值。

傳回碼 描述
S_OK
方法成功。
E_OUTOFMEMORY
cbSize 中的值小於要寫入輸出緩衝區的位元組數目(pbData所指向的緩衝區)。

呼叫 方法時,pbData 設定為 NULL

E_INVALIDARG
方法嘗試查詢不存在的屬性。

無法辨識功能關鍵詞名稱或選項關鍵詞名稱。

poemuiobj 參數指向無效的內容物件。

E_FAIL
方法失敗

言論

只有 Windows XP Pscript5 外掛程式才支援此方法,不適用於 Unidrv 外掛程式。

如果呼叫此方法時,其 pszAttribute,並將 pbData 參數設定為 NULL,則方法會傳回 * 設為選項所有支援屬性名稱清單所需的位元組數目。 如果方法第二次呼叫,pszAttribute 設定為 NULLpbData 指向上一個呼叫中指定之大小 的緩衝區, 方法會以 *pdwDataType 傳回 , 設定為 kADT_ASCII (EATTRIBUTE_DATATYPE 列舉型別的列舉值),pbData 指向選項所有支援屬性名稱的 null 分隔清單。 此清單會以兩個 Null 字元終止。

若要減少每次數據存取兩次呼叫的需求,請傳遞固定大小的輸出緩衝區 (例如 1 KB),然後檢查函式傳回值。 如果方法傳回S_OK,則緩衝區已經包含感興趣的數據。 如果方法傳回E_OUTOFMEMORY,* 中的值就是保存感興趣數據的緩衝區大小。 接著,呼叫端應該配置大小較大的緩衝區,然後繼續進行方法的第二次呼叫。

如需詳細資訊,請參閱使用 GetOptionAttribute

要求

要求 價值
目標平臺 桌面
標頭 prcomoem.h (include Prcomoem.h)

另請參閱

IPrintCoreUI2

IPrintCoreUI2::EnumOptions

IPrintCoreUI2::GetFeatureAttribute

IPrintCoreUI2::GetGlobalAttribute

OEMUIOBJ