msdmo: Allow for names to be NULL in IEnumDMO_Next.
Signed-off-by: Sven Baars <sven.wine@gmail.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
e41502b429
commit
61e0ffcd73
@ -530,7 +530,7 @@ static HRESULT WINAPI IEnumDMO_fnNext(
|
||||
|
||||
TRACE("(%p)->(%d %p %p %p)\n", This, cItemsToFetch, pCLSID, Names, pcItemsFetched);
|
||||
|
||||
if (!pCLSID || !Names)
|
||||
if (!pCLSID)
|
||||
return E_POINTER;
|
||||
|
||||
if (!pcItemsFetched && cItemsToFetch > 1)
|
||||
@ -656,14 +656,17 @@ static HRESULT WINAPI IEnumDMO_fnNext(
|
||||
}
|
||||
|
||||
/* Media object wasn't filtered so add it to return list */
|
||||
Names[count] = NULL;
|
||||
len = MAX_PATH * sizeof(WCHAR);
|
||||
ret = RegQueryValueExW(hkey, NULL, NULL, NULL, (LPBYTE)szValue, &len);
|
||||
if (ERROR_SUCCESS == ret)
|
||||
if (Names)
|
||||
{
|
||||
Names[count] = CoTaskMemAlloc((strlenW(szValue) + 1) * sizeof(WCHAR));
|
||||
if (Names[count])
|
||||
strcpyW(Names[count], szValue);
|
||||
Names[count] = NULL;
|
||||
if (ret == ERROR_SUCCESS)
|
||||
{
|
||||
Names[count] = CoTaskMemAlloc((strlenW(szValue) + 1) * sizeof(WCHAR));
|
||||
if (Names[count])
|
||||
strcpyW(Names[count], szValue);
|
||||
}
|
||||
}
|
||||
wsprintfW(szGuidKey,szToGuidFmt,szNextKey);
|
||||
CLSIDFromString(szGuidKey, &pCLSID[count]);
|
||||
|
@ -107,6 +107,13 @@ static void test_DMOEnum(void)
|
||||
ok(hr == S_FALSE, "expected S_FALSE, got %#x\n", hr);
|
||||
ok(count == 0, "expected 0, got %d\n", count);
|
||||
|
||||
hr = IEnumDMO_Next(enum_dmo, 2, NULL, &name, &count);
|
||||
ok(hr == E_POINTER, "expected S_FALSE, got %#x\n", hr);
|
||||
|
||||
hr = IEnumDMO_Next(enum_dmo, 2, &clsid, NULL, &count);
|
||||
ok(hr == S_FALSE, "expected S_FALSE, got %#x\n", hr);
|
||||
ok(count == 0, "expected 0, got %d\n", count);
|
||||
|
||||
IEnumDMO_Release(enum_dmo);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user