Condividi tramite


Metodo IWMDMStorage3::SetMetadata (mswmdm.h)

Il metodo SetMetadata imposta i metadati nell'archiviazione.

Sintassi

HRESULT SetMetadata(
  [in] IWMDMMetaData *pMetadata
);

Parametri

[in] pMetadata

Puntatore IWMDMMetaData contenente metadati da impostare nell'oggetto. Per creare questa interfaccia, chiamare CreateEmptyMetadataObject.

Valore restituito

Il metodo restituisce un HRESULT. Tutti i metodi di interfaccia in Windows Media Gestione dispositivi possono restituire una delle classi di codici di errore seguenti:

  • Codici di errore COM standard
  • Codici di errore di Windows convertiti in valori HRESULT
  • Codici di errore di Windows Media Gestione dispositivi
Per un elenco completo dei codici di errore possibili, vedere Codici di errore.

Commenti

Le proprietà esistenti nell'archiviazione con lo stesso nome vengono sovrascritte. Tutte le altre proprietà esistenti non vengono modificate o perse.

Per impostare le proprietà per un dispositivo WPD (Windows Portable Devices), un'applicazione creerebbe un oggetto IPortableDeviceValues e imposta ogni proprietà in questa raccolta. Quindi, l'applicazione serializzerebbe la raccolta in un oggetto di grandi dimensioni binario (BLOB). Dopo aver serializzato i dati, l'applicazione lo aggiungerà alla costante metadati IWMDMMetaData a cui fa riferimento l'argomento pMetadata usando la costante dei metadati g_wszWPDPassthroughPropertyValues.

Esempio

Il codice C++ seguente aggiunge un sottotitolo come metadati a un archivio (pStorage3) usando l'interfaccia IWMDMMetaData recuperata dall'archiviazione precedentemente (non visualizzata).


// 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);

Requisiti

Requisito Valore
Piattaforma di destinazione Windows
Intestazione mswmdm.h
Libreria Mssachlp.lib

Vedi anche

Interfaccia IWMDMMetaData

Interfaccia IWMDMStorage3

IWMDMStorage3::GetMetadata

Impostazione dei metadati in un file