IMDSPStorage::CreateStorage 方法 (mswmdm.h)

CreateStorage 方法创建新的存储,并返回指向新创建的存储上的 IMDSPStorage 接口的指针。 除非 dwAttributes WMDM_FILE_ATTR_FILE,否则此方法是可选的。 在这种情况下,此方法必须实现,并且不能返回WMDM_E_NOTSUPPORTED或E_NOTIMPL。 有关详细信息,请参阅 必需接口和可选接口

语法

HRESULT CreateStorage(
  [in]  DWORD         dwAttributes,
  [in]  _WAVEFORMATEX *pFormat,
  [in]  LPWSTR        pwszName,
  [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_VIDEO 此文件包含视频数据。
WMDM_FILE_ATTR_HIDDEN 此文件在文件系统上隐藏
WMDM_FILE_ATTR_SYSTEM 这是系统文件
WMDM_FILE_ATTR_READONLY 这是只读文件。
WMDM_STORAGE_IS_DEFAULT 此存储是应放置新媒体的默认存储。
WMDM_STORAGE_CONTAINS_DEFAULT 此存储包含应放置新媒体的默认存储。

[in] pFormat

指向包含有关对象的信息的 _WAVEFORMATEX 结构的指针(如果对象是音频文件)。

[in] pwszName

指向包含新存储名称的宽字符 null 终止字符串的指针。

[out] ppNewStorage

指向 IMDSPStorage 指针的指针,用于接收新创建的存储的 IMDSPStorage 接口。

返回值

该方法返回 HRESULT。 Windows Media 中的所有接口方法设备管理器都可以返回以下任一类错误代码:

  • 标准 COM 错误代码
  • 转换为 HRESULT 值的 Windows 错误代码
  • Windows Media 设备管理器错误代码
有关可能错误代码的广泛列表,请参阅 错误代码

注解

如果同时设置了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

另请参阅

IMDSPStorage 接口

IMDSPStorage2::CreateStorage2

_WAVEFORMATEX