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 文件中使用的关键字 (keyword) 。
[in] pszOptionKeyword
指向包含选项名称的 ANSI 字符串的指针。 选项名称应对应于 GPD 或 PPD 文件中使用的关键字 (keyword) 。
[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) |