次の方法で共有


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
Library Mssachlp.lib

こちらもご覧ください

IWMDMMetaData インターフェイス

IWMDMStorage3 インターフェイス

IWMDMStorage3::GetMetadata

ファイルにメタデータを設定する