IWMDMStorage4::GetReferences-Methode (mswmdm.h)

Die GetReferences-Methode ruft ein Array von Zeigern auf IWMDMStorage-Objekte ab, auf die dieser Speicher verweist. Ein abstraktes Album oder eine Wiedergabeliste wird in der Regel als Sammlung von Verweisen auf einem MTP-Gerät gespeichert.

Syntax

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

Parameter

[out] pdwRefs

Zeiger auf die Anzahl der von pppIWMDMStorage abgerufenen Werte. Wenn das Objekt keine Verweise aufweist, gibt dies null zurück, und die Funktion gibt S_OK zurück.

[out] pppIWMDMStorage

Zeiger auf einen Zeiger auf das Array von IWMDMStorage-Schnittstellenzeigern , die Verweise in einem Speicher darstellen. Solche Verweise können beispielsweise Elemente in einer Wiedergabeliste oder einem Album darstellen. Das abgerufene Array befindet sich in derselben Reihenfolge wie im Objekt selbst. Der Arbeitsspeicher für dieses Array wird von Windows Media Geräte-Manager zugewiesen. Wenn die aufrufende Anwendung den Zugriff auf dieses Array beendet hat, muss sie zuerst Release für alle Schnittstellenzeiger aufrufen und dann den Arrayspeicher mit CoTaskMemFree freigeben.

Rückgabewert

Die Methode gibt ein HRESULT zurück. Alle Schnittstellenmethoden in Windows Media Geräte-Manager können eine der folgenden Klassen von Fehlercodes zurückgeben:

  • Standard-COM-Fehlercodes
  • In HRESULT-Werte konvertierte Windows-Fehlercodes
  • Windows Media Geräte-Manager Fehlercodes
Eine umfassende Liste möglicher Fehlercodes finden Sie unter Fehlercodes.

Hinweise

Windows Media Geräte-Manager delegiert an den zugrunde liegenden Dienstanbieter die Aufgabe, die Verweise in einem Speicher hinzuzufügen und zu entfernen. Objekte mit Verweisen beziehen sich auf abstrakte Objekte wie abstrakte Wiedergabelisten oder Alben; -Ordner werden nicht als Verweise betrachtet.

Es gibt zwei Arten von asynchronen Löschungen, die in dieser Methode zu Fehlern führen können. Wenn ein Verweis auf einen Speicher gelöscht wurde, seit die Anwendung ihn abgerufen hat, und die Anwendung versucht, den Verweis zu verwenden, gibt der Methodenaufruf WMDM_E_INTERFACEDEAD zurück. Wenn die Datei, auf die sich der Verweis bezieht, gelöscht wurde, wird S_FALSE zurückgegeben.

Beispiele

Der folgende C++-Code fragt die Verweise eines Speichers (pStorage) ab.


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

Anforderungen

Anforderung Wert
Zielplattform Windows
Kopfzeile mswmdm.h
Bibliothek Mssachlp.lib

Weitere Informationen

Erstellen einer Wiedergabeliste auf dem Gerät

IWMDMStorage4-Schnittstelle

IWMDMStorage4::SetReferences