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


Метод IWMDMStorage3::SetMetadata (mswmdm.h)

Метод SetMetadata задает метаданные в хранилище.

Синтаксис

HRESULT SetMetadata(
  [in] IWMDMMetaData *pMetadata
);

Параметры

[in] pMetadata

Указатель IWMDMMetaData , содержащий метаданные, которые необходимо задать для объекта . Чтобы создать этот интерфейс, вызовите CreateEmptyMetadataObject.

Возвращаемое значение

Метод возвращает HRESULT. Все методы интерфейса в Windows Media диспетчер устройств могут возвращать любой из следующих классов кодов ошибок:

  • Стандартные коды ошибок COM
  • Коды ошибок Windows, преобразованные в значения HRESULT
  • Коды ошибок диспетчер устройств Windows Media
Подробный список возможных кодов ошибок см. в разделе Коды ошибок.

Комментарии

Существующие свойства в хранилище с тем же именем перезаписываются. Все остальные существующие свойства не изменяются и не теряются.

Чтобы задать свойства для устройства Windows Portable Devices (WPD), приложение создаст объект IPortableDeviceValues и зададит каждое свойство в этой коллекции. Затем приложение сериализует коллекцию в большой двоичный объект (BLOB). После сериализации данных приложение добавит их в IWMDMMetaData , на который ссылается аргумент pMetadata , с помощью константы метаданных g_wszWPDPassthroughPropertyValues.

Примеры

Следующий код C++ добавляет подзаголовок в качестве метаданных в хранилище (pStorage3) с помощью интерфейса IWMDMMetaData , полученного из хранилища ранее (не показано).


// Set metadata values on a storage.
WCHAR* station = L"Mysubtitle";
UINT numBytes = (wcslen(station) + 1) * sizeof(WCHAR); // WCHAR string is 2 * length of characters long
                                                       // plus the terminating null character.
hr = pMetadata->AddItem(WMDM_TYPE_STRING, g_wszWMDMMediaStationName, (BYTE*)station, numBytes) ;
BREAK_HR(hr, "Added a metadata value to the interface in TestUpdateMetadata.", "Couldn't add a metadata value to the interface in TestUpdateMetadata.");

// Add the metadata to the storage.
hr = pStorage3->SetMetadata(pMetadata);
BREAK_HR(hr, "Set metadata on the storage in TestUpdateMetadata.", "Couldn't set metadata on the storage in TestUpdateMetadata: " << hex << hr << dec);

Требования

Требование Значение
Целевая платформа Windows
Header mswmdm.h
Библиотека Mssachlp.lib

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

Интерфейс IWMDMMetaData

Интерфейс IWMDMStorage3

IWMDMStorage3::GetMetadata

Настройка метаданных для файла