Метод 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
Указатель на строку с расширенными символами, завершающуюся нулевым значением, которая содержит имя нового хранилища.
[out] ppNewStorage
Указатель на указатель IMDSPStorage для получения интерфейса IMDSPStorage для только что созданного хранилища.
Возвращаемое значение
Метод возвращает HRESULT. Все методы интерфейса в Windows Media диспетчер устройств могут возвращать любой из следующих классов кодов ошибок:
- Стандартные коды ошибок COM
- Коды ошибок Windows, преобразованные в значения HRESULT
- Коды ошибок диспетчер устройств Windows Media
Комментарии
Если заданы атрибуты WMDM_FILE_ATTR_FOLDER и WMDM_FILE_ATTR_FILE, атрибут папки переопределяет атрибут 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 |
Header | mswmdm.h |
Библиотека | Mssachlp.lib |