mfplat: Implement IMFAttributes::GetCount().
Signed-off-by: Jactry Zeng <jzeng@codeweavers.com> Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
c127fab80e
commit
e8a9cd2e06
|
@ -993,14 +993,15 @@ static HRESULT WINAPI mfattributes_UnlockStore(IMFAttributes *iface)
|
|||
|
||||
static HRESULT WINAPI mfattributes_GetCount(IMFAttributes *iface, UINT32 *items)
|
||||
{
|
||||
mfattributes *This = impl_from_IMFAttributes(iface);
|
||||
struct attributes *attributes = impl_from_IMFAttributes(iface);
|
||||
|
||||
FIXME("%p, %p\n", This, items);
|
||||
TRACE("%p, %p.\n", iface, items);
|
||||
|
||||
if(items)
|
||||
*items = 0;
|
||||
EnterCriticalSection(&attributes->cs);
|
||||
*items = attributes->count;
|
||||
LeaveCriticalSection(&attributes->cs);
|
||||
|
||||
return E_NOTIMPL;
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI mfattributes_GetItemByIndex(IMFAttributes *iface, UINT32 index, GUID *key, PROPVARIANT *value)
|
||||
|
|
|
@ -494,29 +494,31 @@ static void test_MFCreateMediaEvent(void)
|
|||
IMFMediaEvent_Release(mediaevent);
|
||||
}
|
||||
|
||||
#define CHECK_ATTR_COUNT(obj, expected) check_attr_count(obj, expected, __LINE__)
|
||||
static void check_attr_count(IMFAttributes* obj, UINT32 expected, int line)
|
||||
{
|
||||
UINT32 count = expected + 1;
|
||||
HRESULT hr = IMFAttributes_GetCount(obj, &count);
|
||||
ok_(__FILE__, line)(hr == S_OK, "Failed to get attributes count, hr %#x.\n", hr);
|
||||
ok_(__FILE__, line)(count == expected, "Unexpected count %u, expected %u.\n", count, expected);
|
||||
}
|
||||
|
||||
static void test_MFCreateAttributes(void)
|
||||
{
|
||||
PROPVARIANT propvar, ret_propvar;
|
||||
IMFAttributes *attributes;
|
||||
UINT32 count, value;
|
||||
UINT64 value64;
|
||||
UINT32 value;
|
||||
HRESULT hr;
|
||||
GUID key;
|
||||
|
||||
hr = MFCreateAttributes( &attributes, 3 );
|
||||
ok(hr == S_OK, "got 0x%08x\n", hr);
|
||||
|
||||
count = 88;
|
||||
hr = IMFAttributes_GetCount(attributes, &count);
|
||||
todo_wine ok(hr == S_OK, "got 0x%08x\n", hr);
|
||||
ok(count == 0, "got %d\n", count);
|
||||
|
||||
CHECK_ATTR_COUNT(attributes, 0);
|
||||
hr = IMFAttributes_SetUINT32(attributes, &MF_READWRITE_ENABLE_HARDWARE_TRANSFORMS, 123);
|
||||
ok(hr == S_OK, "Failed to set UINT32 value, hr %#x.\n", hr);
|
||||
|
||||
hr = IMFAttributes_GetCount(attributes, &count);
|
||||
todo_wine ok(hr == S_OK, "got 0x%08x\n", hr);
|
||||
todo_wine ok(count == 1, "got %d\n", count);
|
||||
CHECK_ATTR_COUNT(attributes, 1);
|
||||
|
||||
value = 0xdeadbeef;
|
||||
hr = IMFAttributes_GetUINT32(attributes, &MF_READWRITE_ENABLE_HARDWARE_TRANSFORMS, &value);
|
||||
|
@ -530,6 +532,7 @@ static void test_MFCreateAttributes(void)
|
|||
|
||||
hr = IMFAttributes_SetUINT64(attributes, &MF_READWRITE_ENABLE_HARDWARE_TRANSFORMS, 65536);
|
||||
ok(hr == S_OK, "Failed to set UINT64 value, hr %#x.\n", hr);
|
||||
CHECK_ATTR_COUNT(attributes, 1);
|
||||
|
||||
hr = IMFAttributes_GetUINT64(attributes, &MF_READWRITE_ENABLE_HARDWARE_TRANSFORMS, &value64);
|
||||
ok(hr == S_OK, "Failed to get UINT64 value, hr %#x.\n", hr);
|
||||
|
@ -557,6 +560,7 @@ static void test_MFCreateAttributes(void)
|
|||
ok(hr == S_OK, "Failed to get item, hr %#x.\n", hr);
|
||||
ok(!PropVariantCompareEx(&propvar, &ret_propvar, 0, 0), "Unexpected item value.\n");
|
||||
PropVariantClear(&ret_propvar);
|
||||
CHECK_ATTR_COUNT(attributes, 1);
|
||||
|
||||
PropVariantInit(&ret_propvar);
|
||||
ret_propvar.vt = MF_ATTRIBUTE_STRING;
|
||||
|
@ -581,6 +585,7 @@ static void test_MFCreateAttributes(void)
|
|||
ok(!PropVariantCompareEx(&propvar, &ret_propvar, 0, 0), "Unexpected item value.\n");
|
||||
PropVariantClear(&ret_propvar);
|
||||
PropVariantClear(&propvar);
|
||||
CHECK_ATTR_COUNT(attributes, 1);
|
||||
|
||||
PropVariantInit(&propvar);
|
||||
propvar.vt = VT_I4;
|
||||
|
@ -604,9 +609,11 @@ static void test_MFCreateAttributes(void)
|
|||
|
||||
hr = IMFAttributes_DeleteItem(attributes, &DUMMY_GUID2);
|
||||
ok(hr == S_OK, "Failed to delete item, hr %#x.\n", hr);
|
||||
CHECK_ATTR_COUNT(attributes, 2);
|
||||
|
||||
hr = IMFAttributes_DeleteItem(attributes, &DUMMY_GUID2);
|
||||
ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
|
||||
CHECK_ATTR_COUNT(attributes, 2);
|
||||
|
||||
hr = IMFAttributes_GetItem(attributes, &DUMMY_GUID3, &ret_propvar);
|
||||
ok(hr == S_OK, "Failed to get item, hr %#x.\n", hr);
|
||||
|
|
Loading…
Reference in New Issue