Método IWMDMMetaData::GetItemCount (mswmdm.h)
El método GetItemCount recupera el número total de propiedades que mantiene la interfaz.
Sintaxis
HRESULT GetItemCount(
[out] UINT *iCount
);
Parámetros
[out] iCount
Puntero a un entero que recibe el número total de propiedades de metadatos almacenadas por la interfaz.
Valor devuelto
El método devuelve un valor HRESULT. Todos los métodos de interfaz de Windows Media Administrador de dispositivos pueden devolver cualquiera de las siguientes clases de códigos de error:
- Códigos de error COM estándar
- Códigos de error de Windows convertidos en valores HRESULT
- Códigos de error de windows Media Administrador de dispositivos
Comentarios
Este método se puede usar junto con QueryByIndex para enumerar todas las propiedades de un almacenamiento o dispositivo.
Ejemplos
El código siguiente recupera el recuento de propiedades en una interfaz IWMDMMetaData (pMetadata) e intenta recuperarlas todas por índice e imprimirlas. Usa una macro de control de errores personalizada 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);
}
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Windows |
Encabezado | mswmdm.h |
Library | Mssachlp.lib |