Metodo IWMDMMetaData::GetItemCount (mswmdm.h)
Il metodo GetItemCount recupera il numero totale di proprietà mantenute dall'interfaccia.
Sintassi
HRESULT GetItemCount(
[out] UINT *iCount
);
Parametri
[out] iCount
Puntatore a un intero che riceve il numero totale di proprietà dei metadati archiviate dall'interfaccia.
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
Commenti
Questo metodo può essere usato insieme a QueryByIndex per enumerare tutte le proprietà in un'archiviazione o in un dispositivo.
Esempio
Il codice seguente recupera il conteggio delle proprietà in un'interfaccia IWMDMMetaData (pMetadata ) e tenta di recuperarli tutti in base all'indice e stamparli. Usa una macro di gestione degli errori personalizzata BREAK_HR.
//
// Loop through all metadata properties, and print out the value of each.
//
BYTE* value;
WMDM_TAG_DATATYPE type;
UINT len = 0;
UINT count = 0;
WCHAR* name;
// Get the number of metadata items.
hr = pMetadata->GetItemCount(&count);
BREAK_HR(hr, "Got a metadata count in GetMetadata.", "Couldn't get a metadata count in GetMetadata.");
for(;count > 0; count--)
{
// Get the metadata property by index.
WCHAR* name;
hr = pMetadata->QueryByIndex(count-1, &name, &type, &value, &len);
if (SUCCEEDED(hr))
{
// TODO: Display the property name.
CoTaskMemFree(name);
// Print out the value of the property, according to the value type.
switch (type)
{
case WMDM_TYPE_QWORD:
case WMDM_TYPE_DWORD:
case WMDM_TYPE_WORD:
// TODO: Display the value.
break;
case WMDM_TYPE_STRING:
// TODO: Display the value.
// Release the method-allocated property value memory.
if (SUCCEEDED(hr))
CoTaskMemFree(value);
break;
case WMDM_TYPE_BOOL:
// TODO: Display the value.
break;
case WMDM_TYPE_BINARY:
// TODO: Display the value.
break;
case WMDM_TYPE_DATE:
{
WMDMDATETIME *val = (WMDMDATETIME*)value;
/ /TODO: Display the month, day, and year.
}
break;
case WMDM_TYPE_GUID:
{
WCHAR strGuid[64];
StringFromGUID2(reinterpret_cast<GUID&>(value),(LPOLESTR)strGuid, 64);
/ /TODO: Display the GUID.
}
break;
default:
// TODO: Display a message indicating that the
// application could not understand the returned value type.
}
}
else // Couldn't get the metadata property at index count - 1.
// TODO: Display a message indicating that the
// application couldn't retrieve a value for the index.
// Clear the WMDM-allocated memory.
if (value)
CoTaskMemFree(value);
}
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Windows |
Intestazione | mswmdm.h |
Libreria | Mssachlp.lib |