IMDSPStorage2::CreateStorage2 方法 (mswmdm.h)

CreateStorage2 方法创建具有指定名称的新存储,并返回指向新创建的存储上的 IMDSPStorage 接口的指针。

语法

HRESULT CreateStorage2(
  [in]  DWORD            dwAttributes,
  [in]  DWORD            dwAttributesEx,
  [in]  _WAVEFORMATEX    *pAudioFormat,
  [in]  _VIDEOINFOHEADER *pVideoFormat,
  [in]  LPWSTR           pwszName,
  [in]  ULONGLONG        qwFileSize,
  [out] IMDSPStorage     **ppNewStorage
);

参数

[in] dwAttributes

包含 IMDSPStorage::CreateStorage 方法中所述的属性的 DWORD

[in] dwAttributesEx

包含扩展属性的 DWORD。 目前没有定义的扩展属性。

[in] pAudioFormat

指向包含有关对象的音频格式信息的 _WAVEFORMATEX 结构的指针。 此参数是可选的,如果文件不是音频,则忽略此参数。

[in] pVideoFormat

指向包含有关对象的视频格式信息的 _VIDEOINFOHEADER 结构的指针。 此参数是可选的,如果文件不是视频,则忽略此参数。

[in] pwszName

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

[in] qwFileSize

包含要创建的文件大小的 QWORD。 如果在创建时不知道输出文件的总大小,此值将设置为零。

[out] ppNewStorage

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

返回值

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

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

注解

如果同时设置了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才有效。 如果当前存储是文件,并且指定了此标志,则操作会失败。

必须实现此方法。 它不得返回WMDM_E_NOTSUPPORTED或E_NOTIMPL。 有关详细信息,请参阅 强制接口和可选接口

要求

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

另请参阅

IMDSPStorage2 接口

IMDSPStorage::CreateStorage