Поделиться через


Метод 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
  • Коды ошибок Windows, преобразованные в значения HRESULT
  • Коды ошибок диспетчер устройств 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
Header mswmdm.h
Библиотека Mssachlp.lib

См. также раздел

Включение синхронизации с Медиаплеер Windows

IMDSPStorage2::CreateStorage2

Интерфейс IMDSPStorage4

IMDSPStorage::CreateStorage