IPrintCoreHelperUni::SetOptions 方法 (prcomoem.h)
IPrintCoreHelperUni::SetOptions 方法會同時設定多個功能選項組。
語法
HRESULT SetOptions(
[in, optional] IN PDEVMODE pDevmode,
[in] IN DWORD cbSize,
[in] IN BOOL bResolveConflicts,
[in] IN const PRINT_FEATURE_OPTION [] pFOPairs,
[in] IN DWORD cPairs,
[out] OUT PDWORD pcPairsWritten,
[out] OUT PDWORD pdwResult
);
參數
[in, optional] pDevmode
DEVMODEW 結構的指標。 如果提供這個指標, IPrintCoreHelperUni::SetOptions 應該使用 pDevmode 所指向的 DEVMODEW 結構,而不是預設或目前的 DEVMODEW 結構。 如果從外掛程式提供者或 IPrintOemPS::D evMode 呼叫此方法,則需要此參數。 在其他大部分情況下,參數應該是 NULL。 當核心驅動程式將 pDevmode 設定為 NULL 時,它會修改其內部狀態,而不是傳入 DEVMODEW 結構的內部狀態。 這在完整UI取代等作業期間是必要的,其中 DDI 所傳回的DEVMODEW結構,例如 DrvDocumentPropertySheets,正由核心驅動程式的UI模組提供服務。
[in] cbSize
pDevmode 參數所指向之 DEVMODEW 結構的大小,以位元組為單位。
[in] bResolveConflicts
布爾值,指出 IPrintCoreHelperUni::SetOptions 是否應該解決來自組態檔 GPD 檢視中一或多個條件約束的衝突,以及 Unidrv 或列印處理器所實作之功能的條件約束。 如果 為 TRUE,這個方法應該會嘗試解決衝突。 如果為 FALSE,這個方法不應該嘗試解決衝突。
[in] pFOPairs
PRINT_FEATURE_OPTION項目的陣列,其中每個元素都包含功能選項組。 每個功能選項組都會列出功能,以及針對該功能選取的選項。 所有設定都會循序套用。 不允許重複專案,但稍後出現在陣列中的設定 (,也就是在較高的索引) 覆寫稍早出現在陣列中的設定。
[in] cPairs
pFOPairs 參數所指向的功能選項組數目。
[out] pcPairsWritten
變數的指標,會接收 IPrintCoreHelperUni::SetOptions 傳回或失敗之前已成功儲存的功能選項組數目。 如果此方法成功傳回, pcPairsWritten 的值會與 cPairs 相同。 如果方法失敗, pcPairsWritten 可以有從零到 cPairs 值的任何值。 這個參數是選擇性的,而且可以是 NULL。
[out] pdwResult
接收衝突解決狀態之變數的指標。 狀態可以是下列其中一個值。
值 | Description |
---|---|
SETOPTIONS_RESULT_NO_CONFLICT | 與新設定相對,未違反組態檔 GPD 檢視中指定的條件約束。 |
SETOPTIONS_RESULT_CONFLICT_RESOLVED | 至少違反組態檔 GPD 檢視中指定的一個條件約束,而且呼叫端要求方法應該解決衝突。 此值會導致已解決衝突的變更設定。 |
SETOPTIONS_RESULT_CONFLICT_NOT_RESOLVED | 至少違反組態檔 GPD 檢視中指定的一個條件約束,而且呼叫端要求方法不應該解決衝突。 這些設定不會變更,而且會維持衝突。 |
傳回值
IPrintCoreHelperUni::SetOptions 應該會傳回下列其中一個值。
傳回碼 | 描述 |
---|---|
S_OK | 作業成功。 |
E_INVALIDARG | 一或多個自變數無效,或不支援此功能。 |
E_OUTOFMEMORY | 無法配置結果陣列的記憶體。 |
針對其他失敗,方法應該會傳回標準 COM 錯誤碼。
備註
IPrintCoreHelperUni::SetOptions 可用來同時進行多個設定變更,以及在設定所有選取的選項之後解析條件約束。 選項的變更會循序套用,從 pFOPairs 陣列的開頭開始,因此,如果相同的功能在此陣列中出現兩次,則只會選取功能的最後一個選項。 除非 bResolveConflicts 參數為 TRUE,否則不會認可選項的變更。
在大部分情況下, bResolveConflicts 參數應該設定為 TRUE。 如果您想要提示使用者解決衝突,請將此參數設定為 FALSE 。
規格需求
需求 | 值 |
---|---|
目標平台 | 桌面 |
標頭 | prcomoem.h (包含 Prcomoem.h) |