Metode IWMDMDevice2::GetStorage (mswmdm.h)
Metode GetStorage mencari turunan langsung dari penyimpanan akar untuk penyimpanan dengan nama yang diberikan.
Sintaks
HRESULT GetStorage(
[in] LPCWSTR pszStorageName,
[out] IWMDMStorage **ppStorage
);
Parameter
[in] pszStorageName
Penunjuk ke string yang dihentikan null yang menentukan nama penyimpanan yang akan ditemukan. Parameter ini tidak mendukung karakter kartubebas.
[out] ppStorage
Arahkan ke antarmuka IWMDMStorage penyimpanan yang ditentukan oleh parameter pszStorageName . Pemanggil harus merilis antarmuka ini setelah selesai dengannya.
Nilai kembali
Metode mengembalikan HRESULT. Semua metode antarmuka di Windows Media Device Manager dapat mengembalikan salah satu kelas kode kesalahan berikut:
- Kode kesalahan COM standar
- Kode kesalahan Windows dikonversi ke nilai HRESULT
- Kode galat Pengelola Perangkat Windows Media
Keterangan
Fungsi ini tidak rekursif; hanya mencari anak-anak langsung dari penyimpanan akar perangkat. Untuk versi pencarian rekursif dari fungsi ini, gunakan IWMDMDevice3::FindStorage.
Contoh
Fungsi C++ berikut mencari penyimpanan secara rekursif. Ini menggunakan GetStorage untuk mencari anak-anak langsung; jika penyimpanan yang diminta tidak ditemukan, penyimpanan tersebut kemudian mengulangi semua turunan dan mencari folder secara rekursif.
HRESULT myFindStorageRecursively(LPCWSTR storageName, IWMDMStorage* pCurrentStorage, IWMDMStorage** ppFoundStorage)
{
HRESULT hr = S_OK;
// Start with a quick check of all storages inside the storage.
// If we found it, stop now and return.
CComQIPtr<IWMDMStorage2> pStorage2(pCurrentStorage);
hr = pStorage2->GetStorage(storageName, ppFoundStorage);
if (*ppFoundStorage != NULL)
return hr;
//
// Otherwise, enumerate through and dive into all child folders.
//
// First get enumerator.
CComPtr<IWMDMEnumStorage> pEnumStorage;
hr = pCurrentStorage->EnumStorage(&pEnumStorage);
if (hr != S_OK && pEnumStorage != NULL)
return hr;
// Now enumerate all folders until found the right item, or out of folders.
CComPtr<IWMDMStorage> pThisStorage;
DWORD numRetrieved = 0;
DWORD attr = 0;
while(pEnumStorage->Next(1, &pThisStorage, &numRetrieved) == S_OK)
{
pThisStorage->GetAttributes(&attr, NULL);
if (attr & WMDM_FILE_ATTR_FOLDER)
{
hr = myFindStorageRecursively(storageName, pThisStorage, ppFoundStorage);
if (*ppFoundStorage != NULL)
return hr;
}
pThisStorage.Release();
}
return hr;
}
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Windows |
Header | mswmdm.h |
Pustaka | Mssachlp.lib |