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。 下表列出可用的記憶體屬性。
屬性 | Description |
---|---|
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 |
程式庫 | Mssachlp.lib |