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 |