共用方式為


iWMDMStorage4::GetReferences 方法 (mswmdm.h)

GetReferences 方法會擷取此記憶體所指向之 IWMDMStorage 物件的指標數位。 抽象的相簿或播放清單通常會儲存為 MTP 裝置上的參考集合。

語法

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

參數

[out] pdwRefs

pppIWMDMStorage 所擷取之值的計數指標。 如果對象沒有參考,這會傳回零,而且函式會傳回S_OK。

[out] pppIWMDMStorage

代表記憶體中參考之 IWMDMStorage 介面指標陣列的指標指標。 例如,這類參考可以代表播放清單或相簿中的專案。 所擷取的數位順序與出現在物件本身的順序相同。 Windows Media 裝置管理員 會配置此陣列的記憶體。 當呼叫端應用程式完成存取此陣列時,它必須先在所有介面指標上呼叫 Release ,然後使用 CoTaskMemFree 釋放數位記憶體。

傳回值

方法會傳回 HRESULT。 Windows Media 中的所有介面方法 裝置管理員 都可以傳回下列任何錯誤碼類別:

  • 標準 COM 錯誤碼
  • 轉換成 HRESULT 值的 Windows 錯誤碼
  • Windows Media 裝置管理員 錯誤碼
如需可能錯誤碼的廣泛清單,請參閱 錯誤碼

備註

Windows Media 裝置管理員 委派給基礎服務提供者,以新增和移除記憶體上的參考。 參考的物件是指抽象物件,例如抽象播放清單或相簿;資料夾不會被視為具有參考。

有兩種類型的異步刪除可能會發生,並造成此方法中的錯誤。 如果在應用程式擷取記憶體之後已刪除記憶體的 參考 ,而且應用程式嘗試使用參考,方法呼叫會傳回WMDM_E_INTERFACEDEAD。 如果參考所參考的檔案已被刪除,則會傳回S_FALSE。

範例

下列 C++ 程式代碼會查詢記憶體 (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);
}

規格需求

需求
目標平台 Windows
標頭 mswmdm.h
程式庫 Mssachlp.lib

另請參閱

在裝置上建立播放清單

IWMDMStorage4 介面

IWMDMStorage4::SetReferences