获取和设置元数据和属性

应用程序可以获取有关存储或设备的两种信息:属性和元数据。 属性是更简单的布尔值,通常描述文件系统信息,例如存储是否具有子对象、是否可以重命名、读取或删除等。 通过调用 IWMDMStorage::GetAttributesIWMDMStorage2::GetAttributes2,以标志值的形式检索属性。 通过调用 IWMDMStorage3::SetMetadata 设置属性。

应用程序还可以请求更复杂的数据, (数字、字符串或其他数据类型) 作为 元数据。 元数据值由唯一的字符串名称标识。 Windows Media 设备管理器 定义可用于请求值的字符串常量列表;这些定义的值列在元数据常量中。 服务提供程序可以定义自己的常量,但调用应用程序必须知道这些定义才能请求或设置这些自定义元数据值。 应用程序通过调用 IWMDMStorage3::GetMetadataIWMDMStorage4::GetSpecifiedMetadata 来请求元数据。

获取和设置元数据和属性的一个重要方面是了解检索的值来自何处。 服务提供商或设备可以从许多不同的位置获取这些值,包括:

  • 从文件头。 例如,在 ASF 文件中,比特率存储在文件头中。
  • 从调用方法时应用程序显式设置的值。 这些值可以保存在服务提供程序或设备的外部元数据存储中。 当设备断开连接或关闭时,此存储可能会保留,也可能不保留。 例如,播放计数和用户star分级通常存储在计算机或设备上的外部存储中。
  • 通过检查文件系统提供的信息。 例如,文件是只读的还是文件夹是否具有子级。
  • 通过打开和分析文件数据。

请务必注意,属性可能存储在文件标头 (多个位置,以及本地存储) 中,并且它可能可编辑,也可能不可编辑。 例如,更改文件说明可能是永久性的,也可能不是永久性的;如果服务提供商在本地存储说明,则说明不会保留在设备上。 同样,如果文件说明取自文件头,则仅当服务提供程序或设备打开并修改标头数据时,才会永久修改此文件。 大多数应用程序通过更改所需值进行最佳尝试,但不依赖于要永久更改的任何属性。

有关获取和设置值的详细信息,请参阅文档后面的面向应用程序开发人员和服务提供商开发人员的相应部分。

应用程序和服务提供商通用的任务