Método IWMDMStorage4::GetReferences (mswmdm.h)
El método GetReferences recupera una matriz de punteros a objetos IWMDMStorage a los que apunta este almacenamiento. Normalmente, un álbum abstracto o una lista de reproducción se almacenan como una colección de referencias en un dispositivo MTP.
Sintaxis
HRESULT GetReferences(
[out] DWORD *pdwRefs,
[out] IWMDMStorage ***pppIWMDMStorage
);
Parámetros
[out] pdwRefs
Puntero al recuento de valores recuperados por pppIWMDMStorage. Si el objeto no tiene referencias, devolverá cero y la función devolverá S_OK.
[out] pppIWMDMStorage
Puntero a un puntero a la matriz de punteros de interfaz IWMDMStorage que representan referencias en un almacenamiento. Estas referencias pueden, por ejemplo, representar elementos de una lista de reproducción o un álbum. La matriz recuperada está en el mismo orden que aparecen en el propio objeto. Windows Media Administrador de dispositivos asigna memoria para esta matriz. Cuando la aplicación que realiza la llamada haya terminado de acceder a esta matriz, primero debe llamar a Release en todos los punteros de interfaz y, a continuación, liberar la memoria de matriz mediante CoTaskMemFree.
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
Windows Media Administrador de dispositivos delega al proveedor de servicios subyacente la tarea de agregar y quitar las referencias en un almacenamiento. Los objetos con referencias hacen referencia a objetos abstractos, como listas de reproducción abstractas o álbumes; las carpetas no se consideran como referencias.
Hay dos tipos de eliminaciones asincrónicas que pueden producirse y provocar errores en este método. Si se ha eliminado una referencia a un almacenamiento desde que la aplicación la recuperó y la aplicación intenta usar la referencia, la llamada al método devolverá WMDM_E_INTERFACEDEAD. Si el archivo al que hace referencia se ha eliminado, se devuelve S_FALSE.
Ejemplos
El código de C++ siguiente consulta las referencias de un almacenamiento (pStorage).
// Get references.
CComQIPtr<IWMDMStorage4> pStorage4(pStorage);
if (pStorage4 != NULL)
{
WCHAR name[100];
DWORD numRefs = 0;
IWMDMStorage** parrReferences;
hr = pStorage4->GetReferences(&numRefs, &parrReferences);
for(int i = 0; i < numRefs; i++)
{
ZeroMemory(name, sizeof(name));
hr = parrReferences[i]->GetName(name, (sizeof(name) / sizeof(WCHAR)) - 1);
if (hr == S_OK)
// TODO: Display the name.
parrReferences[i]->Release();
}
// Free the memory.
if (parrReferences != NULL)
CoTaskMemFree(parrReferences);
}
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Windows |
Encabezado | mswmdm.h |
Library | Mssachlp.lib |