IPrintCoreHelper::WhyConstrained 方法 (prcomoem.h)
IPrintCoreHelper::WhyConstrained 方法提供選項清單,這些選項會限制目前組態中的指定功能選項組。
語法
HRESULT WhyConstrained(
[in] const DEVMODE *pDevmode,
[in] DWORD cbSize,
[in] PCSTR pszFeatureKeyword,
[in] PCSTR pszOptionKeyword,
[out] const PRINT_FEATURE_OPTION **ppFOConstraints,
[out] DWORD *pdwNumOptions
);
參數
[in] pDevmode
DEVMODEW 結構的指標。 如果提供此指標, IPrintCoreHelper::WhyConstrained 應該使用 pDevmode 所指向的 DEVMODEW 結構,而不是預設或目前的 DEVMODEW 結構。 如果從外掛程式提供者或 IPrintOemPS::D evMode 或 IPrintOemUni::D evMode 呼叫此方法,則需要此參數。 在大部分的其他情況下,參數應該是 NULL。 當核心驅動程式將 pDevmode 設定為 NULL 時,它會修改其內部狀態,而不是傳入的 DEVMODEW 結構。 在完整 UI 取代之類的作業期間,這是必要的,其中 DDI 所傳回的 DEVMODEW 結構,例如 DrvDocumentPropertySheets,正由核心驅動程式的 UI 模組提供服務。
[in] cbSize
pDevmode 參數所指向之 DEVMODEW 結構的大小,以位元組為單位。
[in] pszFeatureKeyword
ANSI 字串的指標,其中包含功能的名稱。 功能名稱應該對應至 GPD 或 PPD 檔案中使用的關鍵詞。
[in] pszOptionKeyword
ANSI 字串的指標,其中包含選項的名稱。 選項名稱應該對應至 GPD 或 PPD 檔案中使用的關鍵詞。
[out] ppFOConstraints
PRINT_FEATURE_OPTION項目的陣列指標。 當 IPrintCoreHelper::WhyConstrained 傳回時,陣列會包含限制 pszOptionKeyword 參數中所指定選項的功能元素組清單。
[out] pdwNumOptions
變數的指標,可接收 ppFOConstraints 參數所指向之陣列中的功能選項組數目。
傳回值
IPrintCoreHelper::WhyConstrained 應該傳回下列其中一個值。
傳回碼 | 描述 |
---|---|
|
作業成功。 |
|
一或多個自變數無效,或不支援此功能。 |
|
無法配置結果陣列的記憶體。 |
備註
如果指定的功能選項組不受限制, IPrintCoreHelper::WhyConstrained 會傳回S_OK,但會傳回 *pdwFOPairs 設定為 0,並將 *ppFOConstraints[0] 設定為 NULL。
請注意,此方法的結果可能不包含影響目前選取選項的所有選項。 對於 Unidrv 驅動程式,此列表會包含每個作用中條件約束集合中的至少一個選項。 不過,如果有無效的組合列出兩個以上的功能選項組,則清單中只會包含一個選項。
規格需求
需求 | 值 |
---|---|
目標平台 | 桌面 |
標頭 | prcomoem.h (包括 Prcomoem.h) |