IPrintCoreUI2::GetOptions 方法 (prcomoem.h)

方法 IPrintCoreUI2::GetOptions 會以功能/選項關鍵片語清單的格式擷取驅動程式目前的功能設定。

語法

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

參數

[in] poemuiobj

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

[in] dwFlags

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

[in] pmszFeaturesRequested

呼叫端提供的緩衝區指標,其中包含MULTI_SZ格式) 要求設定的功能關鍵詞清單 (。 將此參數設定為 NULL ,以取得所有功能的設定。

[in] cbIn

指定 pmszFeaturesRequested 所指向緩衝區的大小,以位元組為單位。 大小包含最後一個MULTI_SZ null 字元。

[out] pmszFeatureOptionBuf

呼叫端提供的緩衝區指標,接收從驅動程式設定取得MULTI_SZ格式 (功能/選項關鍵片語清單) 。 每個功能/選項關鍵片語都包含功能關鍵詞名稱、Null 字元、選項關鍵詞名稱,以及另一個 Null 字元。 清單會以兩個 Null 字元終止。

[in] cbSize

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

[out] pcbNeeded

記憶體位置的指標,該位置會接收功能/選項關鍵片語的實際大小,以位元組為單位。

傳回值

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

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

方法已呼叫 ,並將 pmszFeatureOptionBuf 設定為 NULL

E_INVALIDARG
已提供 pmszFeaturesRequested) 所指向的緩衝區 (輸入緩衝區,但其內容不是MULTI_SZ格式。

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

E_NOTIMPL
不支援此方法。
E_FAIL
方法失敗

備註

只有完全取代核心驅動程式標準 UI 頁面的 Windows XP Pscript5 UI 外掛程式才支援這個方法,而且只有在 UI 外掛程式的 IPrintOemUI::D ocumentPropertySheetsIPrintOemUI::D evicePropertySheets 函式及其屬性表回呼例程期間才支援此方法。 如需詳細資訊 ,請參閱取代 Driver-Supplied 屬性表頁面

如果無法辨識或辨識要求的功能關鍵詞,但在目前黏性模式中不支援, (檔黏性列印機黏性 -- 請參閱 取代 Driver-Supplied 屬性表頁面) ,或已辨識功能關鍵詞,但目前沒有選項選取,只會忽略此功能,而且功能/選項關鍵詞組不會放在輸出緩衝區中。

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

如需詳細資訊,請參閱 使用 GetOptions 和 SetOptions

規格需求

需求
目標平台 桌面
標頭 prcomoem.h (包含 Prcomoem.h)

另請參閱

IPrintCoreUI2

IPrintCoreUI2::SetOptions

IPrintOemUI::D evicePropertySheets

IPrintOemUI::D ocumentPropertySheets

OEMUIOBJ