다음을 통해 공유


IWMDMStorage3::SetMetadata 메서드(mswmdm.h)

SetMetadata 메서드는 스토리지에 메타데이터를 설정합니다.

구문

HRESULT SetMetadata(
  [in] IWMDMMetaData *pMetadata
);

매개 변수

[in] pMetadata

개체에 설정할 메타데이터를 포함하는 IWMDMMetaData 포인터입니다. 이 인터페이스를 만들려면 CreateEmptyMetadataObject를 호출합니다.

반환 값

이 메서드는 HRESULT를 반환합니다. Windows Media 장치 관리자 모든 인터페이스 메서드는 다음 오류 코드 클래스를 반환할 수 있습니다.

  • 표준 COM 오류 코드
  • HRESULT 값으로 변환된 Windows 오류 코드
  • Windows Media 장치 관리자 오류 코드
가능한 오류 코드의 광범위한 목록은 오류 코드를 참조하세요.

설명

동일한 이름을 가진 스토리지의 기존 속성을 덮어씁니다. 다른 모든 기존 속성은 수정되거나 손실되지 않습니다.

WPD(Windows Portable Devices) 디바이스에 대한 속성을 설정하기 위해 애플리케이션은 IPortableDeviceValues 개체를 만들고 각 속성을 이 컬렉션으로 설정합니다. 그런 다음, 애플리케이션은 컬렉션을 BLOB(Binary Large Object)로 직렬화합니다. 데이터가 직렬화되면 애플리케이션은 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

파일에서 메타데이터 설정