iWMDMStorage3::SetMetadata 方法 (mswmdm.h)

SetMetadata 方法设置存储上的元数据。

语法

HRESULT SetMetadata(
  [in] IWMDMMetaData *pMetadata
);

参数

[in] pMetadata

包含要对对象设置的元数据的 IWMDMMetaData 指针。 若要创建此接口,请调用 CreateEmptyMetadataObject

返回值

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

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

注解

将覆盖存储中具有相同名称的现有属性。 所有其他现有属性不会修改或丢失。

若要设置 Windows Portable Devices (WPD) 设备的属性,应用程序将创建 一个 IPortableDeviceValues 对象并将每个属性设置为此集合。 然后,应用程序会将集合序列化为 BLOB) (二进制大型对象。 序列化数据后,应用程序将使用g_wszWPDPassthroughPropertyValues元数据常量将其添加到 pMetadata 参数引用的 IWMDMMetaData

示例

以下 C++ 代码使用以前从存储中检索的 IWMDMMetaData 接口将副标题作为元数据添加到存储 (pStorage3) , () 不显示。


// 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
标头 mswmdm.h
Library Mssachlp.lib

另请参阅

IWMDMMetaData 接口

IWMDMStorage3 接口

IWMDMStorage3::GetMetadata

设置文件的元数据