IMDSPStorage4::CreateStorageWithMetadata 方法 (mswmdm.h)
CreateStorageWithMetadata 方法创建一个新存储,将给定的元数据应用于新存储,并返回指向新创建存储上的 IMDSPStorage 接口的指针。 可以在同一级别创建新存储,也可以插入到当前存储中。
如果设备在创建时需要元数据,此方法非常有用。 与创建存储和设置元数据相比,根据设备的不同,在创建时应用元数据可能更有效。
语法
HRESULT CreateStorageWithMetadata(
[in] DWORD dwAttributes,
[in] LPCWSTR pwszName,
[in] IWMDMMetaData *pMetadata,
[in] ULONGLONG qwFileSize,
[out] IMDSPStorage **ppNewStorage
);
参数
[in] dwAttributes
包含新存储的属性的 DWORD。 下表列出了可用的存储属性。
Attribute | 说明 |
---|---|
WMDM_STORAGECONTROL_INSERTBEFORE | 将在目标对象的前面创建新的存储对象。 |
WMDM_STORAGECONTROL_INSERTAFTER | 将在目标对象之后创建新的存储对象。 |
WMDM_STORAGECONTROL_INSERTINTO | 将在目标对象文件夹中创建新的存储对象。 |
WMDM_STORAGECONTROL_OVERWRITE | 如果已存在同名的存储,则会销毁该存储并创建一个新存储。 |
WMDM_STORAGE_ATTR_FILESYSTEM | 此对象是顶级存储介质 (例如存储卡或其他一些板载存储。) |
WMDM_STORAGE_ATTR_REMOVABLE | 此存储介质是可移动的。 |
WMDM_STORAGE_ATTR_CANEDITMETADATA | 此存储可以编辑元数据。 |
WMDM_STORAGE_ATTR_FOLDERS | 此存储介质支持文件夹和文件层次结构。 |
WMDM_FILE_ATTR_FOLDER | 这是存储介质上的文件夹。 |
WMDM_FILE_ATTR_LINK | 这是一个链接,用于在多个文件之间创建关联。 |
WMDM_FILE_ATTR_FILE | 这是存储介质上的文件。 |
WMDM_FILE_ATTR_AUDIO | 此文件是音频数据。 |
WMDM_FILE_ATTR_DATA | 此文件是非音频数据。 |
WMDM_FILE_ATTR_CANPLAY | 此音频文件可由设备播放。 |
WMDM_FILE_ATTR_CANDELETE | 可以删除此文件。 |
WMDM_FILE_ATTR_CANMOVE | 可以在存储介质上移动此文件或文件夹。 |
WMDM_FILE_ATTR_CANRENAME | 可以重命名此文件或文件夹。 |
WMDM_FILE_ATTR_CANREAD | 此文件可由主计算机读取。 |
WMDM_FILE_ATTR_MUSIC | 此音频文件是音乐。 |
WMDM_FILE_ATTR_PLAYLIST | 这是一个播放列表对象。 |
WMDM_FILE_ATTR_VIDEO | 此文件包含视频数据。 |
WMDM_FILE_ATTR_HIDDEN | 此文件隐藏在文件系统上。 |
WMDM_FILE_ATTR_SYSTEM | 这是一个系统文件。 |
WMDM_FILE_ATTR_READONLY | 这是一个只读文件。 |
WMDM_STORAGE_IS_DEFAULT | 此存储是应放置新媒体的默认存储。 |
WMDM_STORAGE_CONTAINS_DEFAULT | 此存储包含应放置新媒体的默认存储。 |
[in] pwszName
指向以 null 结尾的宽字符字符串的指针,该字符串包含新存储的名称。
[in] pMetadata
指向 IWMDMMetaData 接口的 指针。
[in] qwFileSize
包含文件大小的 Qword。
[out] ppNewStorage
指向 IMDSPStorage 指针的指针,用于接收新创建的存储的 IMDSPStorage 接口。
返回值
该方法返回 HRESULT。 Windows Media 设备管理器 中的所有接口方法都可以返回以下任一类错误代码:
- 标准 COM 错误代码
- 转换为 HRESULT 值的 Windows 错误代码
- Windows Media 设备管理器错误代码
注解
如果需要在创建时将元数据应用于存储,此方法非常有用。 相比之下, IMDSPStorage2::CreateStorage2 和 IMDSPStorage::CreateStorage 方法不提供在创建时提供元数据的方法。
如果可与 Windows 媒体播放器 同步的设备的服务提供商支持此接口,Windows Media 设备管理器在 Insert/2/3 操作期间调用此方法。
如果同时设置了WMDM_FILE_ATTR_FOLDER和WMDM_FILE_ATTR_FILE属性,则文件夹属性将替代文件属性,并将新存储创建为文件夹。
客户端只能指定WMDM_STORAGECONTROL_INSERTBEFORE、WMDM_STORAGECONTROL_INSERTAFTER和WMDM_STORAGECONTROL_INSERTINTO之一。
可以在同一级别创建新存储,也可以插入到当前存储中,前提是当前存储是一个文件夹。 这由 dwAttributes 参数的值控制。 如果指定WMDM_STORAGECONTROL_INSERTBEFORE或WMDM_STORAGECONTROL_INSERTAFTER,则会在与当前存储相同的级别创建新存储。 如果指定WMDM_STORAGECONTROL_INSERTINTO,则新存储将插入到当前存储中。
WMDM_STORAGECONTROL_INSERTBEFORE和WMDM_STORAGECONTROL_INSERAFTER意味着对文件系统中的内容进行排序。 例如,如果文件系统不支持排序 (FAT32 文件系统) ,则这两个标志具有相同的效果,即在当前存储级别插入新存储。 如果当前存储表示存储介质的根,并且指定了这两个标志之一,则操作将失败。
仅当当前存储为文件夹时,WMDM_STORAGECONTROL_INSERTINTO才有效。 如果当前存储是文件,并且指定了此标志,则操作将失败。
要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | mswmdm.h |
Library | Mssachlp.lib |