IWiaPropertyStorage::GetPropertyAttributes 方法 (wia_xp.h)

IWiaPropertyStorage::GetPropertyAttributes 方法检索指定属性集的访问权限和法律价值信息。

语法

HRESULT GetPropertyAttributes(
  [in]  ULONG          cpspec,
  [in]  PROPSPEC []    rgpspec,
  [out] ULONG []       rgflags,
  [out] PROPVARIANT [] rgpropvar
);

参数

[in] cpspec

类型: ULONG

指定要查询的属性属性的数目。

[in] rgpspec

类型: PROPSPEC[]

指定 设备信息属性常量的数组。 数组中的每个常量都选择要查询的属性。

[out] rgflags

类型: ULONG[]

一个数组,该数组接收 rgpspec 数组中指定的每个属性的属性属性描述符。 数组中的每个元素都是与按位 OR 运算组合的一个或多个描述符值。

[out] rgpropvar

类型: PROPVARIANT[]

一个数组,该数组接收 pPROPSPEC 数组中指定的每个属性的属性属性描述符。 有关详细信息,请参阅 PROPVARIANT

返回值

类型: HRESULT

此方法返回以下值之一或标准 COM 错误代码:

返回值 含义
S_OK 此方法成功。
S_FALSE 指定的属性名称不存在。 未检索任何属性。
STG_E_ACCESSDENIED 应用程序无权访问属性流,或者流可能已打开。
STG_E_INSUFFICIENTMEMORY 内存不足,无法完成此操作。
ERROR_NOT_SUPPORTED 不支持属性类型。
STG_E_INVALIDPARAMETER 一个或多个参数无效。 一个或多个 PROPSPEC 结构包含无效数据。
STG_E_INVALIDPOINTER 传递给此方法的一个或多个指针无效。
ERROR_NO_UNICODE_TRANSLATION 从 Unicode 到 ANSI 或 ANSI 到 Unicode 的转换失败。

注解

此方法检索属性访问权限和有效属性值。 访问权限报告属性是否可读、可写或两者均可。 有效的属性值指定为值范围、值列表或标志值组。 有关详细信息,请参阅 属性属性

如果属性访问权限标志设置了 WIA_PROP_NONE 位,则此属性没有法律值信息可用。 只读属性和具有二进制数据类型的属性是设置 WIA_PROP_NONE 位的属性的示例。

如果属性具有一系列有效值,则可以在完成此方法后通过 rgpropvar 参数确定它们。 ppvValidValues 参数指定 PROPVARIANT 结构的数组。

例如,如果将属性范围指定为 VT_VECTOR |VT_UI4,可以通过 结构成员检索范围信息

rgpropvar[n].caul.pElems[range_specifier]

其中 n 是检查的属性的索引号, range_specifier 为下列值之一:

范围说明符 含义
WIA_RANGE_MAX 属性可以设置为的最大值。
WIA_RANGE_MIN 属性可以设置为的最小值。
WIA_RANGE_NOM 普通或默认属性值。
WIA_RANGE_STEP 属性值之间的递增或递减。
 

如果属性具有有效值的列表,则应用程序会在此方法完成后通过 ppvValidValues 参数确定它们。

例如,如果将属性范围指定为 VT_VECTOR |VT_UI4,可以通过结构成员检索有效属性值的列表

rgpropspecValues[n].caul.pElems[list_specifier]

其中 n 是检查的属性的索引号, list_specifier 为下列值之一:

范围说明符 含义
WIA_LIST_COUNT 不包括名义值的列表元素总数。
WIA_LIST_NOM 属性的标称值。
WIA_LIST_VALUES 第一个值的索引号。
 

程序还使用 ppvValidValues 参数来检索有效的标志值。 例如,如果将属性标志指定为VT_UI4,则可以通过 结构成员确定有效的标志值

rgpropspec[n].caul.pElems[flag_specifier]

其中 n 是检查的属性的索引号, flag_specifier 为下列值之一:

范围说明符 含义
WIA_FLAG_NOM 属性的标称值。
WIA_FLAG_NUM_ELEMS 不包括名义值的列表元素总数。
WIA_FLAG_VALUES 设置了所有有效标志位的所有值。

要求

要求
最低受支持的客户端 Windows 2000 专业版、Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 wia_xp.h (包括 Wia.h)
Library Wiaguid.lib
DLL Wiaservc.dll

另请参阅

IPropertyStorage

IWiaPropertyStorage