qcap/tests: Build without -DWINE_NO_LONG_TYPES.

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Eric Pouech 2022-03-03 11:40:57 -06:00 committed by Alexandre Julliard
parent 0fb1d1f2ae
commit 9b6a229b4f
9 changed files with 1005 additions and 1006 deletions

View file

@ -1,4 +1,3 @@
EXTRADEFS = -DWINE_NO_LONG_TYPES
TESTDLL = qcap.dll
IMPORTS = strmbase strmiids uuid oleaut32 ole32 advapi32 msvfw32

View file

@ -39,7 +39,7 @@ static void check_interface_(unsigned int line, void *iface_ptr, REFIID iid, BOO
expected_hr = supported ? S_OK : E_NOINTERFACE;
hr = IUnknown_QueryInterface(iface, iid, (void **)&unk);
ok_(__FILE__, line)(hr == expected_hr, "Got hr %#x, expected %#x.\n", hr, expected_hr);
ok_(__FILE__, line)(hr == expected_hr, "Got hr %#lx, expected %#lx.\n", hr, expected_hr);
if (SUCCEEDED(hr))
IUnknown_Release(unk);
}
@ -110,53 +110,53 @@ static void test_aggregation(void)
filter = (IBaseFilter *)0xdeadbeef;
hr = CoCreateInstance(&CLSID_AudioRecord, &test_outer, CLSCTX_INPROC_SERVER,
&IID_IBaseFilter, (void **)&filter);
ok(hr == E_NOINTERFACE, "Got hr %#x.\n", hr);
ok(hr == E_NOINTERFACE, "Got hr %#lx.\n", hr);
ok(!filter, "Got interface %p.\n", filter);
hr = CoCreateInstance(&CLSID_AudioRecord, &test_outer, CLSCTX_INPROC_SERVER,
&IID_IUnknown, (void **)&unk);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(outer_ref == 1, "Got unexpected refcount %d.\n", outer_ref);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(outer_ref == 1, "Got unexpected refcount %ld.\n", outer_ref);
ok(unk != &test_outer, "Returned IUnknown should not be outer IUnknown.\n");
ref = get_refcount(unk);
ok(ref == 1, "Got unexpected refcount %d.\n", ref);
ok(ref == 1, "Got unexpected refcount %ld.\n", ref);
ref = IUnknown_AddRef(unk);
ok(ref == 2, "Got unexpected refcount %d.\n", ref);
ok(outer_ref == 1, "Got unexpected refcount %d.\n", outer_ref);
ok(ref == 2, "Got unexpected refcount %ld.\n", ref);
ok(outer_ref == 1, "Got unexpected refcount %ld.\n", outer_ref);
ref = IUnknown_Release(unk);
ok(ref == 1, "Got unexpected refcount %d.\n", ref);
ok(outer_ref == 1, "Got unexpected refcount %d.\n", outer_ref);
ok(ref == 1, "Got unexpected refcount %ld.\n", ref);
ok(outer_ref == 1, "Got unexpected refcount %ld.\n", outer_ref);
hr = IUnknown_QueryInterface(unk, &IID_IUnknown, (void **)&unk2);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(unk2 == unk, "Got unexpected IUnknown %p.\n", unk2);
IUnknown_Release(unk2);
hr = IUnknown_QueryInterface(unk, &IID_IBaseFilter, (void **)&filter);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IBaseFilter_QueryInterface(filter, &IID_IUnknown, (void **)&unk2);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(unk2 == (IUnknown *)0xdeadbeef, "Got unexpected IUnknown %p.\n", unk2);
hr = IBaseFilter_QueryInterface(filter, &IID_IBaseFilter, (void **)&filter2);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(filter2 == (IBaseFilter *)0xdeadbeef, "Got unexpected IBaseFilter %p.\n", filter2);
hr = IUnknown_QueryInterface(unk, &test_iid, (void **)&unk2);
ok(hr == E_NOINTERFACE, "Got hr %#x.\n", hr);
ok(hr == E_NOINTERFACE, "Got hr %#lx.\n", hr);
ok(!unk2, "Got unexpected IUnknown %p.\n", unk2);
hr = IBaseFilter_QueryInterface(filter, &test_iid, (void **)&unk2);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(unk2 == (IUnknown *)0xdeadbeef, "Got unexpected IUnknown %p.\n", unk2);
IBaseFilter_Release(filter);
ref = IUnknown_Release(unk);
ok(!ref, "Got unexpected refcount %d.\n", ref);
ok(outer_ref == 1, "Got unexpected refcount %d.\n", outer_ref);
ok(!ref, "Got unexpected refcount %ld.\n", ref);
ok(outer_ref == 1, "Got unexpected refcount %ld.\n", outer_ref);
}
static HRESULT WINAPI property_bag_QueryInterface(IPropertyBag *iface, REFIID iid, void **out)
@ -216,27 +216,27 @@ static void test_property_bag(IMoniker *mon)
ULONG ref;
hr = IMoniker_BindToStorage(mon, NULL, NULL, &IID_IPropertyBag, (void **)&devenum_bag);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
VariantInit(&var);
hr = IPropertyBag_Read(devenum_bag, L"WaveInId", &var, NULL);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ppb_id = V_I4(&var);
hr = CoCreateInstance(&CLSID_AudioRecord, NULL, CLSCTX_INPROC_SERVER,
&IID_IPersistPropertyBag, (void **)&ppb);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IPersistPropertyBag_InitNew(ppb);
todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr);
todo_wine ok(hr == S_OK, "Got hr %#lx.\n", hr);
ppb_got_read = 0;
hr = IPersistPropertyBag_Load(ppb, &property_bag, NULL);
ok(hr == S_OK || broken(hr == E_FAIL) /* 8+, intermittent */, "Got hr %#x.\n", hr);
ok(hr == S_OK || broken(hr == E_FAIL) /* 8+, intermittent */, "Got hr %#lx.\n", hr);
ok(ppb_got_read == 1, "Got %u calls to Read().\n", ppb_got_read);
ref = IPersistPropertyBag_Release(ppb);
ok(!ref, "Got unexpected refcount %d.\n", ref);
ok(!ref, "Got unexpected refcount %ld.\n", ref);
VariantClear(&var);
IPropertyBag_Release(devenum_bag);
@ -248,49 +248,49 @@ static void test_unconnected_filter_state(IBaseFilter *filter)
HRESULT hr;
hr = IBaseFilter_GetState(filter, 0, &state);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(state == State_Stopped, "Got state %u.\n", state);
hr = IBaseFilter_Pause(filter);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IBaseFilter_GetState(filter, 0, &state);
todo_wine ok(hr == VFW_S_CANT_CUE, "Got hr %#x.\n", hr);
todo_wine ok(hr == VFW_S_CANT_CUE, "Got hr %#lx.\n", hr);
ok(state == State_Paused, "Got state %u.\n", state);
hr = IBaseFilter_Run(filter, 0);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IBaseFilter_GetState(filter, 0, &state);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(state == State_Running, "Got state %u.\n", state);
hr = IBaseFilter_Pause(filter);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IBaseFilter_GetState(filter, 0, &state);
todo_wine ok(hr == VFW_S_CANT_CUE, "Got hr %#x.\n", hr);
todo_wine ok(hr == VFW_S_CANT_CUE, "Got hr %#lx.\n", hr);
ok(state == State_Paused, "Got state %u.\n", state);
hr = IBaseFilter_Stop(filter);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IBaseFilter_GetState(filter, 0, &state);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(state == State_Stopped, "Got state %u.\n", state);
hr = IBaseFilter_Run(filter, 0);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IBaseFilter_GetState(filter, 0, &state);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(state == State_Running, "Got state %u.\n", state);
hr = IBaseFilter_Stop(filter);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IBaseFilter_GetState(filter, 0, &state);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(state == State_Stopped, "Got state %u.\n", state);
}
@ -308,7 +308,7 @@ START_TEST(audiorecord)
hr = CoCreateInstance(&CLSID_SystemDeviceEnum, NULL, CLSCTX_INPROC_SERVER,
&IID_ICreateDevEnum, (void **)&devenum);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = ICreateDevEnum_CreateClassEnumerator(devenum, &CLSID_AudioInputDeviceCategory, &enummon, 0);
if (hr == S_FALSE)
{
@ -317,27 +317,27 @@ START_TEST(audiorecord)
CoUninitialize();
return;
}
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
test_aggregation();
while (IEnumMoniker_Next(enummon, 1, &mon, NULL) == S_OK)
{
hr = IMoniker_GetDisplayName(mon, NULL, NULL, &name);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
trace("Testing device %s.\n", wine_dbgstr_w(name));
CoTaskMemFree(name);
test_property_bag(mon);
hr = IMoniker_BindToObject(mon, NULL, NULL, &IID_IBaseFilter, (void **)&filter);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
test_interfaces(filter);
test_unconnected_filter_state(filter);
ref = IBaseFilter_Release(filter);
ok(!ref, "Got outstanding refcount %d.\n", ref);
ok(!ref, "Got outstanding refcount %ld.\n", ref);
IMoniker_Release(mon);
}

View file

@ -35,7 +35,7 @@ static void check_interface_(unsigned int line, void *iface_ptr, REFIID iid, BOO
expected_hr = supported ? S_OK : E_NOINTERFACE;
hr = IUnknown_QueryInterface(iface, iid, (void **)&unk);
ok_(__FILE__, line)(hr == expected_hr, "Got hr %#x, expected %#x.\n", hr, expected_hr);
ok_(__FILE__, line)(hr == expected_hr, "Got hr %#lx, expected %#lx.\n", hr, expected_hr);
if (SUCCEEDED(hr))
IUnknown_Release(unk);
}
@ -138,53 +138,53 @@ static void test_aggregation(void)
filter = (IBaseFilter *)0xdeadbeef;
hr = CoCreateInstance(&CLSID_AVICo, &test_outer, CLSCTX_INPROC_SERVER,
&IID_IBaseFilter, (void **)&filter);
ok(hr == E_NOINTERFACE, "Got hr %#x.\n", hr);
ok(hr == E_NOINTERFACE, "Got hr %#lx.\n", hr);
ok(!filter, "Got interface %p.\n", filter);
hr = CoCreateInstance(&CLSID_AVICo, &test_outer, CLSCTX_INPROC_SERVER,
&IID_IUnknown, (void **)&unk);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(outer_ref == 1, "Got unexpected refcount %d.\n", outer_ref);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(outer_ref == 1, "Got unexpected refcount %ld.\n", outer_ref);
ok(unk != &test_outer, "Returned IUnknown should not be outer IUnknown.\n");
ref = get_refcount(unk);
ok(ref == 1, "Got unexpected refcount %d.\n", ref);
ok(ref == 1, "Got unexpected refcount %ld.\n", ref);
ref = IUnknown_AddRef(unk);
ok(ref == 2, "Got unexpected refcount %d.\n", ref);
ok(outer_ref == 1, "Got unexpected refcount %d.\n", outer_ref);
ok(ref == 2, "Got unexpected refcount %ld.\n", ref);
ok(outer_ref == 1, "Got unexpected refcount %ld.\n", outer_ref);
ref = IUnknown_Release(unk);
ok(ref == 1, "Got unexpected refcount %d.\n", ref);
ok(outer_ref == 1, "Got unexpected refcount %d.\n", outer_ref);
ok(ref == 1, "Got unexpected refcount %ld.\n", ref);
ok(outer_ref == 1, "Got unexpected refcount %ld.\n", outer_ref);
hr = IUnknown_QueryInterface(unk, &IID_IUnknown, (void **)&unk2);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(unk2 == unk, "Got unexpected IUnknown %p.\n", unk2);
IUnknown_Release(unk2);
hr = IUnknown_QueryInterface(unk, &IID_IBaseFilter, (void **)&filter);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IBaseFilter_QueryInterface(filter, &IID_IUnknown, (void **)&unk2);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(unk2 == (IUnknown *)0xdeadbeef, "Got unexpected IUnknown %p.\n", unk2);
hr = IBaseFilter_QueryInterface(filter, &IID_IBaseFilter, (void **)&filter2);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(filter2 == (IBaseFilter *)0xdeadbeef, "Got unexpected IBaseFilter %p.\n", filter2);
hr = IUnknown_QueryInterface(unk, &test_iid, (void **)&unk2);
ok(hr == E_NOINTERFACE, "Got hr %#x.\n", hr);
ok(hr == E_NOINTERFACE, "Got hr %#lx.\n", hr);
ok(!unk2, "Got unexpected IUnknown %p.\n", unk2);
hr = IBaseFilter_QueryInterface(filter, &test_iid, (void **)&unk2);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(unk2 == (IUnknown *)0xdeadbeef, "Got unexpected IUnknown %p.\n", unk2);
IBaseFilter_Release(filter);
ref = IUnknown_Release(unk);
ok(!ref, "Got unexpected refcount %d.\n", ref);
ok(outer_ref == 1, "Got unexpected refcount %d.\n", outer_ref);
ok(!ref, "Got unexpected refcount %ld.\n", ref);
ok(outer_ref == 1, "Got unexpected refcount %ld.\n", outer_ref);
}
static void test_enum_pins(IBaseFilter *filter)
@ -195,110 +195,110 @@ static void test_enum_pins(IBaseFilter *filter)
HRESULT hr;
ref = get_refcount(filter);
ok(ref == 1, "Got unexpected refcount %d.\n", ref);
ok(ref == 1, "Got unexpected refcount %ld.\n", ref);
hr = IBaseFilter_EnumPins(filter, NULL);
ok(hr == E_POINTER, "Got hr %#x.\n", hr);
ok(hr == E_POINTER, "Got hr %#lx.\n", hr);
hr = IBaseFilter_EnumPins(filter, &enum1);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ref = get_refcount(filter);
ok(ref == 2, "Got unexpected refcount %d.\n", ref);
ok(ref == 2, "Got unexpected refcount %ld.\n", ref);
ref = get_refcount(enum1);
ok(ref == 1, "Got unexpected refcount %d.\n", ref);
ok(ref == 1, "Got unexpected refcount %ld.\n", ref);
hr = IEnumPins_Next(enum1, 1, NULL, NULL);
ok(hr == E_POINTER, "Got hr %#x.\n", hr);
ok(hr == E_POINTER, "Got hr %#lx.\n", hr);
hr = IEnumPins_Next(enum1, 1, pins, NULL);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ref = get_refcount(filter);
ok(ref == 3, "Got unexpected refcount %d.\n", ref);
ok(ref == 3, "Got unexpected refcount %ld.\n", ref);
ref = get_refcount(pins[0]);
ok(ref == 3, "Got unexpected refcount %d.\n", ref);
ok(ref == 3, "Got unexpected refcount %ld.\n", ref);
ref = get_refcount(enum1);
ok(ref == 1, "Got unexpected refcount %d.\n", ref);
ok(ref == 1, "Got unexpected refcount %ld.\n", ref);
IPin_Release(pins[0]);
ref = get_refcount(filter);
ok(ref == 2, "Got unexpected refcount %d.\n", ref);
ok(ref == 2, "Got unexpected refcount %ld.\n", ref);
hr = IEnumPins_Next(enum1, 1, pins, NULL);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ref = get_refcount(filter);
ok(ref == 3, "Got unexpected refcount %d.\n", ref);
ok(ref == 3, "Got unexpected refcount %ld.\n", ref);
ref = get_refcount(pins[0]);
ok(ref == 3, "Got unexpected refcount %d.\n", ref);
ok(ref == 3, "Got unexpected refcount %ld.\n", ref);
ref = get_refcount(enum1);
ok(ref == 1, "Got unexpected refcount %d.\n", ref);
ok(ref == 1, "Got unexpected refcount %ld.\n", ref);
IPin_Release(pins[0]);
ref = get_refcount(filter);
ok(ref == 2, "Got unexpected refcount %d.\n", ref);
ok(ref == 2, "Got unexpected refcount %ld.\n", ref);
hr = IEnumPins_Next(enum1, 1, pins, NULL);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
hr = IEnumPins_Reset(enum1);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumPins_Next(enum1, 1, pins, &count);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(count == 1, "Got count %u.\n", count);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(count == 1, "Got count %lu.\n", count);
IPin_Release(pins[0]);
hr = IEnumPins_Next(enum1, 1, pins, &count);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(count == 1, "Got count %u.\n", count);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(count == 1, "Got count %lu.\n", count);
IPin_Release(pins[0]);
hr = IEnumPins_Next(enum1, 1, pins, &count);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(!count, "Got count %u.\n", count);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
ok(!count, "Got count %lu.\n", count);
hr = IEnumPins_Reset(enum1);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumPins_Next(enum1, 2, pins, NULL);
ok(hr == E_INVALIDARG, "Got hr %#x.\n", hr);
ok(hr == E_INVALIDARG, "Got hr %#lx.\n", hr);
hr = IEnumPins_Next(enum1, 2, pins, &count);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(count == 2, "Got count %u.\n", count);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(count == 2, "Got count %lu.\n", count);
IPin_Release(pins[0]);
IPin_Release(pins[1]);
hr = IEnumPins_Next(enum1, 2, pins, &count);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(!count, "Got count %u.\n", count);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
ok(!count, "Got count %lu.\n", count);
hr = IEnumPins_Reset(enum1);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumPins_Next(enum1, 3, pins, &count);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(count == 2, "Got count %u.\n", count);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
ok(count == 2, "Got count %lu.\n", count);
IPin_Release(pins[0]);
IPin_Release(pins[1]);
hr = IEnumPins_Reset(enum1);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumPins_Clone(enum1, &enum2);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumPins_Skip(enum1, 3);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
hr = IEnumPins_Skip(enum1, 2);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumPins_Skip(enum1, 1);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
hr = IEnumPins_Next(enum1, 1, pins, NULL);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
hr = IEnumPins_Next(enum2, 1, pins, NULL);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
IPin_Release(pins[0]);
IEnumPins_Release(enum2);
@ -312,28 +312,28 @@ static void test_find_pin(IBaseFilter *filter)
HRESULT hr;
hr = IBaseFilter_EnumPins(filter, &enum_pins);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IBaseFilter_FindPin(filter, L"In", &pin);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumPins_Next(enum_pins, 1, &pin2, NULL);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(pin == pin2, "Pins didn't match.\n");
IPin_Release(pin);
IPin_Release(pin2);
hr = IBaseFilter_FindPin(filter, L"Out", &pin);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumPins_Next(enum_pins, 1, &pin2, NULL);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(pin == pin2, "Pins didn't match.\n");
IPin_Release(pin);
IPin_Release(pin2);
hr = IBaseFilter_FindPin(filter, L"Input", &pin);
ok(hr == VFW_E_NOT_FOUND, "Got hr %#x.\n", hr);
ok(hr == VFW_E_NOT_FOUND, "Got hr %#lx.\n", hr);
hr = IBaseFilter_FindPin(filter, L"Output", &pin);
ok(hr == VFW_E_NOT_FOUND, "Got hr %#x.\n", hr);
ok(hr == VFW_E_NOT_FOUND, "Got hr %#lx.\n", hr);
IEnumPins_Release(enum_pins);
}
@ -347,42 +347,42 @@ static void test_pin_info(IBaseFilter *filter)
IPin *pin;
hr = IBaseFilter_FindPin(filter, L"In", &pin);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IPin_QueryPinInfo(pin, &info);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(info.pFilter == filter, "Expected filter %p, got %p.\n", filter, info.pFilter);
ok(info.dir == PINDIR_INPUT, "Got direction %d.\n", info.dir);
todo_wine ok(!lstrcmpW(info.achName, L"Input"), "Got name %s.\n", wine_dbgstr_w(info.achName));
IBaseFilter_Release(info.pFilter);
hr = IPin_QueryDirection(pin, &dir);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(dir == PINDIR_INPUT, "Got direction %d.\n", dir);
hr = IPin_QueryId(pin, &id);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(!lstrcmpW(id, L"In"), "Got id %s.\n", wine_dbgstr_w(id));
CoTaskMemFree(id);
IPin_Release(pin);
hr = IBaseFilter_FindPin(filter, L"Out", &pin);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IPin_QueryPinInfo(pin, &info);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(info.pFilter == filter, "Expected filter %p, got %p.\n", filter, info.pFilter);
ok(info.dir == PINDIR_OUTPUT, "Got direction %d.\n", info.dir);
todo_wine ok(!lstrcmpW(info.achName, L"Output"), "Got name %s.\n", wine_dbgstr_w(info.achName));
IBaseFilter_Release(info.pFilter);
hr = IPin_QueryDirection(pin, &dir);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(dir == PINDIR_OUTPUT, "Got direction %d.\n", dir);
hr = IPin_QueryId(pin, &id);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(!lstrcmpW(id, L"Out"), "Got id %s.\n", wine_dbgstr_w(id));
CoTaskMemFree(id);
@ -392,7 +392,7 @@ static void test_pin_info(IBaseFilter *filter)
static LRESULT CALLBACK driver_proc(DWORD_PTR id, HDRVR driver, UINT msg,
LPARAM lparam1, LPARAM lparam2)
{
if (winetest_debug > 1) trace("msg %#x, lparam1 %#lx, lparam2 %#lx.\n", msg, lparam1, lparam2);
if (winetest_debug > 1) trace("msg %#x, lparam1 %#Ix, lparam2 %#Ix.\n", msg, lparam1, lparam2);
switch (msg)
{
@ -478,27 +478,27 @@ static void test_property_bag(IMoniker *mon)
ULONG ref;
hr = IMoniker_BindToStorage(mon, NULL, NULL, &IID_IPropertyBag, (void **)&devenum_bag);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
VariantInit(&var);
hr = IPropertyBag_Read(devenum_bag, L"FccHandler", &var, NULL);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ppb_handler = V_BSTR(&var);
hr = CoCreateInstance(&CLSID_AVICo, NULL, CLSCTX_INPROC_SERVER,
&IID_IPersistPropertyBag, (void **)&ppb);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IPersistPropertyBag_InitNew(ppb);
todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr);
todo_wine ok(hr == S_OK, "Got hr %#lx.\n", hr);
ppb_got_read = 0;
hr = IPersistPropertyBag_Load(ppb, &property_bag, NULL);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(ppb_got_read == 1, "Got %u calls to Read().\n", ppb_got_read);
ref = IPersistPropertyBag_Release(ppb);
ok(!ref, "Got unexpected refcount %d.\n", ref);
ok(!ref, "Got unexpected refcount %ld.\n", ref);
VariantClear(&var);
IPropertyBag_Release(devenum_bag);
@ -520,10 +520,10 @@ static void test_media_types(IBaseFilter *filter)
IBaseFilter_FindPin(filter, L"In", &pin);
hr = IPin_EnumMediaTypes(pin, &enummt);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumMediaTypes_Next(enummt, 1, &pmt, NULL);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
IEnumMediaTypes_Release(enummt);
@ -532,11 +532,11 @@ static void test_media_types(IBaseFilter *filter)
mt.cbFormat = sizeof(VIDEOINFOHEADER);
mt.pbFormat = (BYTE *)&vih;
hr = IPin_QueryAccept(pin, &mt);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
vih.bmiHeader.biBitCount = 32;
hr = IPin_QueryAccept(pin, &mt);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
vih.bmiHeader.biBitCount = 16;
mt.bFixedSizeSamples = TRUE;
@ -544,22 +544,22 @@ static void test_media_types(IBaseFilter *filter)
mt.lSampleSize = 123;
mt.subtype = MEDIASUBTYPE_RGB565;
hr = IPin_QueryAccept(pin, &mt);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
mt.subtype = MEDIASUBTYPE_WAVE;
hr = IPin_QueryAccept(pin, &mt);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
mt.formattype = GUID_NULL;
hr = IPin_QueryAccept(pin, &mt);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
mt.formattype = FORMAT_None;
hr = IPin_QueryAccept(pin, &mt);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
mt.formattype = FORMAT_VideoInfo;
mt.majortype = MEDIATYPE_NULL;
hr = IPin_QueryAccept(pin, &mt);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
mt.majortype = MEDIATYPE_Video;
IPin_Release(pin);
@ -567,10 +567,10 @@ static void test_media_types(IBaseFilter *filter)
IBaseFilter_FindPin(filter, L"Out", &pin);
hr = IPin_EnumMediaTypes(pin, &enummt);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumMediaTypes_Next(enummt, 1, &pmt, NULL);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
IEnumMediaTypes_Release(enummt);
IPin_Release(pin);
@ -587,29 +587,29 @@ static void test_enum_media_types(IBaseFilter *filter)
IBaseFilter_FindPin(filter, L"In", &pin);
hr = IPin_EnumMediaTypes(pin, &enum1);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumMediaTypes_Next(enum1, 1, mts, NULL);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
hr = IEnumMediaTypes_Next(enum1, 1, mts, &count);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(!count, "Got count %u.\n", count);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
ok(!count, "Got count %lu.\n", count);
hr = IEnumMediaTypes_Reset(enum1);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumMediaTypes_Next(enum1, 1, mts, NULL);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
hr = IEnumMediaTypes_Clone(enum1, &enum2);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumMediaTypes_Skip(enum1, 1);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
hr = IEnumMediaTypes_Next(enum2, 1, mts, NULL);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
IEnumMediaTypes_Release(enum1);
IEnumMediaTypes_Release(enum2);
@ -618,29 +618,29 @@ static void test_enum_media_types(IBaseFilter *filter)
IBaseFilter_FindPin(filter, L"Out", &pin);
hr = IPin_EnumMediaTypes(pin, &enum1);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumMediaTypes_Next(enum1, 1, mts, NULL);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
hr = IEnumMediaTypes_Next(enum1, 1, mts, &count);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(!count, "Got count %u.\n", count);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
ok(!count, "Got count %lu.\n", count);
hr = IEnumMediaTypes_Reset(enum1);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumMediaTypes_Next(enum1, 1, mts, NULL);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
hr = IEnumMediaTypes_Clone(enum1, &enum2);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumMediaTypes_Skip(enum1, 1);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
hr = IEnumMediaTypes_Next(enum2, 1, mts, NULL);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
IEnumMediaTypes_Release(enum1);
IEnumMediaTypes_Release(enum2);
@ -653,49 +653,49 @@ static void test_unconnected_filter_state(IBaseFilter *filter)
HRESULT hr;
hr = IBaseFilter_GetState(filter, 0, &state);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(state == State_Stopped, "Got state %u.\n", state);
hr = IBaseFilter_Pause(filter);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IBaseFilter_GetState(filter, 0, &state);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(state == State_Paused, "Got state %u.\n", state);
hr = IBaseFilter_Run(filter, 0);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IBaseFilter_GetState(filter, 0, &state);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(state == State_Running, "Got state %u.\n", state);
hr = IBaseFilter_Pause(filter);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IBaseFilter_GetState(filter, 0, &state);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(state == State_Paused, "Got state %u.\n", state);
hr = IBaseFilter_Stop(filter);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IBaseFilter_GetState(filter, 0, &state);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(state == State_Stopped, "Got state %u.\n", state);
hr = IBaseFilter_Run(filter, 0);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IBaseFilter_GetState(filter, 0, &state);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(state == State_Running, "Got state %u.\n", state);
hr = IBaseFilter_Stop(filter);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IBaseFilter_GetState(filter, 0, &state);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(state == State_Stopped, "Got state %u.\n", state);
}
@ -719,18 +719,18 @@ START_TEST(avico)
hr = CoCreateInstance(&CLSID_SystemDeviceEnum, NULL, CLSCTX_INPROC_SERVER,
&IID_ICreateDevEnum, (void **)&devenum);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = ICreateDevEnum_CreateClassEnumerator(devenum, &CLSID_VideoCompressorCategory, &enummon, 0);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
while (IEnumMoniker_Next(enummon, 1, &mon, NULL) == S_OK)
{
hr = IMoniker_GetDisplayName(mon, NULL, NULL, &name);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
if (!lstrcmpW(name, test_display_name))
{
hr = IMoniker_BindToObject(mon, NULL, NULL, &IID_IBaseFilter, (void **)&filter);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
test_aggregation();
test_interfaces(filter);
@ -742,7 +742,7 @@ START_TEST(avico)
test_unconnected_filter_state(filter);
ref = IBaseFilter_Release(filter);
ok(!ref, "Got outstanding refcount %d.\n", ref);
ok(!ref, "Got outstanding refcount %ld.\n", ref);
}
if (!memcmp(name, test_display_name, 11 * sizeof(WCHAR)))

View file

@ -30,7 +30,7 @@ static IBaseFilter *create_avi_mux(void)
IBaseFilter *filter = NULL;
HRESULT hr = CoCreateInstance(&CLSID_AviDest, NULL, CLSCTX_INPROC_SERVER,
&IID_IBaseFilter, (void **)&filter);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
return filter;
}
@ -51,7 +51,7 @@ static void check_interface_(unsigned int line, void *iface_ptr, REFIID iid, BOO
expected_hr = supported ? S_OK : E_NOINTERFACE;
hr = IUnknown_QueryInterface(iface, iid, (void **)&unk);
ok_(__FILE__, line)(hr == expected_hr, "Got hr %#x, expected %#x.\n", hr, expected_hr);
ok_(__FILE__, line)(hr == expected_hr, "Got hr %#lx, expected %#lx.\n", hr, expected_hr);
if (SUCCEEDED(hr))
IUnknown_Release(unk);
}
@ -159,53 +159,53 @@ static void test_aggregation(void)
filter = (IBaseFilter *)0xdeadbeef;
hr = CoCreateInstance(&CLSID_AviDest, &test_outer, CLSCTX_INPROC_SERVER,
&IID_IBaseFilter, (void **)&filter);
ok(hr == E_NOINTERFACE, "Got hr %#x.\n", hr);
ok(hr == E_NOINTERFACE, "Got hr %#lx.\n", hr);
ok(!filter, "Got interface %p.\n", filter);
hr = CoCreateInstance(&CLSID_AviDest, &test_outer, CLSCTX_INPROC_SERVER,
&IID_IUnknown, (void **)&unk);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(outer_ref == 1, "Got unexpected refcount %d.\n", outer_ref);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(outer_ref == 1, "Got unexpected refcount %ld.\n", outer_ref);
ok(unk != &test_outer, "Returned IUnknown should not be outer IUnknown.\n");
ref = get_refcount(unk);
ok(ref == 1, "Got unexpected refcount %d.\n", ref);
ok(ref == 1, "Got unexpected refcount %ld.\n", ref);
ref = IUnknown_AddRef(unk);
ok(ref == 2, "Got unexpected refcount %d.\n", ref);
ok(outer_ref == 1, "Got unexpected refcount %d.\n", outer_ref);
ok(ref == 2, "Got unexpected refcount %ld.\n", ref);
ok(outer_ref == 1, "Got unexpected refcount %ld.\n", outer_ref);
ref = IUnknown_Release(unk);
ok(ref == 1, "Got unexpected refcount %d.\n", ref);
ok(outer_ref == 1, "Got unexpected refcount %d.\n", outer_ref);
ok(ref == 1, "Got unexpected refcount %ld.\n", ref);
ok(outer_ref == 1, "Got unexpected refcount %ld.\n", outer_ref);
hr = IUnknown_QueryInterface(unk, &IID_IUnknown, (void **)&unk2);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(unk2 == unk, "Got unexpected IUnknown %p.\n", unk2);
IUnknown_Release(unk2);
hr = IUnknown_QueryInterface(unk, &IID_IBaseFilter, (void **)&filter);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IBaseFilter_QueryInterface(filter, &IID_IUnknown, (void **)&unk2);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(unk2 == (IUnknown *)0xdeadbeef, "Got unexpected IUnknown %p.\n", unk2);
hr = IBaseFilter_QueryInterface(filter, &IID_IBaseFilter, (void **)&filter2);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(filter2 == (IBaseFilter *)0xdeadbeef, "Got unexpected IBaseFilter %p.\n", filter2);
hr = IUnknown_QueryInterface(unk, &test_iid, (void **)&unk2);
ok(hr == E_NOINTERFACE, "Got hr %#x.\n", hr);
ok(hr == E_NOINTERFACE, "Got hr %#lx.\n", hr);
ok(!unk2, "Got unexpected IUnknown %p.\n", unk2);
hr = IBaseFilter_QueryInterface(filter, &test_iid, (void **)&unk2);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(unk2 == (IUnknown *)0xdeadbeef, "Got unexpected IUnknown %p.\n", unk2);
IBaseFilter_Release(filter);
ref = IUnknown_Release(unk);
ok(!ref, "Got unexpected refcount %d.\n", ref);
ok(outer_ref == 1, "Got unexpected refcount %d.\n", outer_ref);
ok(!ref, "Got unexpected refcount %ld.\n", ref);
ok(outer_ref == 1, "Got unexpected refcount %ld.\n", outer_ref);
}
static void test_enum_pins(void)
@ -217,116 +217,116 @@ static void test_enum_pins(void)
HRESULT hr;
ref = get_refcount(filter);
ok(ref == 1, "Got unexpected refcount %d.\n", ref);
ok(ref == 1, "Got unexpected refcount %ld.\n", ref);
hr = IBaseFilter_EnumPins(filter, NULL);
ok(hr == E_POINTER, "Got hr %#x.\n", hr);
ok(hr == E_POINTER, "Got hr %#lx.\n", hr);
hr = IBaseFilter_EnumPins(filter, &enum1);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ref = get_refcount(filter);
ok(ref == 2, "Got unexpected refcount %d.\n", ref);
ok(ref == 2, "Got unexpected refcount %ld.\n", ref);
ref = get_refcount(enum1);
ok(ref == 1, "Got unexpected refcount %d.\n", ref);
ok(ref == 1, "Got unexpected refcount %ld.\n", ref);
hr = IEnumPins_Next(enum1, 1, NULL, NULL);
ok(hr == E_POINTER, "Got hr %#x.\n", hr);
ok(hr == E_POINTER, "Got hr %#lx.\n", hr);
hr = IEnumPins_Next(enum1, 1, pins, NULL);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ref = get_refcount(filter);
ok(ref == 3, "Got unexpected refcount %d.\n", ref);
ok(ref == 3, "Got unexpected refcount %ld.\n", ref);
ref = get_refcount(pins[0]);
ok(ref == 3, "Got unexpected refcount %d.\n", ref);
ok(ref == 3, "Got unexpected refcount %ld.\n", ref);
ref = get_refcount(enum1);
ok(ref == 1, "Got unexpected refcount %d.\n", ref);
ok(ref == 1, "Got unexpected refcount %ld.\n", ref);
IPin_Release(pins[0]);
ref = get_refcount(filter);
ok(ref == 2, "Got unexpected refcount %d.\n", ref);
ok(ref == 2, "Got unexpected refcount %ld.\n", ref);
hr = IEnumPins_Next(enum1, 1, pins, NULL);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ref = get_refcount(filter);
ok(ref == 3, "Got unexpected refcount %d.\n", ref);
ok(ref == 3, "Got unexpected refcount %ld.\n", ref);
ref = get_refcount(pins[0]);
ok(ref == 3, "Got unexpected refcount %d.\n", ref);
ok(ref == 3, "Got unexpected refcount %ld.\n", ref);
ref = get_refcount(enum1);
ok(ref == 1, "Got unexpected refcount %d.\n", ref);
ok(ref == 1, "Got unexpected refcount %ld.\n", ref);
IPin_Release(pins[0]);
ref = get_refcount(filter);
ok(ref == 2, "Got unexpected refcount %d.\n", ref);
ok(ref == 2, "Got unexpected refcount %ld.\n", ref);
hr = IEnumPins_Next(enum1, 1, pins, NULL);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
hr = IEnumPins_Reset(enum1);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumPins_Next(enum1, 1, pins, &count);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(count == 1, "Got count %u.\n", count);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(count == 1, "Got count %lu.\n", count);
IPin_Release(pins[0]);
hr = IEnumPins_Next(enum1, 1, pins, &count);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(count == 1, "Got count %u.\n", count);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(count == 1, "Got count %lu.\n", count);
IPin_Release(pins[0]);
hr = IEnumPins_Next(enum1, 1, pins, &count);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(!count, "Got count %u.\n", count);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
ok(!count, "Got count %lu.\n", count);
hr = IEnumPins_Reset(enum1);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumPins_Next(enum1, 2, pins, NULL);
ok(hr == E_INVALIDARG, "Got hr %#x.\n", hr);
ok(hr == E_INVALIDARG, "Got hr %#lx.\n", hr);
hr = IEnumPins_Next(enum1, 2, pins, &count);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(count == 2, "Got count %u.\n", count);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(count == 2, "Got count %lu.\n", count);
IPin_Release(pins[0]);
IPin_Release(pins[1]);
hr = IEnumPins_Next(enum1, 2, pins, &count);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(!count, "Got count %u.\n", count);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
ok(!count, "Got count %lu.\n", count);
hr = IEnumPins_Reset(enum1);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumPins_Next(enum1, 3, pins, &count);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(count == 2, "Got count %u.\n", count);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
ok(count == 2, "Got count %lu.\n", count);
IPin_Release(pins[0]);
IPin_Release(pins[1]);
hr = IEnumPins_Reset(enum1);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumPins_Clone(enum1, &enum2);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumPins_Skip(enum1, 3);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
hr = IEnumPins_Skip(enum1, 2);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumPins_Skip(enum1, 1);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
hr = IEnumPins_Next(enum1, 1, pins, NULL);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
hr = IEnumPins_Next(enum2, 1, pins, NULL);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
IPin_Release(pins[0]);
IEnumPins_Release(enum2);
IEnumPins_Release(enum1);
ref = IBaseFilter_Release(filter);
ok(!ref, "Got outstanding refcount %d.\n", ref);
ok(!ref, "Got outstanding refcount %ld.\n", ref);
}
static void test_find_pin(void)
@ -338,27 +338,27 @@ static void test_find_pin(void)
ULONG ref;
hr = IBaseFilter_EnumPins(filter, &enum_pins);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IBaseFilter_FindPin(filter, L"AVI Out", &pin);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumPins_Next(enum_pins, 1, &pin2, NULL);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(pin == pin2, "Pins didn't match.\n");
IPin_Release(pin);
IPin_Release(pin2);
hr = IBaseFilter_FindPin(filter, L"Input 01", &pin);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumPins_Next(enum_pins, 1, &pin2, NULL);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(pin == pin2, "Pins didn't match.\n");
IPin_Release(pin);
IPin_Release(pin2);
IEnumPins_Release(enum_pins);
ref = IBaseFilter_Release(filter);
ok(!ref, "Got outstanding refcount %d.\n", ref);
ok(!ref, "Got outstanding refcount %ld.\n", ref);
}
static void test_pin_info(void)
@ -372,63 +372,63 @@ static void test_pin_info(void)
IPin *pin;
hr = IBaseFilter_FindPin(filter, L"AVI Out", &pin);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ref = get_refcount(filter);
ok(ref == 2, "Got unexpected refcount %d.\n", ref);
ok(ref == 2, "Got unexpected refcount %ld.\n", ref);
ref = get_refcount(pin);
ok(ref == 2, "Got unexpected refcount %d.\n", ref);
ok(ref == 2, "Got unexpected refcount %ld.\n", ref);
hr = IPin_QueryPinInfo(pin, &info);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(info.pFilter == filter, "Expected filter %p, got %p.\n", filter, info.pFilter);
ok(info.dir == PINDIR_OUTPUT, "Got direction %d.\n", info.dir);
ok(!lstrcmpW(info.achName, L"AVI Out"), "Got name %s.\n", wine_dbgstr_w(info.achName));
ref = get_refcount(filter);
ok(ref == 3, "Got unexpected refcount %d.\n", ref);
ok(ref == 3, "Got unexpected refcount %ld.\n", ref);
ref = get_refcount(pin);
ok(ref == 3, "Got unexpected refcount %d.\n", ref);
ok(ref == 3, "Got unexpected refcount %ld.\n", ref);
IBaseFilter_Release(info.pFilter);
hr = IPin_QueryDirection(pin, &dir);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(dir == PINDIR_OUTPUT, "Got direction %d.\n", dir);
hr = IPin_QueryId(pin, &id);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(!lstrcmpW(id, L"AVI Out"), "Got id %s.\n", wine_dbgstr_w(id));
CoTaskMemFree(id);
hr = IPin_QueryInternalConnections(pin, NULL, NULL);
ok(hr == E_NOTIMPL, "Got hr %#x.\n", hr);
ok(hr == E_NOTIMPL, "Got hr %#lx.\n", hr);
IPin_Release(pin);
hr = IBaseFilter_FindPin(filter, L"Input 01", &pin);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IPin_QueryPinInfo(pin, &info);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(info.pFilter == filter, "Expected filter %p, got %p.\n", filter, info.pFilter);
ok(info.dir == PINDIR_INPUT, "Got direction %d.\n", info.dir);
ok(!lstrcmpW(info.achName, L"Input 01"), "Got name %s.\n", wine_dbgstr_w(info.achName));
IBaseFilter_Release(info.pFilter);
hr = IPin_QueryDirection(pin, &dir);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(dir == PINDIR_INPUT, "Got direction %d.\n", dir);
hr = IPin_QueryId(pin, &id);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(!lstrcmpW(id, L"Input 01"), "Got id %s.\n", wine_dbgstr_w(id));
CoTaskMemFree(id);
hr = IPin_QueryInternalConnections(pin, NULL, NULL);
ok(hr == E_NOTIMPL, "Got hr %#x.\n", hr);
ok(hr == E_NOTIMPL, "Got hr %#lx.\n", hr);
IPin_Release(pin);
ref = IBaseFilter_Release(filter);
ok(!ref, "Got outstanding refcount %d.\n", ref);
ok(!ref, "Got outstanding refcount %ld.\n", ref);
}
static void test_media_types(void)
@ -445,53 +445,53 @@ static void test_media_types(void)
IBaseFilter_FindPin(filter, L"AVI Out", &pin);
hr = IPin_EnumMediaTypes(pin, &enummt);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumMediaTypes_Next(enummt, 1, &pmt, NULL);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(IsEqualGUID(&pmt->majortype, &MEDIATYPE_Stream), "Got major type %s\n",
wine_dbgstr_guid(&pmt->majortype));
ok(IsEqualGUID(&pmt->subtype, &MEDIASUBTYPE_Avi), "Got subtype %s\n",
wine_dbgstr_guid(&pmt->subtype));
ok(pmt->bFixedSizeSamples == TRUE, "Got fixed size %d.\n", pmt->bFixedSizeSamples);
ok(!pmt->bTemporalCompression, "Got temporal compression %d.\n", pmt->bTemporalCompression);
ok(pmt->lSampleSize == 1, "Got sample size %u.\n", pmt->lSampleSize);
ok(pmt->lSampleSize == 1, "Got sample size %lu.\n", pmt->lSampleSize);
ok(IsEqualGUID(&pmt->formattype, &GUID_NULL), "Got format type %s.\n",
wine_dbgstr_guid(&pmt->formattype));
ok(!pmt->pUnk, "Got pUnk %p.\n", pmt->pUnk);
ok(!pmt->cbFormat, "Got format size %u.\n", pmt->cbFormat);
ok(!pmt->pbFormat, "Got format block %u.\n", pmt->cbFormat);
ok(!pmt->cbFormat, "Got format size %lu.\n", pmt->cbFormat);
ok(!pmt->pbFormat, "Got format block %lu.\n", pmt->cbFormat);
hr = IPin_QueryAccept(pin, pmt);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
pmt->bFixedSizeSamples = FALSE;
pmt->bTemporalCompression = TRUE;
pmt->lSampleSize = 123;
pmt->formattype = FORMAT_VideoInfo;
hr = IPin_QueryAccept(pin, pmt);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
pmt->majortype = GUID_NULL;
hr = IPin_QueryAccept(pin, pmt);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
pmt->majortype = MEDIATYPE_Video;
hr = IPin_QueryAccept(pin, pmt);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
pmt->majortype = MEDIATYPE_Stream;
pmt->subtype = GUID_NULL;
hr = IPin_QueryAccept(pin, pmt);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
pmt->subtype = MEDIASUBTYPE_RGB8;
hr = IPin_QueryAccept(pin, pmt);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
pmt->subtype = MEDIASUBTYPE_Avi;
CoTaskMemFree(pmt);
hr = IEnumMediaTypes_Next(enummt, 1, &pmt, NULL);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
IEnumMediaTypes_Release(enummt);
IPin_Release(pin);
@ -499,10 +499,10 @@ static void test_media_types(void)
IBaseFilter_FindPin(filter, L"Input 01", &pin);
hr = IPin_EnumMediaTypes(pin, &enummt);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumMediaTypes_Next(enummt, 1, &pmt, NULL);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
IEnumMediaTypes_Release(enummt);
@ -512,46 +512,46 @@ static void test_media_types(void)
mt.pbFormat = (BYTE *)&wfx;
wfx.nBlockAlign = 1;
hr = IPin_QueryAccept(pin, &mt);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
mt.subtype = MEDIASUBTYPE_RGB8;
mt.bFixedSizeSamples = TRUE;
mt.bTemporalCompression = TRUE;
mt.lSampleSize = 123;
hr = IPin_QueryAccept(pin, &mt);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
mt.majortype = MEDIATYPE_Video;
hr = IPin_QueryAccept(pin, &mt);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
mt.majortype = GUID_NULL;
hr = IPin_QueryAccept(pin, &mt);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
mt.majortype = MEDIATYPE_Interleaved;
hr = IPin_QueryAccept(pin, &mt);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
mt.majortype = MEDIATYPE_Video;
mt.formattype = FORMAT_VideoInfo;
mt.cbFormat = sizeof(vih);
mt.pbFormat = (BYTE *)&vih;
hr = IPin_QueryAccept(pin, &mt);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
mt.majortype = MEDIATYPE_Audio;
hr = IPin_QueryAccept(pin, &mt);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
mt.majortype = GUID_NULL;
hr = IPin_QueryAccept(pin, &mt);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
mt.majortype = MEDIATYPE_Interleaved;
hr = IPin_QueryAccept(pin, &mt);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
IPin_Release(pin);
ref = IBaseFilter_Release(filter);
ok(!ref, "Got outstanding refcount %d.\n", ref);
ok(!ref, "Got outstanding refcount %ld.\n", ref);
}
static void test_enum_media_types(void)
@ -566,61 +566,61 @@ static void test_enum_media_types(void)
IBaseFilter_FindPin(filter, L"AVI Out", &pin);
hr = IPin_EnumMediaTypes(pin, &enum1);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumMediaTypes_Next(enum1, 1, mts, NULL);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
CoTaskMemFree(mts[0]);
hr = IEnumMediaTypes_Next(enum1, 1, mts, NULL);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
hr = IEnumMediaTypes_Reset(enum1);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumMediaTypes_Next(enum1, 1, mts, &count);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(count == 1, "Got count %u.\n", count);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(count == 1, "Got count %lu.\n", count);
CoTaskMemFree(mts[0]);
hr = IEnumMediaTypes_Next(enum1, 1, mts, &count);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(!count, "Got count %u.\n", count);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
ok(!count, "Got count %lu.\n", count);
hr = IEnumMediaTypes_Reset(enum1);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumMediaTypes_Next(enum1, 2, mts, &count);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(count == 1, "Got count %u.\n", count);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
ok(count == 1, "Got count %lu.\n", count);
CoTaskMemFree(mts[0]);
hr = IEnumMediaTypes_Reset(enum1);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumMediaTypes_Clone(enum1, &enum2);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumMediaTypes_Skip(enum1, 2);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
hr = IEnumMediaTypes_Skip(enum1, 1);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
hr = IEnumMediaTypes_Reset(enum1);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumMediaTypes_Skip(enum1, 1);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumMediaTypes_Skip(enum1, 1);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
hr = IEnumMediaTypes_Next(enum1, 1, mts, NULL);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
hr = IEnumMediaTypes_Next(enum2, 1, mts, NULL);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
CoTaskMemFree(mts[0]);
IEnumMediaTypes_Release(enum1);
@ -630,36 +630,36 @@ static void test_enum_media_types(void)
IBaseFilter_FindPin(filter, L"Input 01", &pin);
hr = IPin_EnumMediaTypes(pin, &enum1);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumMediaTypes_Next(enum1, 1, mts, NULL);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
hr = IEnumMediaTypes_Next(enum1, 1, mts, &count);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(!count, "Got count %u.\n", count);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
ok(!count, "Got count %lu.\n", count);
hr = IEnumMediaTypes_Reset(enum1);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumMediaTypes_Next(enum1, 1, mts, NULL);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
hr = IEnumMediaTypes_Clone(enum1, &enum2);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumMediaTypes_Skip(enum1, 1);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
hr = IEnumMediaTypes_Next(enum2, 1, mts, NULL);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
IEnumMediaTypes_Release(enum1);
IEnumMediaTypes_Release(enum2);
IPin_Release(pin);
ref = IBaseFilter_Release(filter);
ok(!ref, "Got outstanding refcount %d.\n", ref);
ok(!ref, "Got outstanding refcount %ld.\n", ref);
}
static void test_seeking(void)
@ -693,109 +693,109 @@ static void test_seeking(void)
IBaseFilter_QueryInterface(filter, &IID_IMediaSeeking, (void **)&seeking);
hr = IMediaSeeking_GetCapabilities(seeking, &caps);
todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr);
todo_wine ok(caps == (AM_SEEKING_CanGetCurrentPos | AM_SEEKING_CanGetDuration), "Got caps %#x.\n", caps);
todo_wine ok(hr == S_OK, "Got hr %#lx.\n", hr);
todo_wine ok(caps == (AM_SEEKING_CanGetCurrentPos | AM_SEEKING_CanGetDuration), "Got caps %#lx.\n", caps);
caps = AM_SEEKING_CanGetCurrentPos;
hr = IMediaSeeking_CheckCapabilities(seeking, &caps);
todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(caps == AM_SEEKING_CanGetCurrentPos, "Got caps %#x.\n", caps);
todo_wine ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(caps == AM_SEEKING_CanGetCurrentPos, "Got caps %#lx.\n", caps);
caps = AM_SEEKING_CanDoSegments | AM_SEEKING_CanGetCurrentPos;
hr = IMediaSeeking_CheckCapabilities(seeking, &caps);
todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr);
todo_wine ok(caps == AM_SEEKING_CanGetCurrentPos, "Got caps %#x.\n", caps);
todo_wine ok(hr == S_OK, "Got hr %#lx.\n", hr);
todo_wine ok(caps == AM_SEEKING_CanGetCurrentPos, "Got caps %#lx.\n", caps);
caps = AM_SEEKING_CanDoSegments;
hr = IMediaSeeking_CheckCapabilities(seeking, &caps);
todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr);
todo_wine ok(!caps, "Got caps %#x.\n", caps);
todo_wine ok(hr == S_OK, "Got hr %#lx.\n", hr);
todo_wine ok(!caps, "Got caps %#lx.\n", caps);
for (i = 0; i < ARRAY_SIZE(format_tests); ++i)
{
hr = IMediaSeeking_IsFormatSupported(seeking, format_tests[i].guid);
todo_wine ok(hr == format_tests[i].hr, "Got hr %#x for format %s.\n", hr, wine_dbgstr_guid(format_tests[i].guid));
todo_wine ok(hr == format_tests[i].hr, "Got hr %#lx for format %s.\n", hr, wine_dbgstr_guid(format_tests[i].guid));
}
hr = IMediaSeeking_QueryPreferredFormat(seeking, &format);
todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr);
todo_wine ok(hr == S_OK, "Got hr %#lx.\n", hr);
todo_wine ok(IsEqualGUID(&format, &TIME_FORMAT_MEDIA_TIME), "Got format %s.\n", wine_dbgstr_guid(&format));
hr = IMediaSeeking_GetTimeFormat(seeking, &format);
todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr);
todo_wine ok(hr == S_OK, "Got hr %#lx.\n", hr);
todo_wine ok(IsEqualGUID(&format, &TIME_FORMAT_MEDIA_TIME), "Got format %s.\n", wine_dbgstr_guid(&format));
hr = IMediaSeeking_IsUsingTimeFormat(seeking, &TIME_FORMAT_MEDIA_TIME);
todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr);
todo_wine ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IMediaSeeking_IsUsingTimeFormat(seeking, &TIME_FORMAT_BYTE);
todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr);
todo_wine ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IMediaSeeking_SetTimeFormat(seeking, &TIME_FORMAT_SAMPLE);
todo_wine ok(hr == E_INVALIDARG, "Got hr %#x.\n", hr);
todo_wine ok(hr == E_INVALIDARG, "Got hr %#lx.\n", hr);
hr = IMediaSeeking_SetTimeFormat(seeking, &TIME_FORMAT_BYTE);
todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr);
todo_wine ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IMediaSeeking_QueryPreferredFormat(seeking, &format);
todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr);
todo_wine ok(hr == S_OK, "Got hr %#lx.\n", hr);
todo_wine ok(IsEqualGUID(&format, &TIME_FORMAT_MEDIA_TIME), "Got format %s.\n", wine_dbgstr_guid(&format));
hr = IMediaSeeking_GetTimeFormat(seeking, &format);
todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr);
todo_wine ok(hr == S_OK, "Got hr %#lx.\n", hr);
todo_wine ok(IsEqualGUID(&format, &TIME_FORMAT_BYTE), "Got format %s.\n", wine_dbgstr_guid(&format));
hr = IMediaSeeking_IsUsingTimeFormat(seeking, &TIME_FORMAT_MEDIA_TIME);
todo_wine ok(hr == S_FALSE, "Got hr %#x.\n", hr);
todo_wine ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
hr = IMediaSeeking_IsUsingTimeFormat(seeking, &TIME_FORMAT_BYTE);
todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr);
todo_wine ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IMediaSeeking_SetTimeFormat(seeking, &TIME_FORMAT_MEDIA_TIME);
todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr);
todo_wine ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IMediaSeeking_IsUsingTimeFormat(seeking, &TIME_FORMAT_MEDIA_TIME);
todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr);
todo_wine ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IMediaSeeking_IsUsingTimeFormat(seeking, &TIME_FORMAT_BYTE);
todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr);
todo_wine ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IMediaSeeking_ConvertTimeFormat(seeking, &time, NULL, 0x123456789a, NULL);
ok(hr == E_NOTIMPL, "Got hr %#x.\n", hr);
ok(hr == E_NOTIMPL, "Got hr %#lx.\n", hr);
hr = IMediaSeeking_ConvertTimeFormat(seeking, &time, &TIME_FORMAT_MEDIA_TIME, 0x123456789a, &TIME_FORMAT_BYTE);
ok(hr == E_NOTIMPL, "Got hr %#x.\n", hr);
ok(hr == E_NOTIMPL, "Got hr %#lx.\n", hr);
current = 0x123;
stop = 0x321;
hr = IMediaSeeking_SetPositions(seeking, &current, AM_SEEKING_AbsolutePositioning,
&stop, AM_SEEKING_AbsolutePositioning);
ok(hr == E_NOTIMPL, "Got hr %#x.\n", hr);
ok(hr == E_NOTIMPL, "Got hr %#lx.\n", hr);
hr = IMediaSeeking_SetPositions(seeking, &current, AM_SEEKING_NoPositioning,
&stop, AM_SEEKING_NoPositioning);
ok(hr == E_NOTIMPL, "Got hr %#x.\n", hr);
ok(hr == E_NOTIMPL, "Got hr %#lx.\n", hr);
hr = IMediaSeeking_GetPositions(seeking, NULL, NULL);
ok(hr == E_NOTIMPL, "Got hr %#x.\n", hr);
ok(hr == E_NOTIMPL, "Got hr %#lx.\n", hr);
hr = IMediaSeeking_GetPositions(seeking, NULL, &stop);
ok(hr == E_NOTIMPL, "Got hr %#x.\n", hr);
ok(hr == E_NOTIMPL, "Got hr %#lx.\n", hr);
hr = IMediaSeeking_GetPositions(seeking, &current, &stop);
ok(hr == E_NOTIMPL, "Got hr %#x.\n", hr);
ok(hr == E_NOTIMPL, "Got hr %#lx.\n", hr);
hr = IMediaSeeking_GetPositions(seeking, &current, NULL);
ok(hr == E_NOTIMPL, "Got hr %#x.\n", hr);
ok(hr == E_NOTIMPL, "Got hr %#lx.\n", hr);
hr = IMediaSeeking_GetDuration(seeking, &time);
todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr);
todo_wine ok(hr == S_OK, "Got hr %#lx.\n", hr);
if (hr == S_OK)
ok(!time, "Got duration %s.\n", wine_dbgstr_longlong(time));
hr = IMediaSeeking_GetCurrentPosition(seeking, &time);
todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr);
todo_wine ok(hr == S_OK, "Got hr %#lx.\n", hr);
if (hr == S_OK)
ok(!time, "Got duration %s.\n", wine_dbgstr_longlong(time));
hr = IMediaSeeking_GetStopPosition(seeking, &time);
ok(hr == E_NOTIMPL, "Got hr %#x.\n", hr);
ok(hr == E_NOTIMPL, "Got hr %#lx.\n", hr);
IMediaSeeking_Release(seeking);
ref = IBaseFilter_Release(filter);
ok(!ref, "Got unexpected refcount %d.\n", ref);
ok(!ref, "Got unexpected refcount %ld.\n", ref);
}
static void test_unconnected_filter_state(void)
@ -806,53 +806,53 @@ static void test_unconnected_filter_state(void)
ULONG ref;
hr = IBaseFilter_GetState(filter, 0, &state);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(state == State_Stopped, "Got state %u.\n", state);
hr = IBaseFilter_Pause(filter);
todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr);
todo_wine ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IBaseFilter_GetState(filter, 0, &state);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
todo_wine ok(state == State_Paused, "Got state %u.\n", state);
hr = IBaseFilter_Run(filter, 0);
todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr);
todo_wine ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IBaseFilter_GetState(filter, 0, &state);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
todo_wine ok(state == State_Running, "Got state %u.\n", state);
hr = IBaseFilter_Pause(filter);
todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr);
todo_wine ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IBaseFilter_GetState(filter, 0, &state);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
todo_wine ok(state == State_Paused, "Got state %u.\n", state);
hr = IBaseFilter_Stop(filter);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IBaseFilter_GetState(filter, 0, &state);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(state == State_Stopped, "Got state %u.\n", state);
hr = IBaseFilter_Run(filter, 0);
todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr);
todo_wine ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IBaseFilter_GetState(filter, 0, &state);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
todo_wine ok(state == State_Running, "Got state %u.\n", state);
hr = IBaseFilter_Stop(filter);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IBaseFilter_GetState(filter, 0, &state);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(state == State_Stopped, "Got state %u.\n", state);
ref = IBaseFilter_Release(filter);
ok(!ref, "Got outstanding refcount %d.\n", ref);
ok(!ref, "Got outstanding refcount %ld.\n", ref);
}
START_TEST(avimux)

View file

@ -29,7 +29,7 @@ static ICaptureGraphBuilder2 *create_capture_graph(void)
ICaptureGraphBuilder2 *ret;
HRESULT hr = CoCreateInstance(&CLSID_CaptureGraphBuilder2, NULL,
CLSCTX_INPROC_SERVER, &IID_ICaptureGraphBuilder2, (void **)&ret);
ok(hr == S_OK, "Failed to create capture graph builder, hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
return ret;
}
@ -149,10 +149,10 @@ static HRESULT WINAPI property_set_Get(IKsPropertySet *iface, REFGUID set, DWORD
if (winetest_debug > 1) trace("%s->Get()\n", debugstr_w(pin->pin.pin.name));
ok(IsEqualGUID(set, &AMPROPSETID_Pin), "Got set %s.\n", debugstr_guid(set));
ok(id == AMPROPERTY_PIN_CATEGORY, "Got id %#x.\n", id);
ok(id == AMPROPERTY_PIN_CATEGORY, "Got id %#lx.\n", id);
ok(!instance_data, "Got instance data %p.\n", instance_data);
ok(!instance_size, "Got instance size %u.\n", instance_size);
ok(property_size == sizeof(GUID), "Got property size %u.\n", property_size);
ok(!instance_size, "Got instance size %lu.\n", instance_size);
ok(property_size == sizeof(GUID), "Got property size %lu.\n", property_size);
ok(!!ret_size, "Expected non-NULL return size.\n");
memcpy(property_data, &pin->category, sizeof(GUID));
return S_OK;
@ -368,7 +368,7 @@ static void test_find_interface(void)
CoCreateInstance(&CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, &IID_IGraphBuilder, (void **)&graph);
hr = ICaptureGraphBuilder2_SetFiltergraph(capture_graph, graph);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
testfilter_init(&filter1);
IGraphBuilder_AddFilter(graph, &filter1.filter.IBaseFilter_iface, L"filter1");
@ -378,21 +378,21 @@ static void test_find_interface(void)
IGraphBuilder_AddFilter(graph, &filter3.filter.IBaseFilter_iface, L"filter3");
hr = IGraphBuilder_ConnectDirect(graph, &filter1.source1.pin.pin.IPin_iface, &filter2.sink1.pin.pin.IPin_iface, &mt1);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IGraphBuilder_ConnectDirect(graph, &filter2.source1.pin.pin.IPin_iface, &filter3.sink1.pin.pin.IPin_iface, &mt2);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
/* Test search order without any restrictions applied. */
hr = ICaptureGraphBuilder2_FindInterface(capture_graph, NULL, &bogus_majortype,
NULL, &testiid, (void **)&unk);
ok(hr == E_POINTER, "got hr %#x.\n", hr);
ok(hr == E_POINTER, "Got hr %#lx.\n", hr);
for (i = 0; i < ARRAY_SIZE(tests_from_filter2); ++i)
{
hr = ICaptureGraphBuilder2_FindInterface(capture_graph, NULL, &bogus_majortype,
&filter2.filter.IBaseFilter_iface, &testiid, (void **)&unk);
ok(hr == S_OK, "Test %u: got hr %#x.\n", i, hr);
ok(hr == S_OK, "Test %u: got hr %#lx.\n", i, hr);
ok(unk == tests_from_filter2[i].iface, "Test %u: got wrong interface %p.\n", i, unk);
IUnknown_Release(unk);
*tests_from_filter2[i].expose = FALSE;
@ -400,7 +400,7 @@ static void test_find_interface(void)
hr = ICaptureGraphBuilder2_FindInterface(capture_graph, NULL, &bogus_majortype,
&filter2.filter.IBaseFilter_iface, &testiid, (void **)&unk);
ok(hr == E_FAIL, "Got hr %#x.\n", hr);
ok(hr == E_FAIL, "Got hr %#lx.\n", hr);
reset_interfaces(&filter1);
reset_interfaces(&filter2);
@ -410,7 +410,7 @@ static void test_find_interface(void)
{
hr = ICaptureGraphBuilder2_FindInterface(capture_graph, NULL, &bogus_majortype,
&filter1.filter.IBaseFilter_iface, &testiid, (void **)&unk);
ok(hr == S_OK, "Test %u: got hr %#x.\n", i, hr);
ok(hr == S_OK, "Test %u: got hr %#lx.\n", i, hr);
ok(unk == tests_from_filter1[i].iface, "Test %u: got wrong interface %p.\n", i, unk);
IUnknown_Release(unk);
*tests_from_filter1[i].expose = FALSE;
@ -418,7 +418,7 @@ static void test_find_interface(void)
hr = ICaptureGraphBuilder2_FindInterface(capture_graph, NULL, &bogus_majortype,
&filter1.filter.IBaseFilter_iface, &testiid, (void **)&unk);
ok(hr == E_FAIL, "Got hr %#x.\n", hr);
ok(hr == E_FAIL, "Got hr %#lx.\n", hr);
/* Test with upstream/downstream flags. */
@ -430,7 +430,7 @@ static void test_find_interface(void)
{
hr = ICaptureGraphBuilder2_FindInterface(capture_graph, &LOOK_UPSTREAM_ONLY, &bogus_majortype,
&filter2.filter.IBaseFilter_iface, &testiid, (void **)&unk);
ok(hr == S_OK, "Test %u: got hr %#x.\n", i, hr);
ok(hr == S_OK, "Test %u: got hr %#lx.\n", i, hr);
ok(unk == look_upstream_tests[i].iface, "Test %u: got wrong interface %p.\n", i, unk);
IUnknown_Release(unk);
*look_upstream_tests[i].expose = FALSE;
@ -438,7 +438,7 @@ static void test_find_interface(void)
hr = ICaptureGraphBuilder2_FindInterface(capture_graph, &LOOK_UPSTREAM_ONLY, &bogus_majortype,
&filter2.filter.IBaseFilter_iface, &testiid, (void **)&unk);
ok(hr == E_FAIL, "Got hr %#x.\n", hr);
ok(hr == E_FAIL, "Got hr %#lx.\n", hr);
reset_interfaces(&filter1);
reset_interfaces(&filter2);
@ -448,7 +448,7 @@ static void test_find_interface(void)
{
hr = ICaptureGraphBuilder2_FindInterface(capture_graph, &LOOK_DOWNSTREAM_ONLY, &bogus_majortype,
&filter2.filter.IBaseFilter_iface, &testiid, (void **)&unk);
ok(hr == S_OK, "Test %u: got hr %#x.\n", i, hr);
ok(hr == S_OK, "Test %u: got hr %#lx.\n", i, hr);
ok(unk == look_downstream_tests[i].iface, "Test %u: got wrong interface %p.\n", i, unk);
IUnknown_Release(unk);
*look_downstream_tests[i].expose = FALSE;
@ -456,7 +456,7 @@ static void test_find_interface(void)
hr = ICaptureGraphBuilder2_FindInterface(capture_graph, &LOOK_DOWNSTREAM_ONLY, &bogus_majortype,
&filter2.filter.IBaseFilter_iface, &testiid, (void **)&unk);
ok(hr == E_FAIL, "Got hr %#x.\n", hr);
ok(hr == E_FAIL, "Got hr %#lx.\n", hr);
/* Test with a category flag. */
@ -466,20 +466,20 @@ static void test_find_interface(void)
hr = ICaptureGraphBuilder2_FindInterface(capture_graph, &PIN_CATEGORY_CAPTURE, NULL,
&filter2.filter.IBaseFilter_iface, &testiid, (void **)&unk);
ok(hr == S_OK, "Got hr %#x\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(unk == (IUnknown *)&filter2.filter.IBaseFilter_iface, "Got wrong interface %p.\n", unk);
IUnknown_Release(unk);
filter2.filter_has_iface = FALSE;
hr = ICaptureGraphBuilder2_FindInterface(capture_graph, &PIN_CATEGORY_CAPTURE, NULL,
&filter2.filter.IBaseFilter_iface, &testiid, (void **)&unk);
ok(hr == E_NOINTERFACE, "Got hr %#x.\n", hr);
ok(hr == E_NOINTERFACE, "Got hr %#lx.\n", hr);
filter2.source1.IKsPropertySet_iface.lpVtbl = &property_set_vtbl;
filter2.source1.category = PIN_CATEGORY_CAPTURE;
hr = ICaptureGraphBuilder2_FindInterface(capture_graph, &PIN_CATEGORY_CAPTURE, NULL,
&filter2.filter.IBaseFilter_iface, &testiid, (void **)&unk);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(unk == (IUnknown *)&filter2.source1.pin.pin.IPin_iface, "Got wrong interface %p.\n", unk);
IUnknown_Release(unk);
filter2.source1.has_iface = FALSE;
@ -492,7 +492,7 @@ static void test_find_interface(void)
{
hr = ICaptureGraphBuilder2_FindInterface(capture_graph, &PIN_CATEGORY_CAPTURE, NULL,
&filter2.filter.IBaseFilter_iface, &testiid, (void **)&unk);
ok(hr == S_OK, "Test %u: got hr %#x.\n", i, hr);
ok(hr == S_OK, "Test %u: got hr %#lx.\n", i, hr);
ok(unk == category_tests[i].iface, "Test %u: got wrong interface %p.\n", i, unk);
IUnknown_Release(unk);
*category_tests[i].expose = FALSE;
@ -500,7 +500,7 @@ static void test_find_interface(void)
hr = ICaptureGraphBuilder2_FindInterface(capture_graph, &PIN_CATEGORY_CAPTURE, NULL,
&filter2.filter.IBaseFilter_iface, &testiid, (void **)&unk);
ok(hr == E_FAIL, "Got hr %#x.\n", hr);
ok(hr == E_FAIL, "Got hr %#lx.\n", hr);
/* Test with a media type. */
@ -512,22 +512,22 @@ static void test_find_interface(void)
hr = ICaptureGraphBuilder2_FindInterface(capture_graph, &PIN_CATEGORY_CAPTURE, &bogus_majortype,
&filter2.filter.IBaseFilter_iface, &testiid, (void **)&unk);
ok(hr == S_OK, "Got hr %#x\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(unk == (IUnknown *)&filter2.filter.IBaseFilter_iface, "Got wrong interface %p.\n", unk);
IUnknown_Release(unk);
filter2.filter_has_iface = FALSE;
hr = ICaptureGraphBuilder2_FindInterface(capture_graph, &PIN_CATEGORY_CAPTURE, &bogus_majortype,
&filter2.filter.IBaseFilter_iface, &testiid, (void **)&unk);
ok(hr == E_NOINTERFACE, "Got hr %#x.\n", hr);
ok(hr == E_NOINTERFACE, "Got hr %#lx.\n", hr);
hr = ICaptureGraphBuilder2_FindInterface(capture_graph, &PIN_CATEGORY_CAPTURE, &mt2.majortype,
&filter2.filter.IBaseFilter_iface, &testiid, (void **)&unk);
ok(hr == E_NOINTERFACE, "Got hr %#x.\n", hr);
ok(hr == E_NOINTERFACE, "Got hr %#lx.\n", hr);
hr = ICaptureGraphBuilder2_FindInterface(capture_graph, &PIN_CATEGORY_CAPTURE, &testtype,
&filter2.filter.IBaseFilter_iface, &testiid, (void **)&unk);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(unk == (IUnknown *)&filter2.source1.pin.pin.IPin_iface, "Got wrong interface %p.\n", unk);
IUnknown_Release(unk);
filter2.source1.has_iface = FALSE;
@ -538,7 +538,7 @@ static void test_find_interface(void)
{
hr = ICaptureGraphBuilder2_FindInterface(capture_graph, &PIN_CATEGORY_CAPTURE, NULL,
&filter2.filter.IBaseFilter_iface, &testiid, (void **)&unk);
ok(hr == S_OK, "Test %u: got hr %#x.\n", i, hr);
ok(hr == S_OK, "Test %u: got hr %#lx.\n", i, hr);
ok(unk == category_tests[i].iface, "Test %u: got wrong interface %p.\n", i, unk);
IUnknown_Release(unk);
*category_tests[i].expose = FALSE;
@ -546,18 +546,18 @@ static void test_find_interface(void)
hr = ICaptureGraphBuilder2_FindInterface(capture_graph, &PIN_CATEGORY_CAPTURE, NULL,
&filter2.filter.IBaseFilter_iface, &testiid, (void **)&unk);
ok(hr == E_FAIL, "Got hr %#x.\n", hr);
ok(hr == E_FAIL, "Got hr %#lx.\n", hr);
ref = ICaptureGraphBuilder2_Release(capture_graph);
ok(!ref, "Got outstanding refcount %d.\n", ref);
ok(!ref, "Got outstanding refcount %ld.\n", ref);
ref = IGraphBuilder_Release(graph);
ok(!ref, "Got outstanding refcount %d.\n", ref);
ok(!ref, "Got outstanding refcount %ld.\n", ref);
ref = IBaseFilter_Release(&filter1.filter.IBaseFilter_iface);
ok(!ref, "Got outstanding refcount %d.\n", ref);
ok(!ref, "Got outstanding refcount %ld.\n", ref);
ref = IBaseFilter_Release(&filter2.filter.IBaseFilter_iface);
ok(!ref, "Got outstanding refcount %d.\n", ref);
ok(!ref, "Got outstanding refcount %ld.\n", ref);
ref = IBaseFilter_Release(&filter3.filter.IBaseFilter_iface);
ok(!ref, "Got outstanding refcount %d.\n", ref);
ok(!ref, "Got outstanding refcount %ld.\n", ref);
}
static void test_find_pin(void)
@ -578,7 +578,7 @@ static void test_find_pin(void)
CoCreateInstance(&CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, &IID_IGraphBuilder, (void **)&graph);
hr = ICaptureGraphBuilder2_SetFiltergraph(capture_graph, graph);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
testfilter_init(&filter1);
testfilter_init(&filter2);
@ -587,51 +587,51 @@ static void test_find_pin(void)
hr = IGraphBuilder_ConnectDirect(graph, &filter1.source1.pin.pin.IPin_iface,
&filter2.sink1.pin.pin.IPin_iface, &mt);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = ICaptureGraphBuilder2_FindPin(capture_graph, (IUnknown *)&filter1.filter.IBaseFilter_iface,
PINDIR_INPUT, NULL, NULL, FALSE, 0, &pin);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(pin == &filter1.sink1.pin.pin.IPin_iface, "Got wrong pin.\n");
IPin_Release(pin);
hr = ICaptureGraphBuilder2_FindPin(capture_graph, (IUnknown *)&filter1.filter.IBaseFilter_iface,
PINDIR_INPUT, NULL, NULL, FALSE, 1, &pin);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(pin == &filter1.sink2.pin.pin.IPin_iface, "Got wrong pin.\n");
IPin_Release(pin);
hr = ICaptureGraphBuilder2_FindPin(capture_graph, (IUnknown *)&filter1.filter.IBaseFilter_iface,
PINDIR_INPUT, NULL, NULL, FALSE, 2, &pin);
ok(hr == E_FAIL, "Got hr %#x.\n", hr);
ok(hr == E_FAIL, "Got hr %#lx.\n", hr);
hr = ICaptureGraphBuilder2_FindPin(capture_graph, (IUnknown *)&filter1.filter.IBaseFilter_iface,
PINDIR_OUTPUT, NULL, NULL, FALSE, 0, &pin);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(pin == &filter1.source1.pin.pin.IPin_iface, "Got wrong pin.\n");
IPin_Release(pin);
hr = ICaptureGraphBuilder2_FindPin(capture_graph, (IUnknown *)&filter1.filter.IBaseFilter_iface,
PINDIR_OUTPUT, NULL, NULL, FALSE, 1, &pin);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(pin == &filter1.source2.pin.pin.IPin_iface, "Got wrong pin.\n");
IPin_Release(pin);
hr = ICaptureGraphBuilder2_FindPin(capture_graph, (IUnknown *)&filter1.filter.IBaseFilter_iface,
PINDIR_OUTPUT, NULL, NULL, FALSE, 2, &pin);
ok(hr == E_FAIL, "Got hr %#x.\n", hr);
ok(hr == E_FAIL, "Got hr %#lx.\n", hr);
/* Test the unconnected flag. */
hr = ICaptureGraphBuilder2_FindPin(capture_graph, (IUnknown *)&filter1.filter.IBaseFilter_iface,
PINDIR_OUTPUT, NULL, NULL, TRUE, 0, &pin);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(pin == &filter1.source2.pin.pin.IPin_iface, "Got wrong pin.\n");
IPin_Release(pin);
hr = ICaptureGraphBuilder2_FindPin(capture_graph, (IUnknown *)&filter1.filter.IBaseFilter_iface,
PINDIR_OUTPUT, NULL, NULL, TRUE, 1, &pin);
ok(hr == E_FAIL, "Got hr %#x.\n", hr);
ok(hr == E_FAIL, "Got hr %#lx.\n", hr);
/* Test categories. */
@ -640,31 +640,31 @@ static void test_find_pin(void)
hr = ICaptureGraphBuilder2_FindPin(capture_graph, (IUnknown *)&filter1.filter.IBaseFilter_iface,
PINDIR_OUTPUT, &PIN_CATEGORY_CAPTURE, NULL, FALSE, 0, &pin);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(pin == &filter1.source1.pin.pin.IPin_iface, "Got wrong pin.\n");
IPin_Release(pin);
hr = ICaptureGraphBuilder2_FindPin(capture_graph, (IUnknown *)&filter1.filter.IBaseFilter_iface,
PINDIR_OUTPUT, &PIN_CATEGORY_CAPTURE, NULL, FALSE, 1, &pin);
ok(hr == E_FAIL, "Got hr %#x.\n", hr);
ok(hr == E_FAIL, "Got hr %#lx.\n", hr);
ref = ICaptureGraphBuilder2_Release(capture_graph);
ok(!ref, "Got outstanding refcount %d.\n", ref);
ok(!ref, "Got outstanding refcount %ld.\n", ref);
ref = IGraphBuilder_Release(graph);
ok(!ref, "Got outstanding refcount %d.\n", ref);
ok(!ref, "Got outstanding refcount %ld.\n", ref);
ref = IBaseFilter_Release(&filter1.filter.IBaseFilter_iface);
ok(!ref, "Got outstanding refcount %d.\n", ref);
ok(!ref, "Got outstanding refcount %ld.\n", ref);
ref = IBaseFilter_Release(&filter2.filter.IBaseFilter_iface);
ok(!ref, "Got outstanding refcount %d.\n", ref);
ok(!ref, "Got outstanding refcount %ld.\n", ref);
}
static void disconnect_pins(IGraphBuilder *graph, struct testsource *pin)
{
HRESULT hr;
hr = IGraphBuilder_Disconnect(graph, pin->pin.pin.peer);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IGraphBuilder_Disconnect(graph, &pin->pin.pin.IPin_iface);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
}
static void check_smart_tee_pin_(int line, IPin *pin, const WCHAR *name)
@ -694,7 +694,7 @@ static void test_render_stream(void)
CoCreateInstance(&CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, &IID_IGraphBuilder, (void **)&graph);
hr = ICaptureGraphBuilder2_SetFiltergraph(capture_graph, graph);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
testfilter_init(&source);
testfilter_init(&transform);
@ -711,7 +711,7 @@ static void test_render_stream(void)
hr = ICaptureGraphBuilder2_RenderStream(capture_graph, NULL, NULL,
(IUnknown *)&source.filter.IBaseFilter_iface, NULL, &sink.filter.IBaseFilter_iface);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(source.source1.pin.pin.peer == &transform.sink1.pin.pin.IPin_iface, "Got wrong connection.\n");
ok(transform.source1.pin.pin.peer == &sink.sink1.pin.pin.IPin_iface, "Got wrong connection.\n");
ok(!source.source2.pin.pin.peer, "Pin should not be connected.\n");
@ -719,7 +719,7 @@ static void test_render_stream(void)
hr = ICaptureGraphBuilder2_RenderStream(capture_graph, NULL, NULL,
(IUnknown *)&source.filter.IBaseFilter_iface, NULL, &sink.filter.IBaseFilter_iface);
todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr);
todo_wine ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(source.source1.pin.pin.peer == &transform.sink1.pin.pin.IPin_iface, "Got wrong connection.\n");
ok(transform.source1.pin.pin.peer == &sink.sink1.pin.pin.IPin_iface, "Got wrong connection.\n");
todo_wine ok(source.source2.pin.pin.peer == &transform.sink2.pin.pin.IPin_iface, "Got wrong connection.\n");
@ -727,14 +727,14 @@ static void test_render_stream(void)
hr = ICaptureGraphBuilder2_RenderStream(capture_graph, NULL, NULL,
(IUnknown *)&source.filter.IBaseFilter_iface, NULL, &sink.filter.IBaseFilter_iface);
todo_wine ok(hr == E_FAIL, "Got hr %#x.\n", hr);
todo_wine ok(hr == E_FAIL, "Got hr %#lx.\n", hr);
todo_wine disconnect_pins(graph, &source.source2);
todo_wine disconnect_pins(graph, &transform.source2);
hr = ICaptureGraphBuilder2_RenderStream(capture_graph, NULL, NULL,
(IUnknown *)&transform.source2.pin.pin.IPin_iface, NULL, &sink.filter.IBaseFilter_iface);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(source.source1.pin.pin.peer == &transform.sink1.pin.pin.IPin_iface, "Got wrong connection.\n");
ok(transform.source1.pin.pin.peer == &sink.sink1.pin.pin.IPin_iface, "Got wrong connection.\n");
ok(transform.source2.pin.pin.peer == &sink.sink2.pin.pin.IPin_iface, "Got wrong connection.\n");
@ -742,20 +742,20 @@ static void test_render_stream(void)
hr = ICaptureGraphBuilder2_RenderStream(capture_graph, NULL, NULL,
(IUnknown *)&source.filter.IBaseFilter_iface, NULL, &sink.filter.IBaseFilter_iface);
ok(hr == E_FAIL, "Got hr %#x.\n", hr);
ok(hr == E_FAIL, "Got hr %#lx.\n", hr);
disconnect_pins(graph, &transform.source2);
hr = ICaptureGraphBuilder2_RenderStream(capture_graph, NULL, NULL,
(IUnknown *)&source.filter.IBaseFilter_iface, NULL, &transform.filter.IBaseFilter_iface);
todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr);
todo_wine ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(source.source1.pin.pin.peer == &transform.sink1.pin.pin.IPin_iface, "Got wrong connection.\n");
ok(transform.source1.pin.pin.peer == &sink.sink1.pin.pin.IPin_iface, "Got wrong connection.\n");
todo_wine ok(source.source2.pin.pin.peer == &transform.sink2.pin.pin.IPin_iface, "Got wrong connection.\n");
hr = ICaptureGraphBuilder2_RenderStream(capture_graph, NULL, NULL,
(IUnknown *)&source.filter.IBaseFilter_iface, NULL, &sink.filter.IBaseFilter_iface);
todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr);
todo_wine ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(source.source1.pin.pin.peer == &transform.sink1.pin.pin.IPin_iface, "Got wrong connection.\n");
ok(transform.source1.pin.pin.peer == &sink.sink1.pin.pin.IPin_iface, "Got wrong connection.\n");
todo_wine ok(source.source2.pin.pin.peer == &transform.sink2.pin.pin.IPin_iface, "Got wrong connection.\n");
@ -766,7 +766,7 @@ static void test_render_stream(void)
/* Test from a source pin. */
hr = ICaptureGraphBuilder2_RenderStream(capture_graph, NULL, NULL,
(IUnknown *)&source.source1.pin.pin.IPin_iface, NULL, &sink.filter.IBaseFilter_iface);
todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr);
todo_wine ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(source.source1.pin.pin.peer == &transform.sink1.pin.pin.IPin_iface, "Got wrong connection.\n");
ok(transform.source1.pin.pin.peer == &sink.sink1.pin.pin.IPin_iface, "Got wrong connection.\n");
todo_wine ok(transform.source2.pin.pin.peer == &sink.sink2.pin.pin.IPin_iface, "Got wrong connection.\n");
@ -777,7 +777,7 @@ static void test_render_stream(void)
source.source_type = bad_type;
hr = ICaptureGraphBuilder2_RenderStream(capture_graph, NULL, NULL,
(IUnknown *)&source.filter.IBaseFilter_iface, NULL, &sink.filter.IBaseFilter_iface);
ok(hr == VFW_E_CANNOT_CONNECT, "Got hr %#x.\n", hr);
ok(hr == VFW_E_CANNOT_CONNECT, "Got hr %#lx.\n", hr);
source.source_type = source_type;
disconnect_pins(graph, &transform.source1);
@ -791,7 +791,7 @@ static void test_render_stream(void)
hr = ICaptureGraphBuilder2_RenderStream(capture_graph, NULL, NULL,
(IUnknown *)&source.filter.IBaseFilter_iface,
&identity.filter.IBaseFilter_iface, &sink.filter.IBaseFilter_iface);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(source.source1.pin.pin.peer == &identity.sink1.pin.pin.IPin_iface, "Got wrong connection.\n");
ok(identity.source1.pin.pin.peer == &transform.sink1.pin.pin.IPin_iface, "Got wrong connection.\n");
ok(transform.source1.pin.pin.peer == &sink.sink1.pin.pin.IPin_iface, "Got wrong connection.\n");
@ -803,7 +803,7 @@ static void test_render_stream(void)
hr = ICaptureGraphBuilder2_RenderStream(capture_graph, NULL, NULL,
(IUnknown *)&source.filter.IBaseFilter_iface,
&identity.filter.IBaseFilter_iface, &sink.filter.IBaseFilter_iface);
todo_wine ok(hr == E_FAIL, "Got hr %#x.\n", hr);
todo_wine ok(hr == E_FAIL, "Got hr %#lx.\n", hr);
ok(!source.source1.pin.pin.peer, "Pin should not be connected.\n");
ok(!identity.source1.pin.pin.peer, "Pin should not be connected.\n");
ok(!transform.source1.pin.pin.peer, "Pin should not be connected.\n");
@ -813,7 +813,7 @@ static void test_render_stream(void)
hr = ICaptureGraphBuilder2_RenderStream(capture_graph, NULL, NULL,
(IUnknown *)&source.filter.IBaseFilter_iface,
&identity.filter.IBaseFilter_iface, &sink.filter.IBaseFilter_iface);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(source.source1.pin.pin.peer == &transform.sink1.pin.pin.IPin_iface, "Got wrong connection.\n");
ok(transform.source1.pin.pin.peer == &identity.sink1.pin.pin.IPin_iface, "Got wrong connection.\n");
ok(identity.source1.pin.pin.peer == &sink.sink1.pin.pin.IPin_iface, "Got wrong connection.\n");
@ -825,7 +825,7 @@ static void test_render_stream(void)
hr = ICaptureGraphBuilder2_RenderStream(capture_graph, NULL, NULL,
(IUnknown *)&source.filter.IBaseFilter_iface,
&identity.filter.IBaseFilter_iface, &sink.filter.IBaseFilter_iface);
ok(hr == VFW_E_CANNOT_CONNECT, "Got hr %#x.\n", hr);
ok(hr == VFW_E_CANNOT_CONNECT, "Got hr %#lx.\n", hr);
ok(source.source1.pin.pin.peer == &transform.sink1.pin.pin.IPin_iface, "Got wrong connection.\n");
ok(transform.source1.pin.pin.peer == &identity.sink1.pin.pin.IPin_iface, "Got wrong connection.\n");
ok(!identity.source1.pin.pin.peer, "Pin should not be connected.\n");
@ -836,7 +836,7 @@ static void test_render_stream(void)
hr = ICaptureGraphBuilder2_RenderStream(capture_graph, NULL, &bad_type,
(IUnknown *)&source.filter.IBaseFilter_iface, NULL, &sink.filter.IBaseFilter_iface);
todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr);
todo_wine ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(!source.source1.pin.pin.peer, "Pin should not be connected.\n");
ok(!source.source2.pin.pin.peer, "Pin should not be connected.\n");
ok(!sink.sink1.pin.pin.peer, "Pin should not be connected.\n");
@ -844,7 +844,7 @@ static void test_render_stream(void)
hr = ICaptureGraphBuilder2_RenderStream(capture_graph, NULL, &sink1_type,
(IUnknown *)&source.filter.IBaseFilter_iface, NULL, &sink.filter.IBaseFilter_iface);
todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr);
todo_wine ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(!source.source1.pin.pin.peer, "Pin should not be connected.\n");
ok(!source.source2.pin.pin.peer, "Pin should not be connected.\n");
ok(!sink.sink1.pin.pin.peer, "Pin should not be connected.\n");
@ -855,7 +855,7 @@ static void test_render_stream(void)
hr = ICaptureGraphBuilder2_RenderStream(capture_graph, NULL, &sink1_type,
(IUnknown *)&source.filter.IBaseFilter_iface,
&identity.filter.IBaseFilter_iface, &sink.filter.IBaseFilter_iface);
todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr);
todo_wine ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(!source.source1.pin.pin.peer, "Pin should not be connected.\n");
ok(!source.source2.pin.pin.peer, "Pin should not be connected.\n");
ok(!sink.sink1.pin.pin.peer, "Pin should not be connected.\n");
@ -863,7 +863,7 @@ static void test_render_stream(void)
hr = ICaptureGraphBuilder2_RenderStream(capture_graph, NULL, &source_type,
(IUnknown *)&source.filter.IBaseFilter_iface, NULL, &sink.filter.IBaseFilter_iface);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(source.source1.pin.pin.peer == &transform.sink1.pin.pin.IPin_iface, "Got wrong connection.\n");
ok(transform.source1.pin.pin.peer == &sink.sink1.pin.pin.IPin_iface, "Got wrong connection.\n");
ok(!source.source2.pin.pin.peer, "Pin should not be connected.\n");
@ -871,7 +871,7 @@ static void test_render_stream(void)
hr = ICaptureGraphBuilder2_RenderStream(capture_graph, NULL, &sink1_type,
(IUnknown *)&source.filter.IBaseFilter_iface, NULL, &sink.filter.IBaseFilter_iface);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(source.source1.pin.pin.peer == &transform.sink1.pin.pin.IPin_iface, "Got wrong connection.\n");
ok(transform.source1.pin.pin.peer == &sink.sink1.pin.pin.IPin_iface, "Got wrong connection.\n");
ok(transform.source2.pin.pin.peer == &sink.sink2.pin.pin.IPin_iface, "Got wrong connection.\n");
@ -885,7 +885,7 @@ static void test_render_stream(void)
hr = ICaptureGraphBuilder2_RenderStream(capture_graph, &PIN_CATEGORY_CC, NULL,
(IUnknown *)&source.filter.IBaseFilter_iface, NULL, &sink.filter.IBaseFilter_iface);
ok(hr == E_INVALIDARG, "Got hr %#x.\n", hr);
ok(hr == E_INVALIDARG, "Got hr %#lx.\n", hr);
ok(!source.source1.pin.pin.peer, "Pin should not be connected.\n");
ok(!source.source2.pin.pin.peer, "Pin should not be connected.\n");
ok(!sink.sink1.pin.pin.peer, "Pin should not be connected.\n");
@ -894,7 +894,7 @@ static void test_render_stream(void)
source.source1.IKsPropertySet_iface.lpVtbl = &property_set_vtbl;
hr = ICaptureGraphBuilder2_RenderStream(capture_graph, &PIN_CATEGORY_CC, NULL,
(IUnknown *)&source.filter.IBaseFilter_iface, NULL, &sink.filter.IBaseFilter_iface);
ok(hr == E_INVALIDARG, "Got hr %#x.\n", hr);
ok(hr == E_INVALIDARG, "Got hr %#lx.\n", hr);
ok(!source.source1.pin.pin.peer, "Pin should not be connected.\n");
ok(!source.source2.pin.pin.peer, "Pin should not be connected.\n");
ok(!sink.sink1.pin.pin.peer, "Pin should not be connected.\n");
@ -903,7 +903,7 @@ static void test_render_stream(void)
source.source1.category = PIN_CATEGORY_CC;
hr = ICaptureGraphBuilder2_RenderStream(capture_graph, &PIN_CATEGORY_CC, NULL,
(IUnknown *)&source.filter.IBaseFilter_iface, NULL, &sink.filter.IBaseFilter_iface);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(source.source1.pin.pin.peer == &transform.sink1.pin.pin.IPin_iface, "Got wrong connection.\n");
ok(transform.source1.pin.pin.peer == &sink.sink1.pin.pin.IPin_iface, "Got wrong connection.\n");
ok(!source.source2.pin.pin.peer, "Pin should not be connected.\n");
@ -913,7 +913,7 @@ static void test_render_stream(void)
hr = ICaptureGraphBuilder2_RenderStream(capture_graph, &PIN_CATEGORY_CC, NULL,
(IUnknown *)&source.filter.IBaseFilter_iface, NULL, &sink.filter.IBaseFilter_iface);
ok(hr == E_INVALIDARG, "Got hr %#x.\n", hr);
ok(hr == E_INVALIDARG, "Got hr %#lx.\n", hr);
ok(source.source1.pin.pin.peer == &transform.sink1.pin.pin.IPin_iface, "Got wrong connection.\n");
ok(!transform.source1.pin.pin.peer, "Pin should not be connected.\n");
@ -921,14 +921,14 @@ static void test_render_stream(void)
transform.source1.category = PIN_CATEGORY_CC;
hr = ICaptureGraphBuilder2_RenderStream(capture_graph, &PIN_CATEGORY_CC, NULL,
(IUnknown *)&source.filter.IBaseFilter_iface, NULL, &sink.filter.IBaseFilter_iface);
todo_wine ok(hr == E_INVALIDARG, "Got hr %#x.\n", hr);
todo_wine ok(hr == E_INVALIDARG, "Got hr %#lx.\n", hr);
ok(source.source1.pin.pin.peer == &transform.sink1.pin.pin.IPin_iface, "Got wrong connection.\n");
todo_wine ok(!transform.source1.pin.pin.peer, "Pin should not be connected.\n");
todo_wine ok(!sink.sink1.pin.pin.peer, "Pin should not be connected.\n");
hr = ICaptureGraphBuilder2_RenderStream(capture_graph, &PIN_CATEGORY_CC, NULL,
(IUnknown *)&source.source1.pin.pin.IPin_iface, NULL, &sink.filter.IBaseFilter_iface);
ok(hr == E_INVALIDARG, "Got hr %#x.\n", hr);
ok(hr == E_INVALIDARG, "Got hr %#lx.\n", hr);
disconnect_pins(graph, &source.source1);
@ -937,53 +937,53 @@ static void test_render_stream(void)
source.source1.IKsPropertySet_iface.lpVtbl = transform.source1.IKsPropertySet_iface.lpVtbl = NULL;
hr = ICaptureGraphBuilder2_RenderStream(capture_graph, &PIN_CATEGORY_CAPTURE, NULL,
(IUnknown *)&source.filter.IBaseFilter_iface, NULL, &sink.filter.IBaseFilter_iface);
ok(hr == E_INVALIDARG, "Got hr %#x.\n", hr);
ok(hr == E_INVALIDARG, "Got hr %#lx.\n", hr);
hr = ICaptureGraphBuilder2_RenderStream(capture_graph, &PIN_CATEGORY_PREVIEW, NULL,
(IUnknown *)&source.filter.IBaseFilter_iface, NULL, &sink.filter.IBaseFilter_iface);
ok(hr == E_INVALIDARG, "Got hr %#x.\n", hr);
ok(hr == E_INVALIDARG, "Got hr %#lx.\n", hr);
source.source1.IKsPropertySet_iface.lpVtbl = &property_set_vtbl;
hr = ICaptureGraphBuilder2_RenderStream(capture_graph, &PIN_CATEGORY_CAPTURE, NULL,
(IUnknown *)&source.filter.IBaseFilter_iface, NULL, &sink.filter.IBaseFilter_iface);
ok(hr == E_INVALIDARG, "Got hr %#x.\n", hr);
ok(hr == E_INVALIDARG, "Got hr %#lx.\n", hr);
hr = ICaptureGraphBuilder2_RenderStream(capture_graph, &PIN_CATEGORY_PREVIEW, NULL,
(IUnknown *)&source.filter.IBaseFilter_iface, NULL, &sink.filter.IBaseFilter_iface);
ok(hr == E_INVALIDARG, "Got hr %#x.\n", hr);
ok(hr == E_INVALIDARG, "Got hr %#lx.\n", hr);
source.source1.category = PIN_CATEGORY_PREVIEW;
hr = ICaptureGraphBuilder2_RenderStream(capture_graph, &PIN_CATEGORY_CAPTURE, NULL,
(IUnknown *)&source.filter.IBaseFilter_iface, NULL, &sink.filter.IBaseFilter_iface);
ok(hr == E_INVALIDARG, "Got hr %#x.\n", hr);
ok(hr == E_INVALIDARG, "Got hr %#lx.\n", hr);
ok(!source.source1.pin.pin.peer, "Pin should not be connected.\n");
todo_wine ok(!sink.sink1.pin.pin.peer, "Pin should not be connected.\n");
hr = ICaptureGraphBuilder2_RenderStream(capture_graph, &PIN_CATEGORY_PREVIEW, NULL,
(IUnknown *)&source.filter.IBaseFilter_iface, NULL, &sink.filter.IBaseFilter_iface);
todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr);
todo_wine ok(hr == S_OK, "Got hr %#lx.\n", hr);
todo_wine ok(source.source1.pin.pin.peer == &transform.sink1.pin.pin.IPin_iface, "Got wrong connection.\n");
ok(transform.source1.pin.pin.peer == &sink.sink1.pin.pin.IPin_iface, "Got wrong connection.\n");
disconnect_pins(graph, &transform.source1);
hr = ICaptureGraphBuilder2_RenderStream(capture_graph, &PIN_CATEGORY_PREVIEW, NULL,
(IUnknown *)&source.filter.IBaseFilter_iface, NULL, &sink.filter.IBaseFilter_iface);
todo_wine ok(hr == E_FAIL, "Got hr %#x.\n", hr);
todo_wine ok(hr == E_FAIL, "Got hr %#lx.\n", hr);
todo_wine disconnect_pins(graph, &source.source1);
source.source1.category = PIN_CATEGORY_CAPTURE;
hr = ICaptureGraphBuilder2_RenderStream(capture_graph, &PIN_CATEGORY_CAPTURE, NULL,
(IUnknown *)&source.filter.IBaseFilter_iface, NULL, &sink.filter.IBaseFilter_iface);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
check_smart_tee_pin(source.source1.pin.pin.peer, L"Input");
check_smart_tee_pin(transform.sink1.pin.pin.peer, L"Capture");
ok(transform.source1.pin.pin.peer == &sink.sink1.pin.pin.IPin_iface, "Got wrong connection.\n");
hr = ICaptureGraphBuilder2_RenderStream(capture_graph, &PIN_CATEGORY_CAPTURE, NULL,
(IUnknown *)&source.filter.IBaseFilter_iface, NULL, &sink.filter.IBaseFilter_iface);
ok(hr == E_INVALIDARG, "Got hr %#x.\n", hr);
ok(hr == E_INVALIDARG, "Got hr %#lx.\n", hr);
hr = ICaptureGraphBuilder2_RenderStream(capture_graph, &PIN_CATEGORY_PREVIEW, NULL,
(IUnknown *)&source.filter.IBaseFilter_iface, NULL, &sink.filter.IBaseFilter_iface);
ok(hr == VFW_S_NOPREVIEWPIN, "Got hr %#x.\n", hr);
ok(hr == VFW_S_NOPREVIEWPIN, "Got hr %#lx.\n", hr);
check_smart_tee_pin(source.source1.pin.pin.peer, L"Input");
check_smart_tee_pin(transform.sink1.pin.pin.peer, L"Capture");
check_smart_tee_pin(transform.sink2.pin.pin.peer, L"Preview");
@ -996,18 +996,18 @@ static void test_render_stream(void)
hr = ICaptureGraphBuilder2_RenderStream(capture_graph, &PIN_CATEGORY_CC, NULL,
(IUnknown *)&source.filter.IBaseFilter_iface, NULL, &sink.filter.IBaseFilter_iface);
ok(hr == E_INVALIDARG, "Got hr %#x.\n", hr);
ok(hr == E_INVALIDARG, "Got hr %#lx.\n", hr);
hr = ICaptureGraphBuilder2_RenderStream(capture_graph, &PIN_CATEGORY_PREVIEW, NULL,
(IUnknown *)&source.filter.IBaseFilter_iface, NULL, &sink.filter.IBaseFilter_iface);
ok(hr == VFW_S_NOPREVIEWPIN, "Got hr %#x.\n", hr);
ok(hr == VFW_S_NOPREVIEWPIN, "Got hr %#lx.\n", hr);
check_smart_tee_pin(source.source1.pin.pin.peer, L"Input");
check_smart_tee_pin(transform.sink1.pin.pin.peer, L"Preview");
ok(transform.source1.pin.pin.peer == &sink.sink1.pin.pin.IPin_iface, "Got wrong connection.\n");
hr = ICaptureGraphBuilder2_RenderStream(capture_graph, &PIN_CATEGORY_PREVIEW, NULL,
(IUnknown *)&source.filter.IBaseFilter_iface, NULL, &sink.filter.IBaseFilter_iface);
ok(hr == E_INVALIDARG, "Got hr %#x.\n", hr);
ok(hr == E_INVALIDARG, "Got hr %#lx.\n", hr);
disconnect_pins(graph, &source.source1);
IGraphBuilder_RemoveFilter(graph, &transform.filter.IBaseFilter_iface);
@ -1018,7 +1018,7 @@ static void test_render_stream(void)
source.source1.category = PIN_CATEGORY_CAPTURE;
hr = ICaptureGraphBuilder2_RenderStream(capture_graph, &PIN_CATEGORY_CAPTURE, NULL,
(IUnknown *)&source.source1.pin.pin.IPin_iface, NULL, &sink.filter.IBaseFilter_iface);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
check_smart_tee_pin(source.source1.pin.pin.peer, L"Input");
check_smart_tee_pin(transform.sink1.pin.pin.peer, L"Capture");
ok(transform.source1.pin.pin.peer == &sink.sink1.pin.pin.IPin_iface, "Got wrong connection.\n");
@ -1033,7 +1033,7 @@ static void test_render_stream(void)
hr = ICaptureGraphBuilder2_RenderStream(capture_graph, &PIN_CATEGORY_CAPTURE, NULL,
(IUnknown *)&source.filter.IBaseFilter_iface, NULL, &sink.filter.IBaseFilter_iface);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(source.source1.pin.pin.peer == &transform.sink1.pin.pin.IPin_iface, "Got wrong connection.\n");
ok(transform.source1.pin.pin.peer == &sink.sink1.pin.pin.IPin_iface, "Got wrong connection.\n");
disconnect_pins(graph, &source.source1);
@ -1041,7 +1041,7 @@ static void test_render_stream(void)
hr = ICaptureGraphBuilder2_RenderStream(capture_graph, &PIN_CATEGORY_PREVIEW, NULL,
(IUnknown *)&source.filter.IBaseFilter_iface, NULL, &sink.filter.IBaseFilter_iface);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(source.source2.pin.pin.peer == &transform.sink1.pin.pin.IPin_iface, "Got wrong connection.\n");
ok(transform.source1.pin.pin.peer == &sink.sink1.pin.pin.IPin_iface, "Got wrong connection.\n");
disconnect_pins(graph, &source.source2);
@ -1049,7 +1049,7 @@ static void test_render_stream(void)
hr = ICaptureGraphBuilder2_RenderStream(capture_graph, &PIN_CATEGORY_CAPTURE, NULL,
(IUnknown *)&source.source1.pin.pin.IPin_iface, NULL, &sink.filter.IBaseFilter_iface);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
check_smart_tee_pin(source.source1.pin.pin.peer, L"Input");
check_smart_tee_pin(transform.sink1.pin.pin.peer, L"Capture");
ok(transform.source1.pin.pin.peer == &sink.sink1.pin.pin.IPin_iface, "Got wrong connection.\n");
@ -1057,15 +1057,15 @@ static void test_render_stream(void)
disconnect_pins(graph, &transform.source1);
ref = ICaptureGraphBuilder2_Release(capture_graph);
ok(!ref, "Got outstanding refcount %d.\n", ref);
ok(!ref, "Got outstanding refcount %ld.\n", ref);
ref = IGraphBuilder_Release(graph);
ok(!ref, "Got outstanding refcount %d.\n", ref);
ok(!ref, "Got outstanding refcount %ld.\n", ref);
ref = IBaseFilter_Release(&source.filter.IBaseFilter_iface);
ok(!ref, "Got outstanding refcount %d.\n", ref);
ok(!ref, "Got outstanding refcount %ld.\n", ref);
ref = IBaseFilter_Release(&transform.filter.IBaseFilter_iface);
ok(!ref, "Got outstanding refcount %d.\n", ref);
ok(!ref, "Got outstanding refcount %ld.\n", ref);
ref = IBaseFilter_Release(&sink.filter.IBaseFilter_iface);
ok(!ref, "Got outstanding refcount %d.\n", ref);
ok(!ref, "Got outstanding refcount %ld.\n", ref);
}
START_TEST(capturegraph)

View file

@ -28,7 +28,7 @@ static IBaseFilter *create_file_writer(void)
IBaseFilter *filter = NULL;
HRESULT hr = CoCreateInstance(&CLSID_FileWriter, NULL,
CLSCTX_INPROC_SERVER, &IID_IBaseFilter, (void **)&filter);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
return filter;
}
@ -45,7 +45,7 @@ static WCHAR *set_filename(IBaseFilter *filter)
IBaseFilter_QueryInterface(filter, &IID_IFileSinkFilter, (void **)&filesink);
hr = IFileSinkFilter_SetFileName(filesink, filename, NULL);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
IFileSinkFilter_Release(filesink);
return filename;
}
@ -67,7 +67,7 @@ static void check_interface_(unsigned int line, void *iface_ptr, REFIID iid, BOO
expected_hr = supported ? S_OK : E_NOINTERFACE;
hr = IUnknown_QueryInterface(iface, iid, (void **)&unk);
ok_(__FILE__, line)(hr == expected_hr, "Got hr %#x, expected %#x.\n", hr, expected_hr);
ok_(__FILE__, line)(hr == expected_hr, "Got hr %#lx, expected %#lx.\n", hr, expected_hr);
if (SUCCEEDED(hr))
IUnknown_Release(unk);
}
@ -112,7 +112,7 @@ static void test_interfaces(void)
IPin_Release(pin);
ref = IBaseFilter_Release(filter);
ok(!ref, "Got unexpected refcount %d.\n", ref);
ok(!ref, "Got unexpected refcount %ld.\n", ref);
}
static const GUID test_iid = {0x33333333};
@ -160,53 +160,53 @@ static void test_aggregation(void)
filter = (IBaseFilter *)0xdeadbeef;
hr = CoCreateInstance(&CLSID_FileWriter, &test_outer, CLSCTX_INPROC_SERVER,
&IID_IBaseFilter, (void **)&filter);
ok(hr == E_NOINTERFACE, "Got hr %#x.\n", hr);
ok(hr == E_NOINTERFACE, "Got hr %#lx.\n", hr);
ok(!filter, "Got interface %p.\n", filter);
hr = CoCreateInstance(&CLSID_FileWriter, &test_outer, CLSCTX_INPROC_SERVER,
&IID_IUnknown, (void **)&unk);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(outer_ref == 1, "Got unexpected refcount %d.\n", outer_ref);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(outer_ref == 1, "Got unexpected refcount %ld.\n", outer_ref);
ok(unk != &test_outer, "Returned IUnknown should not be outer IUnknown.\n");
ref = get_refcount(unk);
ok(ref == 1, "Got unexpected refcount %d.\n", ref);
ok(ref == 1, "Got unexpected refcount %ld.\n", ref);
ref = IUnknown_AddRef(unk);
ok(ref == 2, "Got unexpected refcount %d.\n", ref);
ok(outer_ref == 1, "Got unexpected refcount %d.\n", outer_ref);
ok(ref == 2, "Got unexpected refcount %ld.\n", ref);
ok(outer_ref == 1, "Got unexpected refcount %ld.\n", outer_ref);
ref = IUnknown_Release(unk);
ok(ref == 1, "Got unexpected refcount %d.\n", ref);
ok(outer_ref == 1, "Got unexpected refcount %d.\n", outer_ref);
ok(ref == 1, "Got unexpected refcount %ld.\n", ref);
ok(outer_ref == 1, "Got unexpected refcount %ld.\n", outer_ref);
hr = IUnknown_QueryInterface(unk, &IID_IUnknown, (void **)&unk2);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(unk2 == unk, "Got unexpected IUnknown %p.\n", unk2);
IUnknown_Release(unk2);
hr = IUnknown_QueryInterface(unk, &IID_IBaseFilter, (void **)&filter);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IBaseFilter_QueryInterface(filter, &IID_IUnknown, (void **)&unk2);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(unk2 == (IUnknown *)0xdeadbeef, "Got unexpected IUnknown %p.\n", unk2);
hr = IBaseFilter_QueryInterface(filter, &IID_IBaseFilter, (void **)&filter2);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(filter2 == (IBaseFilter *)0xdeadbeef, "Got unexpected IBaseFilter %p.\n", filter2);
hr = IUnknown_QueryInterface(unk, &test_iid, (void **)&unk2);
ok(hr == E_NOINTERFACE, "Got hr %#x.\n", hr);
ok(hr == E_NOINTERFACE, "Got hr %#lx.\n", hr);
ok(!unk2, "Got unexpected IUnknown %p.\n", unk2);
hr = IBaseFilter_QueryInterface(filter, &test_iid, (void **)&unk2);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(unk2 == (IUnknown *)0xdeadbeef, "Got unexpected IUnknown %p.\n", unk2);
IBaseFilter_Release(filter);
ref = IUnknown_Release(unk);
ok(!ref, "Got unexpected refcount %d.\n", ref);
ok(outer_ref == 1, "Got unexpected refcount %d.\n", outer_ref);
ok(!ref, "Got unexpected refcount %ld.\n", ref);
ok(outer_ref == 1, "Got unexpected refcount %ld.\n", outer_ref);
}
static void test_enum_pins(void)
@ -218,85 +218,85 @@ static void test_enum_pins(void)
HRESULT hr;
ref = get_refcount(filter);
ok(ref == 1, "Got unexpected refcount %d.\n", ref);
ok(ref == 1, "Got unexpected refcount %ld.\n", ref);
hr = IBaseFilter_EnumPins(filter, NULL);
ok(hr == E_POINTER, "Got hr %#x.\n", hr);
ok(hr == E_POINTER, "Got hr %#lx.\n", hr);
hr = IBaseFilter_EnumPins(filter, &enum1);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ref = get_refcount(filter);
ok(ref == 2, "Got unexpected refcount %d.\n", ref);
ok(ref == 2, "Got unexpected refcount %ld.\n", ref);
ref = get_refcount(enum1);
ok(ref == 1, "Got unexpected refcount %d.\n", ref);
ok(ref == 1, "Got unexpected refcount %ld.\n", ref);
hr = IEnumPins_Next(enum1, 1, NULL, NULL);
ok(hr == E_POINTER, "Got hr %#x.\n", hr);
ok(hr == E_POINTER, "Got hr %#lx.\n", hr);
hr = IEnumPins_Next(enum1, 1, pins, NULL);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ref = get_refcount(filter);
ok(ref == 3, "Got unexpected refcount %d.\n", ref);
ok(ref == 3, "Got unexpected refcount %ld.\n", ref);
ref = get_refcount(pins[0]);
ok(ref == 3, "Got unexpected refcount %d.\n", ref);
ok(ref == 3, "Got unexpected refcount %ld.\n", ref);
ref = get_refcount(enum1);
ok(ref == 1, "Got unexpected refcount %d.\n", ref);
ok(ref == 1, "Got unexpected refcount %ld.\n", ref);
IPin_Release(pins[0]);
ref = get_refcount(filter);
ok(ref == 2, "Got unexpected refcount %d.\n", ref);
ok(ref == 2, "Got unexpected refcount %ld.\n", ref);
hr = IEnumPins_Next(enum1, 1, pins, NULL);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
hr = IEnumPins_Reset(enum1);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumPins_Next(enum1, 1, pins, &count);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(count == 1, "Got count %u.\n", count);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(count == 1, "Got count %lu.\n", count);
IPin_Release(pins[0]);
hr = IEnumPins_Next(enum1, 1, pins, &count);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(!count, "Got count %u.\n", count);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
ok(!count, "Got count %lu.\n", count);
hr = IEnumPins_Reset(enum1);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumPins_Next(enum1, 2, pins, NULL);
ok(hr == E_INVALIDARG, "Got hr %#x.\n", hr);
ok(hr == E_INVALIDARG, "Got hr %#lx.\n", hr);
hr = IEnumPins_Next(enum1, 2, pins, &count);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(count == 1, "Got count %u.\n", count);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
ok(count == 1, "Got count %lu.\n", count);
IPin_Release(pins[0]);
hr = IEnumPins_Reset(enum1);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumPins_Clone(enum1, &enum2);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumPins_Skip(enum1, 2);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
hr = IEnumPins_Skip(enum1, 1);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumPins_Skip(enum1, 1);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
hr = IEnumPins_Next(enum1, 1, pins, NULL);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
hr = IEnumPins_Next(enum2, 1, pins, NULL);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
IPin_Release(pins[0]);
IEnumPins_Release(enum2);
IEnumPins_Release(enum1);
ref = IBaseFilter_Release(filter);
ok(!ref, "Got outstanding refcount %d.\n", ref);
ok(!ref, "Got outstanding refcount %ld.\n", ref);
}
static void test_find_pin(void)
@ -308,19 +308,19 @@ static void test_find_pin(void)
ULONG ref;
hr = IBaseFilter_EnumPins(filter, &enum_pins);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IBaseFilter_FindPin(filter, L"in", &pin);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumPins_Next(enum_pins, 1, &pin2, NULL);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(pin2 == pin, "Expected pin %p, got %p.\n", pin, pin2);
IPin_Release(pin2);
IPin_Release(pin);
IEnumPins_Release(enum_pins);
ref = IBaseFilter_Release(filter);
ok(!ref, "Got outstanding refcount %d.\n", ref);
ok(!ref, "Got outstanding refcount %ld.\n", ref);
}
static void test_pin_info(void)
@ -334,38 +334,38 @@ static void test_pin_info(void)
IPin *pin;
hr = IBaseFilter_FindPin(filter, L"in", &pin);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ref = get_refcount(filter);
ok(ref == 2, "Got unexpected refcount %d.\n", ref);
ok(ref == 2, "Got unexpected refcount %ld.\n", ref);
ref = get_refcount(pin);
ok(ref == 2, "Got unexpected refcount %d.\n", ref);
ok(ref == 2, "Got unexpected refcount %ld.\n", ref);
hr = IPin_QueryPinInfo(pin, &info);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(info.pFilter == filter, "Expected filter %p, got %p.\n", filter, info.pFilter);
ok(info.dir == PINDIR_INPUT, "Got direction %d.\n", info.dir);
ok(!wcscmp(info.achName, L"in"), "Got name %s.\n", wine_dbgstr_w(info.achName));
ref = get_refcount(filter);
ok(ref == 3, "Got unexpected refcount %d.\n", ref);
ok(ref == 3, "Got unexpected refcount %ld.\n", ref);
ref = get_refcount(pin);
ok(ref == 3, "Got unexpected refcount %d.\n", ref);
ok(ref == 3, "Got unexpected refcount %ld.\n", ref);
IBaseFilter_Release(info.pFilter);
hr = IPin_QueryDirection(pin, &dir);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(dir == PINDIR_INPUT, "Got direction %d.\n", dir);
hr = IPin_QueryId(pin, &id);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(!wcscmp(id, L"in"), "Got id %s.\n", wine_dbgstr_w(id));
CoTaskMemFree(id);
hr = IPin_QueryInternalConnections(pin, NULL, NULL);
ok(hr == E_NOTIMPL, "Got hr %#x.\n", hr);
ok(hr == E_NOTIMPL, "Got hr %#lx.\n", hr);
IPin_Release(pin);
ref = IBaseFilter_Release(filter);
ok(!ref, "Got outstanding refcount %d.\n", ref);
ok(!ref, "Got outstanding refcount %ld.\n", ref);
}
static void test_media_types(void)
@ -381,52 +381,52 @@ static void test_media_types(void)
IBaseFilter_FindPin(filter, L"in", &pin);
hr = IPin_EnumMediaTypes(pin, &enummt);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumMediaTypes_Next(enummt, 1, &pmt, NULL);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
IEnumMediaTypes_Release(enummt);
hr = IPin_QueryAccept(pin, &mt);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
mt.majortype = MEDIATYPE_Audio;
mt.subtype = MEDIASUBTYPE_PCM;
mt.formattype = FORMAT_WaveFormatEx;
hr = IPin_QueryAccept(pin, &mt);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
filename = set_filename(filter);
hr = IPin_EnumMediaTypes(pin, &enummt);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumMediaTypes_Next(enummt, 1, &pmt, NULL);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
IEnumMediaTypes_Release(enummt);
memset(&mt, 0, sizeof(AM_MEDIA_TYPE));
hr = IPin_QueryAccept(pin, &mt);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
mt.majortype = MEDIATYPE_Video;
hr = IPin_QueryAccept(pin, &mt);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
mt.majortype = MEDIATYPE_Audio;
hr = IPin_QueryAccept(pin, &mt);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
mt.majortype = MEDIATYPE_Stream;
hr = IPin_QueryAccept(pin, &mt);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
mt.subtype = MEDIASUBTYPE_PCM;
mt.formattype = FORMAT_WaveFormatEx;
hr = IPin_QueryAccept(pin, &mt);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
IPin_Release(pin);
ref = IBaseFilter_Release(filter);
ok(!ref, "Got outstanding refcount %d.\n", ref);
ok(!ref, "Got outstanding refcount %ld.\n", ref);
ok(GetFileAttributesW(filename) == INVALID_FILE_ATTRIBUTES, "File should not exist.\n");
}
@ -442,36 +442,36 @@ static void test_enum_media_types(void)
IBaseFilter_FindPin(filter, L"in", &pin);
hr = IPin_EnumMediaTypes(pin, &enum1);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumMediaTypes_Next(enum1, 1, mts, NULL);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
hr = IEnumMediaTypes_Next(enum1, 1, mts, &count);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(!count, "Got count %u.\n", count);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
ok(!count, "Got count %lu.\n", count);
hr = IEnumMediaTypes_Reset(enum1);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumMediaTypes_Next(enum1, 1, mts, NULL);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
hr = IEnumMediaTypes_Clone(enum1, &enum2);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumMediaTypes_Skip(enum1, 1);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
hr = IEnumMediaTypes_Next(enum2, 1, mts, NULL);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
IEnumMediaTypes_Release(enum1);
IEnumMediaTypes_Release(enum2);
IPin_Release(pin);
ref = IBaseFilter_Release(filter);
ok(!ref, "Got outstanding refcount %d.\n", ref);
ok(!ref, "Got outstanding refcount %ld.\n", ref);
}
struct testfilter
@ -533,33 +533,33 @@ static void test_allocator(IMemInputPin *input, IMemAllocator *allocator)
memset(&props, 0xcc, sizeof(props));
hr = IMemInputPin_GetAllocatorRequirements(input, &props);
todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr);
todo_wine ok(hr == S_OK, "Got hr %#lx.\n", hr);
if (hr == S_OK)
{
ok(!props.cBuffers, "Got %d buffers.\n", props.cBuffers);
ok(!props.cbBuffer, "Got size %d.\n", props.cbBuffer);
ok(props.cbAlign == 512, "Got alignment %d.\n", props.cbAlign);
ok(!props.cbPrefix, "Got prefix %d.\n", props.cbPrefix);
ok(!props.cBuffers, "Got %ld buffers.\n", props.cBuffers);
ok(!props.cbBuffer, "Got size %ld.\n", props.cbBuffer);
ok(props.cbAlign == 512, "Got alignment %ld.\n", props.cbAlign);
ok(!props.cbPrefix, "Got prefix %ld.\n", props.cbPrefix);
}
hr = IMemInputPin_GetAllocator(input, &ret_allocator);
todo_wine ok(hr == E_INVALIDARG, "Got hr %#x.\n", hr);
todo_wine ok(hr == E_INVALIDARG, "Got hr %#lx.\n", hr);
hr = IMemInputPin_NotifyAllocator(input, NULL, TRUE);
ok(hr == E_POINTER, "Got hr %#x.\n", hr);
ok(hr == E_POINTER, "Got hr %#lx.\n", hr);
props.cBuffers = 1;
props.cbBuffer = 512;
props.cbAlign = 512;
props.cbPrefix = 0;
hr = IMemAllocator_SetProperties(allocator, &props, &ret_props);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IMemInputPin_NotifyAllocator(input, allocator, TRUE);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IMemInputPin_GetAllocator(input, &ret_allocator);
todo_wine ok(hr == E_INVALIDARG, "Got hr %#x.\n", hr);
todo_wine ok(hr == E_INVALIDARG, "Got hr %#lx.\n", hr);
if (hr == S_OK)
IMemAllocator_Release(ret_allocator);
}
@ -570,50 +570,50 @@ static void test_filter_state(IMediaControl *control)
HRESULT hr;
hr = IMediaControl_GetState(control, 0, &state);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(state == State_Stopped, "Got state %u.\n", state);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(state == State_Stopped, "Got state %lu.\n", state);
hr = IMediaControl_Pause(control);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IMediaControl_GetState(control, 0, &state);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(state == State_Paused, "Got state %u.\n", state);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(state == State_Paused, "Got state %lu.\n", state);
hr = IMediaControl_Run(control);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IMediaControl_GetState(control, 0, &state);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(state == State_Running, "Got state %u.\n", state);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(state == State_Running, "Got state %lu.\n", state);
hr = IMediaControl_Pause(control);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IMediaControl_GetState(control, 0, &state);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(state == State_Paused, "Got state %u.\n", state);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(state == State_Paused, "Got state %lu.\n", state);
hr = IMediaControl_Stop(control);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IMediaControl_GetState(control, 0, &state);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(state == State_Stopped, "Got state %u.\n", state);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(state == State_Stopped, "Got state %lu.\n", state);
hr = IMediaControl_Run(control);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IMediaControl_GetState(control, 0, &state);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(state == State_Running, "Got state %u.\n", state);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(state == State_Running, "Got state %lu.\n", state);
hr = IMediaControl_Stop(control);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IMediaControl_GetState(control, 0, &state);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(state == State_Stopped, "Got state %u.\n", state);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(state == State_Stopped, "Got state %lu.\n", state);
}
static void test_sample_processing(IMediaControl *control, IMemInputPin *input,
@ -628,53 +628,53 @@ static void test_sample_processing(IMediaControl *control, IMemInputPin *input,
LONG size;
hr = IMemInputPin_ReceiveCanBlock(input);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IMediaControl_Pause(control);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IMemAllocator_GetBuffer(allocator, &sample, NULL, NULL, 0);
ok(hr == VFW_E_NOT_COMMITTED, "Got hr %#x.\n", hr);
ok(hr == VFW_E_NOT_COMMITTED, "Got hr %#lx.\n", hr);
hr = IMemAllocator_Commit(allocator);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IMemAllocator_GetBuffer(allocator, &sample, NULL, NULL, 0);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IMediaSample_GetPointer(sample, &data);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
size = IMediaSample_GetSize(sample);
ok(size == 512, "Got size %d.\n", size);
ok(size == 512, "Got size %ld.\n", size);
memset(data, 0xcc, size);
start = 0;
stop = 512;
hr = IMediaSample_SetTime(sample, &start, &stop);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
strcpy((char *)data, "abcdefghi");
hr = IMediaSample_SetActualDataLength(sample, 9);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IMemInputPin_Receive(input, sample);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
memset(data, 0xcc, size);
strcpy((char *)data, "123456");
hr = IMediaSample_SetActualDataLength(sample, 6);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IMemInputPin_Receive(input, sample);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
file = _wfopen(filename, L"rb");
ok(!!file, "Failed to open file: %s.\n", strerror(errno));
size = fread(buffer, 1, sizeof(buffer), file);
ok(size == 512, "Got size %d.\n", size);
ok(size == 512, "Got size %ld.\n", size);
ok(!memcmp(buffer, "123456\0\xcc\xcc\xcc", 10), "Got data %s.\n",
debugstr_an((char *)buffer, size));
fclose(file);
hr = IMediaControl_Stop(control);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
IMediaSample_Release(sample);
}
@ -689,14 +689,14 @@ static unsigned int check_ec_complete(IMediaEvent *eventsrc, DWORD timeout)
{
if (code == EC_COMPLETE)
{
ok(param1 == S_OK, "Got param1 %#lx.\n", param1);
ok(!param2, "Got param2 %#lx.\n", param2);
ok(param1 == S_OK, "Got param1 %#Ix.\n", param1);
ok(!param2, "Got param2 %#Ix.\n", param2);
ret++;
}
IMediaEvent_FreeEventParams(eventsrc, code, param1, param2);
timeout = 0;
}
ok(hr == E_ABORT, "Got hr %#x.\n", hr);
ok(hr == E_ABORT, "Got hr %#lx.\n", hr);
return ret;
}
@ -710,22 +710,22 @@ static void test_eos(IFilterGraph2 *graph, IMediaControl *control, IPin *pin)
IFilterGraph2_QueryInterface(graph, &IID_IMediaEvent, (void **)&eventsrc);
hr = IMediaControl_Pause(control);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ret = check_ec_complete(eventsrc, 0);
ok(!ret, "Got unexpected EC_COMPLETE.\n");
hr = IPin_EndOfStream(pin);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ret = check_ec_complete(eventsrc, 0);
ok(!ret, "Got unexpected EC_COMPLETE.\n");
hr = IMediaControl_Run(control);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ret = check_ec_complete(eventsrc, 0);
ok(ret == 1, "Expected EC_COMPLETE.\n");
hr = IMediaControl_Stop(control);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
IMediaEvent_Release(eventsrc);
}
@ -755,47 +755,47 @@ static void test_connect_pin(void)
CoCreateInstance(&CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, &IID_IFilterGraph2, (void **)&graph);
IFilterGraph2_QueryInterface(graph, &IID_IMediaControl, (void **)&control);
hr = IFilterGraph2_AddFilter(graph, filter, L"filewriter");
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
IFilterGraph2_AddFilter(graph, &source.filter.IBaseFilter_iface, L"source");
IBaseFilter_FindPin(filter, L"in", &pin);
IPin_QueryInterface(pin, &IID_IMemInputPin, (void **)&meminput);
peer = (IPin *)0xdeadbeef;
hr = IPin_ConnectedTo(pin, &peer);
ok(hr == VFW_E_NOT_CONNECTED, "Got hr %#x.\n", hr);
ok(hr == VFW_E_NOT_CONNECTED, "Got hr %#lx.\n", hr);
ok(!peer, "Got peer %p.\n", peer);
hr = IPin_ConnectionMediaType(pin, &mt);
ok(hr == VFW_E_NOT_CONNECTED, "Got hr %#x.\n", hr);
ok(hr == VFW_E_NOT_CONNECTED, "Got hr %#lx.\n", hr);
hr = IMediaControl_Pause(control);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IFilterGraph2_ConnectDirect(graph, &source.source.pin.IPin_iface, pin, &req_mt);
ok(hr == VFW_E_NOT_STOPPED, "Got hr %#x.\n", hr);
ok(hr == VFW_E_NOT_STOPPED, "Got hr %#lx.\n", hr);
hr = IMediaControl_Stop(control);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IFilterGraph2_ConnectDirect(graph, &source.source.pin.IPin_iface, pin, &req_mt);
ok(hr == VFW_E_TYPE_NOT_ACCEPTED, "Got hr %#x.\n", hr);
ok(hr == VFW_E_TYPE_NOT_ACCEPTED, "Got hr %#lx.\n", hr);
req_mt.majortype = MEDIATYPE_Stream;
hr = IFilterGraph2_ConnectDirect(graph, &source.source.pin.IPin_iface, pin, &req_mt);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IPin_ConnectedTo(pin, &peer);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(peer == &source.source.pin.IPin_iface, "Got peer %p.\n", peer);
IPin_Release(peer);
hr = IPin_ConnectionMediaType(pin, &mt);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(!memcmp(&mt, &req_mt, sizeof(AM_MEDIA_TYPE)), "Media types didn't match.\n");
hr = IMediaControl_Pause(control);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IFilterGraph2_Disconnect(graph, pin);
ok(hr == VFW_E_NOT_STOPPED, "Got hr %#x.\n", hr);
ok(hr == VFW_E_NOT_STOPPED, "Got hr %#lx.\n", hr);
hr = IMediaControl_Stop(control);
todo_wine ok(hr == VFW_E_NO_ALLOCATOR, "Got hr %#x.\n", hr);
todo_wine ok(hr == VFW_E_NO_ALLOCATOR, "Got hr %#lx.\n", hr);
CoCreateInstance(&CLSID_MemoryAllocator, NULL, CLSCTX_INPROC_SERVER,
&IID_IMemAllocator, (void **)&allocator);
@ -806,33 +806,33 @@ static void test_connect_pin(void)
test_eos(graph, control, pin);
hr = IFilterGraph2_Disconnect(graph, pin);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IFilterGraph2_Disconnect(graph, pin);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
ok(source.source.pin.peer == pin, "Got peer %p.\n", source.source.pin.peer);
IFilterGraph2_Disconnect(graph, &source.source.pin.IPin_iface);
peer = (IPin *)0xdeadbeef;
hr = IPin_ConnectedTo(pin, &peer);
ok(hr == VFW_E_NOT_CONNECTED, "Got hr %#x.\n", hr);
ok(hr == VFW_E_NOT_CONNECTED, "Got hr %#lx.\n", hr);
ok(!peer, "Got peer %p.\n", peer);
hr = IPin_ConnectionMediaType(pin, &mt);
ok(hr == VFW_E_NOT_CONNECTED, "Got hr %#x.\n", hr);
ok(hr == VFW_E_NOT_CONNECTED, "Got hr %#lx.\n", hr);
ret = DeleteFileW(filename);
ok(ret, "Failed to delete file, error %u.\n", GetLastError());
ok(ret, "Failed to delete file, error %lu.\n", GetLastError());
IMediaControl_Release(control);
ref = IFilterGraph2_Release(graph);
ok(!ref, "Got outstanding refcount %d.\n", ref);
ok(!ref, "Got outstanding refcount %ld.\n", ref);
IMemInputPin_Release(meminput);
IPin_Release(pin);
ref = IBaseFilter_Release(filter);
ok(!ref, "Got outstanding refcount %d.\n", ref);
ok(!ref, "Got outstanding refcount %ld.\n", ref);
ref = IMemAllocator_Release(allocator);
ok(!ref, "Got outstanding refcount %d.\n", ref);
ok(!ref, "Got outstanding refcount %ld.\n", ref);
ref = IBaseFilter_Release(&source.filter.IBaseFilter_iface);
ok(!ref, "Got outstanding refcount %d.\n", ref);
ok(!ref, "Got outstanding refcount %ld.\n", ref);
}
static void test_misc_flags(void)
@ -844,11 +844,11 @@ static void test_misc_flags(void)
IBaseFilter_QueryInterface(filter, &IID_IAMFilterMiscFlags, (void **)&misc_flags);
flags = IAMFilterMiscFlags_GetMiscFlags(misc_flags);
ok(flags == AM_FILTER_MISC_FLAGS_IS_RENDERER, "Got flags %#x.\n", flags);
ok(flags == AM_FILTER_MISC_FLAGS_IS_RENDERER, "Got flags %#lx.\n", flags);
IAMFilterMiscFlags_Release(misc_flags);
ref = IBaseFilter_Release(filter);
ok(!ref, "Got outstanding refcount %d.\n", ref);
ok(!ref, "Got outstanding refcount %ld.\n", ref);
}
START_TEST(filewriter)

View file

@ -499,7 +499,7 @@ static HRESULT WINAPI EnumPins_Next(IEnumPins *iface,
test_filter *This = impl_from_IEnumPins(iface);
check_calls_list("EnumPins_Next", ENUMPINS_NEXT, This->filter_type);
ok(cPins == 1, "cPins = %d\n", cPins);
ok(cPins == 1, "cPins = %ld\n", cPins);
ok(ppPins != NULL, "ppPins == NULL\n");
ok(pcFetched != NULL, "pcFetched == NULL\n");
@ -601,11 +601,11 @@ static HRESULT WINAPI Pin_ReceiveConnection(IPin *iface,
wine_dbgstr_guid(&pmt->subtype));
ok(pmt->bFixedSizeSamples, "bFixedSizeSamples = %x\n", pmt->bFixedSizeSamples);
ok(!pmt->bTemporalCompression, "bTemporalCompression = %x\n", pmt->bTemporalCompression);
ok(pmt->lSampleSize == 1, "lSampleSize = %d\n", pmt->lSampleSize);
ok(pmt->lSampleSize == 1, "lSampleSize = %ld\n", pmt->lSampleSize);
ok(IsEqualIID(&pmt->formattype, &GUID_NULL), "formattype = %s\n",
wine_dbgstr_guid(&pmt->formattype));
ok(!pmt->pUnk, "pUnk = %p\n", pmt->pUnk);
ok(!pmt->cbFormat, "cbFormat = %d\n", pmt->cbFormat);
ok(!pmt->cbFormat, "cbFormat = %ld\n", pmt->cbFormat);
ok(!pmt->pbFormat, "pbFormat = %p\n", pmt->pbFormat);
return S_OK;
}
@ -758,10 +758,10 @@ static HRESULT WINAPI KsPropertySet_Get(IKsPropertySet *iface, REFGUID guidPropS
check_calls_list("KsPropertySet_Get", KSPROPERTYSET_GET, This->filter_type);
ok(IsEqualIID(guidPropSet, &AMPROPSETID_Pin), "guidPropSet = %s\n", wine_dbgstr_guid(guidPropSet));
ok(dwPropID == 0, "dwPropID = %d\n", dwPropID);
ok(dwPropID == 0, "dwPropID = %ld\n", dwPropID);
ok(pInstanceData == NULL, "pInstanceData != NULL\n");
ok(cbInstanceData == 0, "cbInstanceData != 0\n");
ok(cbPropData == sizeof(GUID), "cbPropData = %d\n", cbPropData);
ok(cbPropData == sizeof(GUID), "cbPropData = %ld\n", cbPropData);
*pcbReturned = sizeof(GUID);
memcpy(pPropData, &PIN_CATEGORY_EDS, sizeof(GUID));
return S_OK;
@ -829,11 +829,11 @@ static HRESULT WINAPI MemInputPin_NotifyAllocator(IMemInputPin *iface,
ok(bReadOnly, "bReadOnly = %x\n", bReadOnly);
hr = IMemAllocator_GetProperties(pAllocator, &ap);
ok(hr == S_OK, "GetProperties returned %x\n", hr);
ok(ap.cBuffers == 32, "cBuffers = %d\n", ap.cBuffers);
ok(ap.cbBuffer == 0, "cbBuffer = %d\n", ap.cbBuffer);
ok(ap.cbAlign == 1, "cbAlign = %d\n", ap.cbAlign);
ok(ap.cbPrefix == 0, "cbPrefix = %d\n", ap.cbPrefix);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(ap.cBuffers == 32, "cBuffers = %ld\n", ap.cBuffers);
ok(ap.cbBuffer == 0, "cbBuffer = %ld\n", ap.cbBuffer);
ok(ap.cbAlign == 1, "cbAlign = %ld\n", ap.cbAlign);
ok(ap.cbPrefix == 0, "cbPrefix = %ld\n", ap.cbPrefix);
return S_OK;
}
@ -852,9 +852,9 @@ static HRESULT WINAPI MemInputPin_Receive(IMemInputPin *iface, IMediaSample *pSa
HRESULT hr;
hr = IMediaSample_GetTime(pSample, &off, &tmp);
ok(hr == S_OK, "got 0x%08x\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IMediaSample_GetPointer(pSample, &data);
ok(hr == S_OK, "got 0x%08x\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
li.QuadPart = off;
IStream_Seek(avi_stream, li, STREAM_SEEK_SET, NULL);
IStream_Write(avi_stream, data, IMediaSample_GetActualDataLength(pSample), NULL);
@ -1069,7 +1069,7 @@ static HRESULT WINAPI EnumMediaTypes_Next(IEnumMediaTypes *iface, ULONG cMediaTy
test_filter *This = impl_from_IEnumMediaTypes(iface);
check_calls_list("EnumMediaTypes_Next", ENUMMEDIATYPES_NEXT, This->filter_type);
ok(cMediaTypes == 1, "cMediaTypes = %d\n", cMediaTypes);
ok(cMediaTypes == 1, "cMediaTypes = %ld\n", cMediaTypes);
ok(ppMediaTypes != NULL, "ppMediaTypes == NULL\n");
ok(pcFetched != NULL, "pcFetched == NULL\n");
@ -1381,30 +1381,30 @@ static void test_AviMux(char *arg)
hr = CoCreateInstance(&CLSID_AviDest, NULL, CLSCTX_INPROC_SERVER, &IID_IBaseFilter, (void**)&avimux);
ok(hr == S_OK || broken(hr == REGDB_E_CLASSNOTREG),
"couldn't create AVI Mux filter, hr = %08x\n", hr);
"Got hr %#lx.\n", hr);
if(hr != S_OK) {
win_skip("AVI Mux filter is not registered\n");
return;
}
hr = IBaseFilter_EnumPins(avimux, &ep);
ok(hr == S_OK, "EnumPins returned %x\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumPins_Next(ep, 1, &avimux_out, NULL);
ok(hr == S_OK, "Next returned %x\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IPin_QueryDirection(avimux_out, &dir);
ok(hr == S_OK, "QueryDirection returned %x\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(dir == PINDIR_OUTPUT, "dir = %d\n", dir);
hr = IEnumPins_Next(ep, 1, &avimux_in, NULL);
ok(hr == S_OK, "Next returned %x\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IPin_QueryDirection(avimux_in, &dir);
ok(hr == S_OK, "QueryDirection returned %x\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(dir == PINDIR_INPUT, "dir = %d\n", dir);
IEnumPins_Release(ep);
hr = IPin_ReceiveConnection(avimux_in, &source_filter.IPin_iface, NULL);
ok(hr == E_POINTER, "ReceiveConnection returned %x\n", hr);
ok(hr == E_POINTER, "Got hr %#lx.\n", hr);
current_calls_list = NULL;
memset(&source_media_type, 0, sizeof(AM_MEDIA_TYPE));
@ -1425,100 +1425,100 @@ static void test_AviMux(char *arg)
videoinfo.bmiHeader.biSizeImage = 40000;
videoinfo.bmiHeader.biClrImportant = 256;
hr = IPin_ReceiveConnection(avimux_in, &source_filter.IPin_iface, &source_media_type);
ok(hr == S_OK, "ReceiveConnection returned %x\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IPin_ConnectedTo(avimux_in, &pin);
ok(hr == S_OK, "ConnectedTo returned %x\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(pin == &source_filter.IPin_iface, "incorrect pin: %p, expected %p\n",
pin, &source_filter.IPin_iface);
hr = IPin_Connect(avimux_out, &source_filter.IPin_iface, NULL);
ok(hr == VFW_E_INVALID_DIRECTION, "Connect returned %x\n", hr);
ok(hr == VFW_E_INVALID_DIRECTION, "Got hr %#lx.\n", hr);
hr = IBaseFilter_JoinFilterGraph(avimux, (IFilterGraph*)&GraphBuilder, NULL);
ok(hr == S_OK, "JoinFilterGraph returned %x\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
SET_EXPECT(ReceiveConnection);
SET_EXPECT(GetAllocatorRequirements);
SET_EXPECT(NotifyAllocator);
SET_EXPECT(Reconnect);
hr = IPin_Connect(avimux_out, &sink_filter.IPin_iface, NULL);
ok(hr == S_OK, "Connect returned %x\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
CHECK_CALLED(ReceiveConnection);
CHECK_CALLED(GetAllocatorRequirements);
CHECK_CALLED(NotifyAllocator);
CHECK_CALLED(Reconnect);
hr = IPin_ConnectedTo(avimux_out, &pin);
ok(hr == S_OK, "ConnectedTo returned %x\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(pin == &sink_filter.IPin_iface, "incorrect pin: %p, expected %p\n",
pin, &source_filter.IPin_iface);
hr = IPin_QueryInterface(avimux_in, &IID_IMemInputPin, (void**)&memin);
ok(hr == S_OK, "QueryInterface returned %x\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
props.cBuffers = 0xdeadbee1;
props.cbBuffer = 0xdeadbee2;
props.cbAlign = 0xdeadbee3;
props.cbPrefix = 0xdeadbee4;
hr = IMemInputPin_GetAllocatorRequirements(memin, &props);
ok(hr==S_OK || broken(hr==E_INVALIDARG), "GetAllocatorRequirements returned %x\n", hr);
ok(hr==S_OK || broken(hr==E_INVALIDARG), "Got hr %#lx.\n", hr);
if(hr == S_OK) {
ok(props.cBuffers == 0xdeadbee1, "cBuffers = %d\n", props.cBuffers);
ok(props.cbBuffer == 0xdeadbee2, "cbBuffer = %d\n", props.cbBuffer);
ok(props.cbAlign == 1, "cbAlign = %d\n", props.cbAlign);
ok(props.cbPrefix == 8, "cbPrefix = %d\n", props.cbPrefix);
ok(props.cBuffers == 0xdeadbee1, "cBuffers = %ld\n", props.cBuffers);
ok(props.cbBuffer == 0xdeadbee2, "cbBuffer = %ld\n", props.cbBuffer);
ok(props.cbAlign == 1, "cbAlign = %ld\n", props.cbAlign);
ok(props.cbPrefix == 8, "cbPrefix = %ld\n", props.cbPrefix);
}
hr = IMemInputPin_GetAllocator(memin, &memalloc);
ok(hr == S_OK, "GetAllocator returned %x\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
props.cBuffers = 0xdeadbee1;
props.cbBuffer = 0xdeadbee2;
props.cbAlign = 0xdeadbee3;
props.cbPrefix = 0xdeadbee4;
hr = IMemAllocator_GetProperties(memalloc, &props);
ok(hr == S_OK, "GetProperties returned %x\n", hr);
ok(props.cBuffers == 0, "cBuffers = %d\n", props.cBuffers);
ok(props.cbBuffer == 0, "cbBuffer = %d\n", props.cbBuffer);
ok(props.cbAlign == 0, "cbAlign = %d\n", props.cbAlign);
ok(props.cbPrefix == 0, "cbPrefix = %d\n", props.cbPrefix);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(props.cBuffers == 0, "cBuffers = %ld\n", props.cBuffers);
ok(props.cbBuffer == 0, "cbBuffer = %ld\n", props.cbBuffer);
ok(props.cbAlign == 0, "cbAlign = %ld\n", props.cbAlign);
ok(props.cbPrefix == 0, "cbPrefix = %ld\n", props.cbPrefix);
IMemAllocator_Release(memalloc);
hr = IBaseFilter_QueryInterface(avimux, &IID_IConfigInterleaving, (void**)&ci);
ok(hr == S_OK, "QueryInterface(IID_IConfigInterleaving) returned %x\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IConfigInterleaving_put_Mode(ci, 5);
ok(hr == E_INVALIDARG, "put_Mode returned %x\n", hr);
ok(hr == E_INVALIDARG, "Got hr %#lx.\n", hr);
SET_EXPECT(Reconnect);
hr = IConfigInterleaving_put_Mode(ci, INTERLEAVE_FULL);
ok(hr == S_OK, "put_Mode returned %x\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
CHECK_CALLED(Reconnect);
IConfigInterleaving_Release(ci);
hr = IBaseFilter_GetState(avimux, 0, &state);
ok(hr == S_OK, "GetState returned %x\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(state == State_Stopped, "state = %d\n", state);
SET_EXPECT(MemAllocator_GetProperties);
hr = IMemInputPin_NotifyAllocator(memin, &MemAllocator, TRUE);
ok(hr == S_OK, "NotifyAllocator returned %x\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
CHECK_CALLED(MemAllocator_GetProperties);
hr = IMemInputPin_GetAllocator(memin, &memalloc);
ok(hr == S_OK, "GetAllocator returned %x\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(memalloc != &MemAllocator, "memalloc == &MemAllocator\n");
IMemAllocator_Release(memalloc);
hr = CreateStreamOnHGlobal(NULL, TRUE, &avi_stream);
ok(hr == S_OK, "got 0x%08x\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
SET_EXPECT(MediaSeeking_GetPositions);
SET_EXPECT(MemInputPin_QueryInterface_IStream);
hr = IBaseFilter_Run(avimux, 0);
ok(hr == S_OK, "Run returned %x\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
CHECK_CALLED(MediaSeeking_GetPositions);
hr = IBaseFilter_GetState(avimux, 0, &state);
ok(hr == S_OK, "GetState returned %x\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(state == State_Running, "state = %d\n", state);
SET_EXPECT(MediaSample_QueryInterface_MediaSample2);
@ -1533,7 +1533,7 @@ static void test_AviMux(char *arg)
SET_EXPECT(MediaSample_GetMediaTime);
start_time = end_time = 0;
hr = IMemInputPin_Receive(memin, &MediaSample);
ok(hr == S_OK, "Receive returned %x\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
CHECK_CALLED(MediaSample_QueryInterface_MediaSample2);
todo_wine CHECK_CALLED(MediaSample_IsDiscontinuity);
todo_wine CHECK_CALLED(MediaSample_IsPreroll);
@ -1556,7 +1556,7 @@ static void test_AviMux(char *arg)
SET_EXPECT(MediaSample_GetSize);
SET_EXPECT(MediaSample_GetMediaTime);
hr = IMemInputPin_Receive(memin, &MediaSample);
ok(hr == S_OK, "Receive returned %x\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
CHECK_CALLED(MediaSample_QueryInterface_MediaSample2);
todo_wine CHECK_CALLED(MediaSample_IsDiscontinuity);
todo_wine CHECK_CALLED(MediaSample_IsPreroll);
@ -1581,7 +1581,7 @@ static void test_AviMux(char *arg)
start_time = 20000000;
end_time = 21000000;
hr = IMemInputPin_Receive(memin, &MediaSample);
ok(hr == S_OK, "Receive returned %x\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
CHECK_CALLED(MediaSample_QueryInterface_MediaSample2);
todo_wine CHECK_CALLED(MediaSample_IsDiscontinuity);
todo_wine CHECK_CALLED(MediaSample_IsPreroll);
@ -1595,20 +1595,20 @@ static void test_AviMux(char *arg)
IMemInputPin_Release(memin);
hr = IBaseFilter_Stop(avimux);
ok(hr == S_OK, "Stop returned %x\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
CHECK_CALLED(MemInputPin_QueryInterface_IStream);
hr = IBaseFilter_GetState(avimux, 0, &state);
ok(hr == S_OK, "GetState returned %x\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(state == State_Stopped, "state = %d\n", state);
hr = IPin_Disconnect(avimux_out);
ok(hr == S_OK, "Disconnect returned %x\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
IPin_Release(avimux_in);
IPin_Release(avimux_out);
ref = IBaseFilter_Release(avimux);
ok(ref == 0, "Avi Mux filter was not destroyed (%d)\n", ref);
ok(ref == 0, "Avi Mux filter was not destroyed (%ld)\n", ref);
if(arg && !strcmp(arg, "save")) {
LARGE_INTEGER li;
@ -1622,12 +1622,12 @@ static void test_AviMux(char *arg)
li.QuadPart = 0;
hr = IStream_Seek(avi_stream, li, STREAM_SEEK_SET, NULL);
ok(hr == S_OK, "IStream_Seek failed: %x\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
while(1) {
hr = IStream_Read(avi_stream, buf, sizeof(buf), &read);
if(FAILED(hr)) {
ok(0, "IStream_Read failed: %x\n", hr);
ok(0, "Got hr %#lx.\n", hr);
break;
}
if(!read)
@ -1640,7 +1640,7 @@ static void test_AviMux(char *arg)
}
ref = IStream_Release(avi_stream);
ok(ref == 0, "IStream was not destroyed (%d)\n", ref);
ok(ref == 0, "IStream was not destroyed (%ld)\n", ref);
}
START_TEST(qcap)

File diff suppressed because it is too large Load diff

View file

@ -39,7 +39,7 @@ static void check_interface_(unsigned int line, void *iface_ptr, REFIID iid, BOO
expected_hr = supported ? S_OK : E_NOINTERFACE;
hr = IUnknown_QueryInterface(iface, iid, (void **)&unk);
ok_(__FILE__, line)(hr == expected_hr, "Got hr %#x, expected %#x.\n", hr, expected_hr);
ok_(__FILE__, line)(hr == expected_hr, "Got hr %#lx, expected %#lx.\n", hr, expected_hr);
if (SUCCEEDED(hr))
IUnknown_Release(unk);
}
@ -51,34 +51,34 @@ static void test_media_types(IPin *pin)
HRESULT hr;
hr = IPin_EnumMediaTypes(pin, &enum_media_types);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
while (IEnumMediaTypes_Next(enum_media_types, 1, &pmt, NULL) == S_OK)
{
hr = IPin_QueryAccept(pin, pmt);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
CoTaskMemFree(pmt);
}
IEnumMediaTypes_Release(enum_media_types);
hr = IPin_QueryAccept(pin, NULL);
todo_wine ok(hr == E_POINTER, "Got hr %#x.\n", hr);
todo_wine ok(hr == E_POINTER, "Got hr %#lx.\n", hr);
memset(&mt, 0, sizeof(mt));
hr = IPin_QueryAccept(pin, &mt);
ok(hr != S_OK, "Got hr %#x.\n", hr);
ok(hr != S_OK, "Got hr %#lx.\n", hr);
mt.majortype = MEDIATYPE_Video;
hr = IPin_QueryAccept(pin, &mt);
ok(hr != S_OK, "Got hr %#x.\n", hr);
ok(hr != S_OK, "Got hr %#lx.\n", hr);
mt.formattype = FORMAT_VideoInfo;
hr = IPin_QueryAccept(pin, &mt);
ok(hr != S_OK, "Got hr %#x.\n", hr);
ok(hr != S_OK, "Got hr %#lx.\n", hr);
mt.formattype = FORMAT_None;
hr = IPin_QueryAccept(pin, &mt);
ok(hr != S_OK, "Got hr %#x.\n", hr);
ok(hr != S_OK, "Got hr %#lx.\n", hr);
}
static void test_stream_config(IPin *pin)
@ -93,36 +93,36 @@ static void test_stream_config(IPin *pin)
HRESULT hr;
hr = IPin_QueryInterface(pin, &IID_IAMStreamConfig, (void **)&stream_config);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IAMStreamConfig_GetFormat(stream_config, &format);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(IsEqualGUID(&format->majortype, &MEDIATYPE_Video), "Got wrong majortype: %s.\n",
debugstr_guid(&format->majortype));
hr = IAMStreamConfig_SetFormat(stream_config, format);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
/* After setting the format, a single media type is enumerated.
* This persists until the filter is released. */
IPin_EnumMediaTypes(pin, &enum_media_types);
hr = IEnumMediaTypes_Next(enum_media_types, 1, &format2, NULL);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
DeleteMediaType(format2);
hr = IEnumMediaTypes_Next(enum_media_types, 1, &format2, NULL);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
IEnumMediaTypes_Release(enum_media_types);
format->majortype = MEDIATYPE_Audio;
hr = IAMStreamConfig_SetFormat(stream_config, format);
ok(hr == E_FAIL, "Got hr %#x.\n", hr);
ok(hr == E_FAIL, "Got hr %#lx.\n", hr);
format->majortype = MEDIATYPE_Video;
video_info = (VIDEOINFOHEADER *)format->pbFormat;
video_info->bmiHeader.biWidth--;
video_info->bmiHeader.biHeight--;
hr = IAMStreamConfig_SetFormat(stream_config, format);
ok(hr == E_FAIL, "Got hr %#x.\n", hr);
ok(hr == E_FAIL, "Got hr %#lx.\n", hr);
depth = video_info->bmiHeader.biBitCount;
compression = video_info->bmiHeader.biCompression;
@ -131,23 +131,23 @@ static void test_stream_config(IPin *pin)
video_info->bmiHeader.biBitCount = 0;
video_info->bmiHeader.biCompression = 0;
hr = IAMStreamConfig_SetFormat(stream_config, format);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IAMStreamConfig_GetFormat(stream_config, &format2);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(IsEqualGUID(&format2->majortype, &MEDIATYPE_Video), "Got wrong majortype: %s.\n",
debugstr_guid(&format2->majortype));
video_info2 = (VIDEOINFOHEADER *)format2->pbFormat;
ok(video_info2->bmiHeader.biBitCount == depth, "Got wrong depth: %d.\n",
video_info2->bmiHeader.biBitCount);
ok(video_info2->bmiHeader.biCompression == compression,
"Got wrong compression: %d.\n", video_info2->bmiHeader.biCompression);
"Got wrong compression: %ld.\n", video_info2->bmiHeader.biCompression);
FreeMediaType(format2);
video_info->bmiHeader.biWidth = 10000000;
video_info->bmiHeader.biHeight = 10000000;
hr = IAMStreamConfig_SetFormat(stream_config, format);
ok(hr == E_FAIL, "Got hr %#x.\n", hr);
ok(hr == E_FAIL, "Got hr %#lx.\n", hr);
FreeMediaType(format);
count = 0xdeadbeef;
@ -156,33 +156,33 @@ static void test_stream_config(IPin *pin)
if (0)
{
hr = IAMStreamConfig_GetNumberOfCapabilities(stream_config, &count, NULL);
ok(hr == E_POINTER, "Got hr %#x.\n", hr);
ok(hr == E_POINTER, "Got hr %#lx.\n", hr);
hr = IAMStreamConfig_GetNumberOfCapabilities(stream_config, NULL, &size);
ok(hr == E_POINTER, "Got hr %#x.\n", hr);
ok(hr == E_POINTER, "Got hr %#lx.\n", hr);
hr = IAMStreamConfig_GetStreamCaps(stream_config, 0, NULL, (BYTE *)&vscc);
ok(hr == E_POINTER, "Got hr %#x.\n", hr);
ok(hr == E_POINTER, "Got hr %#lx.\n", hr);
hr = IAMStreamConfig_GetStreamCaps(stream_config, 0, &format, NULL);
ok(hr == E_POINTER, "Got hr %#x.\n", hr);
ok(hr == E_POINTER, "Got hr %#lx.\n", hr);
}
hr = IAMStreamConfig_GetNumberOfCapabilities(stream_config, &count, &size);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(count != 0xdeadbeef, "Got wrong count: %d.\n", count);
ok(size == sizeof(VIDEO_STREAM_CONFIG_CAPS), "Got wrong size: %d.\n", size);
hr = IAMStreamConfig_GetStreamCaps(stream_config, 100000, NULL, NULL);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
hr = IAMStreamConfig_GetStreamCaps(stream_config, 100000, &format, (BYTE *)&vscc);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
for (i = 0; i < count; ++i)
{
hr = IAMStreamConfig_GetStreamCaps(stream_config, i, &format, (BYTE *)&vscc);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(IsEqualGUID(&format->majortype, &MEDIATYPE_Video), "Got wrong majortype: %s.\n",
debugstr_guid(&MEDIATYPE_Video));
ok(IsEqualGUID(&vscc.guid, &FORMAT_VideoInfo)
@ -190,17 +190,17 @@ static void test_stream_config(IPin *pin)
debugstr_guid(&vscc.guid));
hr = IAMStreamConfig_SetFormat(stream_config, format);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IAMStreamConfig_GetFormat(stream_config, &format2);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(compare_media_types(format, format2), "Media types didn't match.\n");
DeleteMediaType(format2);
hr = IPin_EnumMediaTypes(pin, &enum_media_types);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumMediaTypes_Next(enum_media_types, 1, &format2, NULL);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(compare_media_types(format, format2), "Media types didn't match.\n");
DeleteMediaType(format2);
IEnumMediaTypes_Release(enum_media_types);
@ -241,7 +241,7 @@ static void test_pins(IBaseFilter *filter)
HRESULT hr;
hr = IBaseFilter_EnumPins(filter, &enum_pins);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
while ((hr = IEnumPins_Next(enum_pins, 1, &pin, NULL)) == S_OK)
{
@ -288,11 +288,11 @@ static void test_misc_flags(IBaseFilter *filter)
HRESULT hr;
hr = IBaseFilter_QueryInterface(filter, &IID_IAMFilterMiscFlags, (void **)&misc_flags);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
flags = IAMFilterMiscFlags_GetMiscFlags(misc_flags);
ok(flags == AM_FILTER_MISC_FLAGS_IS_SOURCE
|| broken(!flags) /* win7 */, "Got wrong flags: %#x.\n", flags);
|| broken(!flags) /* win7 */, "Got wrong flags: %#lx.\n", flags);
IAMFilterMiscFlags_Release(misc_flags);
}
@ -303,49 +303,49 @@ static void test_unconnected_filter_state(IBaseFilter *filter)
HRESULT hr;
hr = IBaseFilter_GetState(filter, 0, &state);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(state == State_Stopped, "Got state %u.\n", state);
hr = IBaseFilter_Pause(filter);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IBaseFilter_GetState(filter, 0, &state);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(state == State_Paused, "Got state %u.\n", state);
hr = IBaseFilter_Run(filter, 0);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IBaseFilter_GetState(filter, 0, &state);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(state == State_Running, "Got state %u.\n", state);
hr = IBaseFilter_Pause(filter);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IBaseFilter_GetState(filter, 0, &state);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(state == State_Paused, "Got state %u.\n", state);
hr = IBaseFilter_Stop(filter);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IBaseFilter_GetState(filter, 0, &state);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(state == State_Stopped, "Got state %u.\n", state);
hr = IBaseFilter_Run(filter, 0);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IBaseFilter_GetState(filter, 0, &state);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(state == State_Running, "Got state %u.\n", state);
hr = IBaseFilter_Stop(filter);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IBaseFilter_GetState(filter, 0, &state);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(state == State_Stopped, "Got state %u.\n", state);
}
@ -420,81 +420,81 @@ static void test_filter_state(IMediaControl *control, IMemAllocator *allocator)
HRESULT hr;
hr = IMediaControl_GetState(control, 0, &state);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(state == State_Stopped, "Got state %u.\n", state);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(state == State_Stopped, "Got state %lu.\n", state);
hr = IMemAllocator_GetBuffer(allocator, &sample, NULL, NULL, 0);
ok(hr == VFW_E_NOT_COMMITTED, "Got hr %#x.\n", hr);
ok(hr == VFW_E_NOT_COMMITTED, "Got hr %#lx.\n", hr);
hr = IMediaControl_Pause(control);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IMediaControl_GetState(control, 0, &state);
ok(hr == VFW_S_CANT_CUE, "Got hr %#x.\n", hr);
ok(state == State_Paused, "Got state %u.\n", state);
ok(hr == VFW_S_CANT_CUE, "Got hr %#lx.\n", hr);
ok(state == State_Paused, "Got state %lu.\n", state);
hr = IMemAllocator_GetBuffer(allocator, &sample, NULL, NULL, AM_GBF_NOWAIT);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
IMediaSample_Release(sample);
hr = IMediaControl_Run(control);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IMediaControl_GetState(control, 0, &state);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(state == State_Running, "Got state %u.\n", state);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(state == State_Running, "Got state %lu.\n", state);
hr = IMediaControl_Pause(control);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IMediaControl_GetState(control, 0, &state);
ok(hr == VFW_S_CANT_CUE, "Got hr %#x.\n", hr);
ok(state == State_Paused, "Got state %u.\n", state);
ok(hr == VFW_S_CANT_CUE, "Got hr %#lx.\n", hr);
ok(state == State_Paused, "Got state %lu.\n", state);
hr = IMediaControl_Stop(control);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IMediaControl_GetState(control, 0, &state);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(state == State_Stopped, "Got state %u.\n", state);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(state == State_Stopped, "Got state %lu.\n", state);
hr = IMemAllocator_GetBuffer(allocator, &sample, NULL, NULL, 0);
ok(hr == VFW_E_NOT_COMMITTED, "Got hr %#x.\n", hr);
ok(hr == VFW_E_NOT_COMMITTED, "Got hr %#lx.\n", hr);
hr = IMediaControl_Run(control);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IMediaControl_GetState(control, 0, &state);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(state == State_Running, "Got state %u.\n", state);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(state == State_Running, "Got state %lu.\n", state);
hr = IMemAllocator_GetBuffer(allocator, &sample, NULL, NULL, AM_GBF_NOWAIT);
todo_wine ok(hr == VFW_E_TIMEOUT, "Got hr %#x.\n", hr);
todo_wine ok(hr == VFW_E_TIMEOUT, "Got hr %#lx.\n", hr);
if (hr == S_OK) IMediaSample_Release(sample);
hr = IMediaControl_Stop(control);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IMediaControl_GetState(control, 0, &state);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(state == State_Stopped, "Got state %u.\n", state);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(state == State_Stopped, "Got state %lu.\n", state);
hr = IMemAllocator_GetBuffer(allocator, &sample, NULL, NULL, 0);
ok(hr == VFW_E_NOT_COMMITTED, "Got hr %#x.\n", hr);
ok(hr == VFW_E_NOT_COMMITTED, "Got hr %#lx.\n", hr);
/* Test committing the allocator before the capture filter does. */
hr = IMemAllocator_Commit(allocator);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IMediaControl_Pause(control);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IMemAllocator_Decommit(allocator);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IMediaControl_Stop(control);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
}
static void test_connect_pin(IBaseFilter *filter, IPin *source)
@ -516,20 +516,20 @@ static void test_connect_pin(IBaseFilter *filter, IPin *source)
IFilterGraph2_AddFilter(graph, &testsink.filter.IBaseFilter_iface, L"sink");
IFilterGraph2_AddFilter(graph, filter, L"source");
hr = IPin_QueryInterface(source, &IID_IAMStreamConfig, (void **)&stream_config);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
peer = (IPin *)0xdeadbeef;
hr = IPin_ConnectedTo(source, &peer);
ok(hr == VFW_E_NOT_CONNECTED, "Got hr %#x.\n", hr);
ok(hr == VFW_E_NOT_CONNECTED, "Got hr %#lx.\n", hr);
ok(!peer, "Got peer %p.\n", peer);
hr = IPin_ConnectionMediaType(source, &mt);
ok(hr == VFW_E_NOT_CONNECTED, "Got hr %#x.\n", hr);
ok(hr == VFW_E_NOT_CONNECTED, "Got hr %#lx.\n", hr);
hr = IPin_EnumMediaTypes(source, &enummt);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumMediaTypes_Next(enummt, 2, mts, &count);
ok(SUCCEEDED(hr), "Got hr %#x.\n", hr);
ok(SUCCEEDED(hr), "Got hr %#lx.\n", hr);
CopyMediaType(&req_mt, mts[count - 1]);
CopyMediaType(&default_mt, mts[0]);
DeleteMediaType(mts[0]);
@ -538,50 +538,50 @@ static void test_connect_pin(IBaseFilter *filter, IPin *source)
IEnumMediaTypes_Release(enummt);
hr = IAMStreamConfig_GetFormat(stream_config, &mts[0]);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(compare_media_types(mts[0], &default_mt), "Media types didn't match.\n");
DeleteMediaType(mts[0]);
hr = IFilterGraph2_ConnectDirect(graph, source, &testsink.sink.pin.IPin_iface, &req_mt);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(!!testsink.sink.pAllocator, "Expected to be assigned an allocator.\n");
test_filter_state(control, testsink.sink.pAllocator);
hr = IPin_ConnectedTo(source, &peer);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(peer == &testsink.sink.pin.IPin_iface, "Got peer %p.\n", peer);
IPin_Release(peer);
hr = IPin_ConnectionMediaType(source, &mt);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(compare_media_types(&mt, &req_mt), "Media types didn't match.\n");
ok(compare_media_types(&testsink.sink.pin.mt, &req_mt), "Media types didn't match.\n");
FreeMediaType(&mt);
hr = IAMStreamConfig_GetFormat(stream_config, &mts[0]);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(compare_media_types(mts[0], &req_mt), "Media types didn't match.\n");
DeleteMediaType(mts[0]);
hr = IPin_EnumMediaTypes(source, &enummt);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IEnumMediaTypes_Next(enummt, 1, mts, NULL);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(compare_media_types(mts[0], &default_mt), "Media types didn't match.\n");
DeleteMediaType(mts[0]);
IEnumMediaTypes_Release(enummt);
hr = IFilterGraph2_Disconnect(graph, source);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IFilterGraph2_Disconnect(graph, source);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#lx.\n", hr);
ok(testsink.sink.pin.peer == source, "Got peer %p.\n", testsink.sink.pin.peer);
IFilterGraph2_Disconnect(graph, &testsink.sink.pin.IPin_iface);
hr = IAMStreamConfig_GetFormat(stream_config, &mts[0]);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(compare_media_types(mts[0], &default_mt), "Media types didn't match.\n");
DeleteMediaType(mts[0]);
@ -590,9 +590,9 @@ static void test_connect_pin(IBaseFilter *filter, IPin *source)
IAMStreamConfig_Release(stream_config);
IMediaControl_Release(control);
ref = IFilterGraph2_Release(graph);
ok(!ref, "Got outstanding refcount %d.\n", ref);
ok(!ref, "Got outstanding refcount %ld.\n", ref);
ref = IBaseFilter_Release(&testsink.filter.IBaseFilter_iface);
ok(!ref, "Got outstanding refcount %d.\n", ref);
ok(!ref, "Got outstanding refcount %ld.\n", ref);
}
static void test_connection(IMoniker *moniker)
@ -604,10 +604,10 @@ static void test_connection(IMoniker *moniker)
IPin *pin;
hr = IMoniker_BindToObject(moniker, NULL, NULL, &IID_IBaseFilter, (void **)&filter);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = IBaseFilter_EnumPins(filter, &enum_pins);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
while (IEnumPins_Next(enum_pins, 1, &pin, NULL) == S_OK)
{
@ -622,7 +622,7 @@ static void test_connection(IMoniker *moniker)
IEnumPins_Release(enum_pins);
ref = IBaseFilter_Release(filter);
ok(!ref, "Got outstanding refcount %d.\n", ref);
ok(!ref, "Got outstanding refcount %ld.\n", ref);
}
START_TEST(videocapture)
@ -639,7 +639,7 @@ START_TEST(videocapture)
hr = CoCreateInstance(&CLSID_SystemDeviceEnum, NULL, CLSCTX_INPROC,
&IID_ICreateDevEnum, (void **)&dev_enum);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
hr = ICreateDevEnum_CreateClassEnumerator(dev_enum, &CLSID_VideoInputDeviceCategory, &class_enum, 0);
if (hr == S_FALSE)
@ -649,18 +649,18 @@ START_TEST(videocapture)
CoUninitialize();
return;
}
ok(hr == S_OK, "Got hr=%#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
while (IEnumMoniker_Next(class_enum, 1, &moniker, NULL) == S_OK)
{
hr = IMoniker_GetDisplayName(moniker, NULL, NULL, &name);
ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
trace("Testing device %s.\n", wine_dbgstr_w(name));
CoTaskMemFree(name);
if (FAILED(hr = IMoniker_BindToObject(moniker, NULL, NULL, &IID_IBaseFilter, (void **)&filter)))
{
skip("Failed to open device %s, hr %#x.\n", debugstr_w(name), hr);
skip("Failed to open device %s, hr %#lx.\n", debugstr_w(name), hr);
IMoniker_Release(moniker);
continue;
}
@ -671,7 +671,7 @@ START_TEST(videocapture)
test_unconnected_filter_state(filter);
ref = IBaseFilter_Release(filter);
ok(!ref, "Got outstanding refcount %d.\n", ref);
ok(!ref, "Got outstanding refcount %ld.\n", ref);
test_connection(moniker);