iWMDMStorage3::SetEnumPreference 方法 (mswmdm.h)

SetEnumPreference 方法设置存储的首选视图模式。

语法

HRESULT SetEnumPreference(
  [in, out] WMDM_STORAGE_ENUM_MODE *pMode,
  [in]      DWORD                  nViews,
  [in]      WMDMMetadataView       *pViews
);

参数

[in, out] pMode

存储枚举器的所需模式。 有关模式的更多详细信息,请参阅 WMDM_STORAGE_ENUM_MODE。 如果 pMode 的值设置为 ENUM_MODE_USE_DEVICE_PREF,则返回时,根据设备首选项将其设置为 ENUM_MODE_RAW 或 ENUM_MODE_METADATA_VIEWS。

[in] nViews

提供的视图定义数。

如果 pMode 的值ENUM_MODE_RAW或 pMode 的值ENUM_MODE_USE_DEVICE_PREF并且设备不喜欢元数据视图,则忽略此参数。

如果 pMode 的值ENUM_MODE_METADATA_VIEWS或 pMode 的值ENUM_MODE_USE_DEVICE_PREF且设备首选元数据视图,则此参数仍可以为 0。 在这种情况下,Windows Media 设备管理器使用其默认元数据视图。

如果 nViews 的值为 0, 则 ppViews 必须为 NULL。 如果 nViews 的值不为 0,则 ppViews 必须指向包含 nViews 元素的 WMDMMetadataView 结构的数组。

[in] pViews

视图定义的数组。 数组的长度必须等于 nViews

如果 pMode 的值ENUM_MODE_RAW或 pMode 的值ENUM_MODE_USE_DEVICE_PREF并且设备不喜欢元数据视图,则忽略此参数。

如果 pMode 的值ENUM_MODE_METADATA_VIEWS或者 pMode 的值ENUM_MODE_USE_DEVICE_PREF并且设备首选元数据视图,则此参数仍可为 NULL。 在这种情况下,Windows Media 设备管理器使用其默认元数据视图。

如果 nViews 的值为 0,则此参数的值必须为 NULL。 如果 nViews 的值不为 0,则 ppViews 必须指向包含 nViews 元素的 WMDMMetadataView 结构的数组。

返回值

该方法返回 HRESULT。 下表列出了所有可能的值。

返回代码 说明
S_OK
方法成功。
E_OUTOFMEMORY
内存不足,无法分配项。
E_INVALIDARG
一个或多个参数无效。
WMDM_E_NOT_CERTIFIED
调用方没有执行此操作的权限。
WMDM_E_NOTSUPPORTED
对象不支持此方法。
E_FAIL
发生了未指定的错误。

注解

Windows Media 设备管理器可以显示设备上内容的元数据视图。 它遍历顶级存储 ((如内部内存或存储卡) )上的所有内容,并返回一个存储枚举器,该枚举器显示按内容的元数据组织的内容。 元数据视图的定义通过 WMDMMetadataView 结构提供。

此行为由 pMode 参数控制。 如果 pMode 设置为 ENUM_MODE_RAW,Windows Media 设备管理器 将返回一个枚举器,该枚举器镜像设备存储上的文件系统层次结构。 如果 pMode 设置为 ENUM_MODE_METADATA_VIEWS,Windows Media 设备管理器 将生成元数据视图。

设备通过在安装设备时设置设备参数 UseMetadataViews 来指示其首选项。 有关 UseMetadataViews 的详细信息,请参阅 设备参数。 如果应用程序允许设备决定返回的存储枚举器类型,则应将 pMode 设置为ENUM_MODE_USE_DEVICE_PREF。

调用此方法后,以后对 IWMDMStorage::EnumStorage 的调用将按照此方法设置的存储枚举首选项的行为。 可以再次调用此方法来更改后续 IWMDMStorage::EnumStorage 调用的行为。

通常应在顶级存储上调用此方法。 如果在元数据视图中的任何存储上调用此方法,它将返回WMDM_E_NOTSUPPORTED。

要求

要求
目标平台 Windows
标头 mswmdm.h
Library Mssachlp.lib

另请参阅

IWMDMMetaData 接口

IWMDMStorage 接口

IWMDMStorage::EnumStorage

WMDMMetadataView