IPrintCoreUI2::SetOptions 方法 (prcomoem.h)

方法 IPrintCoreUI2::SetOptions 會設定驅動程式的功能設定。

語法

HRESULT SetOptions(
  [in]  POEMUIOBJ poemuiobj,
  [in]  DWORD     dwFlags,
  [in]  PCZZSTR   pmszFeatureOptionBuf,
  [in]  DWORD     cbIn,
  [out] PDWORD    pdwResult
);

參數

[in] poemuiobj

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

[in] dwFlags

指定核心驅動程式是否要解決衝突。 此參數必須設定為下列其中一個值:

意義
SETOPTIONS_FLAG_KEEP_CONFLICT 要求核心驅動程式不要解決任何發生的衝突。
SETOPTIONS_FLAG_RESOLVE_CONFLICT 要求核心驅動程序解決任何發生的衝突。

[in] pmszFeatureOptionBuf

呼叫端提供的緩衝區指標,其中包含MULTI_SZ格式的功能/選項關鍵片語清單。 此清單中的每個專案會以 Null 字元隔開下一個專案,且清單會以兩個 Null 字元終止。

[in] cbIn

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

[out] pdwResult

接收下列其中一個值的記憶體位置指標。 這些常數定義於 printoem.h 中。

意義
SETOPTIONS_RESULT_CONFLICT_REMAINED 核心驅動程序發現衝突,但已讓它們無法解決。
SETOPTIONS_RESULT_CONFLICT_RESOLVED 核心驅動程式找到並解決所有衝突。
SETOPTIONS_RESULT_NO_CONFLICT 核心驅動程式找不到任何衝突。

傳回值

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

傳回碼 描述
S_OK
此方法已成功。
E_NOTIMPL
不支援此方法。

不支援 dwLevel 所指定的型別結構。

E_INVALIDARG
dwFlags 中的值不正確。

pmszFeatureOptionBuf) 所指向的輸入緩衝區 (不是MULTI_SZ格式。

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

E_FAIL
方法失敗

備註

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

系統會呼叫這個方法,以使用功能/選項關鍵片語清單來設定驅動程式的功能設定。 呼叫端可以使用 IPrintCoreUI2::GetOptions 方法來存取產生的功能設定。

如果這個方法傳回S_OK以外的任何值,則不會在驅動程式的功能設定中進行任何變更。

pmszFeatureOptionBuf 輸入緩衝區的建構方式必須與 IPrintCoreUI2::GetOptions 方法的輸出緩衝區相同。 也就是說,功能/選項關鍵片語必須採用MULTI_SZ格式,而且清單中的每個項目都會以 null 字元隔開下一個專案。 一對 Null 字元會終止清單。

如果輸入緩衝區包含無法辨識的功能關鍵詞或其 option 關鍵詞,或是目前黏性模式中辨識功能,但不支援此功能 (請參閱 取代 Driver-Supplied 屬性表頁面) ,則會忽略功能/選項組,而且該功能的目前選項會繼續生效。

只有完全取代核心驅動程式標準 UI 頁面的 UI 外掛程式才支援這個方法,而且只有在 UI 外掛程式的 IPrintOemUI::D ocumentPropertySheetsIPrintOemUI::D evicePropertySheets 函式及其屬性表回呼例程期間才支援此方法。

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

規格需求

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

另請參閱

IPrintCoreUI2

IPrintCoreUI2::GetOptions

IPrintOemUI::D evicePropertySheets

IPrintOemUI::D ocumentPropertySheets

OEMUIOBJ