IPrintCoreHelperUni::WhyConstrained 方法 (prcomoem.h)

方法 IPrintCoreHelperUni::WhyConstrained 提供一个选项列表,这些选项约束当前配置中的指定功能选项对。

语法

HRESULT WhyConstrained(
  [in, optional] const DEVMODE              *pDevmode,
  [in]           DWORD                      cbSize,
  [in]           PCSTR                      pszFeatureKeyword,
  [in]           PCSTR                      pszOptionKeyword,
  [out]          const PRINT_FEATURE_OPTION **ppFOConstraints,
  [out]          DWORD                      *pdwNumOptions
);

参数

[in, optional] pDevmode

指向 DEVMODEW 结构的指针。 如果提供了此指针, IPrintCoreHelperUni::WhyConstrained 则应使用 pDevmode 指向的 DEVMODEW 结构,而不是默认或当前的 DEVMODEW 结构。 如果从插件提供程序或 IPrintOemUni::D evMode 调用此方法,则此参数是必需的。 在大多数其他情况下, 参数应为 NULL。 当核心驱动程序将 pDevmode 设置为 NULL 时,它会修改其内部状态,而不是传入的 DEVMODEW 结构的状态。 在完全替换 UI 等操作(其中 DDI 返回的 DEVMODEW 结构(如 DrvDocumentPropertySheets)由核心驱动程序的 UI 模块提供服务时,这是必需的。

[in] cbSize

pDevmode 参数指向的 DEVMODEW 结构的大小(以字节为单位)。

[in] pszFeatureKeyword

指向包含特征名称的 ANSI 字符串的指针。 功能名称应对应于 GPD 文件中使用的关键字 (keyword) 。

[in] pszOptionKeyword

指向包含选项名称的 ANSI 字符串的指针。 选项名称应对应于 GPD 文件中使用的关键字 (keyword) 。

[out] ppFOConstraints

指向 PRINT_FEATURE_OPTION 元素数组的指针。 返回时 IPrintCoreHelperUni::WhyConstrained ,数组包含功能元素对的列表,这些选项约束 pszOptionKeyword 参数中指定的选项。

[out] pdwNumOptions

指向变量的指针,该变量接收 ppFOConstraints 参数指向的数组中特征选项对的数目。

返回值

IPrintCoreHelperUni::WhyConstrained 应返回以下值之一。

返回代码 说明
S_OK
操作成功。
E_INVALIDARG
一个或多个参数无效,或者不支持该功能。
E_OUTOFMEMORY
无法分配结果数组的内存。
 

对于其他故障,方法应返回标准 COM 错误代码。

注解

如果指定的功能选项对不受约束, IPrintCoreHelperUni::WhyConstrained 将返回S_OK但返回时*pdwFOPairs 设置为 0,并将 *ppFOConstraints[0] 设置为 NULL

请注意,此方法的结果可能不包含影响当前所选选项的所有选项。 但是,如果存在列出两个以上功能选项对的无效组合,则该组合中只有一个选项将包含在列表中。

要求

要求
目标平台 桌面
标头 prcomoem.h (包括 Prcomoem.h)

另请参阅

IPrintCoreHelperUni

IPrintCoreHelperUni::EnumConstrainedOptions