共用方式為


IWMDMStorage3::SetMetadata 方法 (mswmdm.h)

SetMetadata 方法會設定記憶體上的元數據。

語法

HRESULT SetMetadata(
  [in] IWMDMMetaData *pMetadata
);

參數

[in] pMetadata

IWMDMMetaData 指標,其中包含物件上要設定的元數據。 若要建立此介面,請呼叫 CreateEmptyMetadataObject

傳回值

方法會傳回 HRESULT。 Windows Media 裝置管理員 中的所有介面方法都可以傳回下列任何一種錯誤碼類別:

  • 標準 COM 錯誤碼
  • 轉換成 HRESULT 值的 Windows 錯誤碼
  • Windows Media 裝置管理員 錯誤碼
如需可能錯誤碼的廣泛清單,請參閱 錯誤碼

備註

會覆寫記憶體中具有相同名稱的現有屬性。 所有其他現有屬性都不會修改或遺失。

若要設定 Windows 可攜式裝置 (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
程式庫 Mssachlp.lib

另請參閱

IWMDMMetaData 介面

IWMDMStorage3 介面

IWMDMStorage3::GetMetadata

在檔案上設定元數據