Condividi tramite


Metodo IWMDMStorage4::GetReferences (mswmdm.h)

Il metodo GetReferences recupera una matrice di puntatori agli oggetti IWMDMStorage a cui punta questa risorsa di archiviazione. Un album o una playlist astratta viene in genere archiviato come raccolta di riferimenti in un dispositivo MTP.

Sintassi

HRESULT GetReferences(
  [out] DWORD        *pdwRefs,
  [out] IWMDMStorage ***pppIWMDMStorage
);

Parametri

[out] pdwRefs

Puntatore al conteggio dei valori recuperati da pppIWMDMStorage. Se l'oggetto non ha riferimenti, verrà restituito zero e la funzione restituirà S_OK.

[out] pppIWMDMStorage

Puntatore a un puntatore alla matrice di puntatori di interfaccia IWMDMStorage che rappresentano i riferimenti in un archivio. Tali riferimenti possono, ad esempio, rappresentare elementi in una playlist o in un album. La matrice recuperata è nello stesso ordine in cui vengono visualizzate nell'oggetto stesso. La memoria per questa matrice viene allocata da Windows Media Gestione dispositivi. Quando l'applicazione chiamante ha completato l'accesso a questa matrice, deve prima chiamare Release su tutti i puntatori di interfaccia e quindi liberare la memoria della matrice usando CoTaskMemFree.

Valore restituito

Il metodo restituisce un valore 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

Windows Media Gestione dispositivi delega al provider di servizi sottostante l'attività di aggiunta e rimozione dei riferimenti in una risorsa di archiviazione. Gli oggetti con riferimenti fanno riferimento a oggetti astratti, ad esempio playlist astratte o album; le cartelle non sono considerate come riferimenti.

Esistono due tipi di eliminazioni asincrone che possono verificarsi e causare errori in questo metodo. Se un riferimento a una risorsa di archiviazione è stato eliminato dopo che l'applicazione l'ha recuperata e l'applicazione tenta di usare il riferimento, la chiamata al metodo restituirà WMDM_E_INTERFACEDEAD. Se il file a cui fa riferimento è stato eliminato, viene restituito S_FALSE.

Esempio

Il codice C++ seguente esegue una query sui riferimenti di una risorsa di archiviazione (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);
}

Requisiti

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

Vedi anche

Creazione di una playlist nel dispositivo

Interfaccia IWMDMStorage4

IWMDMStorage4::SetReferences