From 289005a79f17abdd1c483de53505a829aee6e665 Mon Sep 17 00:00:00 2001 From: Michael Stefaniuc Date: Thu, 24 Mar 2011 13:55:03 +0100 Subject: [PATCH] oleaut32/tests: Use a proper static COM object. --- dlls/oleaut32/tests/safearray.c | 60 ++++++++++++++++----------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/dlls/oleaut32/tests/safearray.c b/dlls/oleaut32/tests/safearray.c index 0c2b8821538..411b4bc3b10 100644 --- a/dlls/oleaut32/tests/safearray.c +++ b/dlls/oleaut32/tests/safearray.c @@ -1130,16 +1130,27 @@ static void test_SafeArrayGetPutElement_BSTR(void) SysFreeString(gotvalue); } -static int tunk_xref = 0; -static HRESULT WINAPI tunk_QueryInterface(LPUNKNOWN punk,REFIID riid, LPVOID *x) { - return E_FAIL; -} -static ULONG WINAPI tunk_AddRef(LPUNKNOWN punk) { - return ++tunk_xref; +struct xtunk_impl { + IUnknown IUnknown_iface; + LONG ref; +}; +static const IUnknownVtbl xtunk_vtbl; + +static struct xtunk_impl xtunk = {{&xtunk_vtbl}, 0}; + +static HRESULT WINAPI tunk_QueryInterface(IUnknown *punk, REFIID riid, void **x) +{ + return E_FAIL; } -static ULONG WINAPI tunk_Release(LPUNKNOWN punk) { - return --tunk_xref; +static ULONG WINAPI tunk_AddRef(IUnknown *punk) +{ + return ++xtunk.ref; +} + +static ULONG WINAPI tunk_Release(IUnknown *punk) +{ + return --xtunk.ref; } static const IUnknownVtbl xtunk_vtbl = { @@ -1148,18 +1159,13 @@ static const IUnknownVtbl xtunk_vtbl = { tunk_Release }; -static struct xtunk_iface { - const IUnknownVtbl *lpvtbl; -} xtunk_iface; - - static void test_SafeArrayGetPutElement_IUnknown(void) { SAFEARRAYBOUND sab; LONG indices[1]; SAFEARRAY *sa; HRESULT hres; - LPUNKNOWN value = 0, gotvalue; + IUnknown *gotvalue; sab.lLbound = 1; sab.cElements = 1; @@ -1173,22 +1179,19 @@ static void test_SafeArrayGetPutElement_IUnknown(void) return; indices[0] = sab.lLbound; - xtunk_iface.lpvtbl = &xtunk_vtbl; - value = (LPUNKNOWN)&xtunk_iface; - tunk_xref = 1; - ok (value != NULL, "Expected non-NULL\n"); - hres = SafeArrayPutElement(sa, indices, value); + xtunk.ref = 1; + hres = SafeArrayPutElement(sa, indices, &xtunk.IUnknown_iface); ok(hres == S_OK, "Failed to put bstr element hres 0x%x\n", hres); - ok(tunk_xref == 2,"Failed to increment refcount of iface.\n"); + ok(xtunk.ref == 2,"Failed to increment refcount of iface.\n"); gotvalue = NULL; hres = SafeArrayGetElement(sa, indices, &gotvalue); - ok(tunk_xref == 3,"Failed to increment refcount of iface.\n"); + ok(xtunk.ref == 3,"Failed to increment refcount of iface.\n"); ok(hres == S_OK, "Failed to get bstr element at hres 0x%x\n", hres); if (hres == S_OK) - ok(value == gotvalue, "Got %p instead of %p\n", gotvalue, value); + ok(gotvalue == &xtunk.IUnknown_iface, "Got %p instead of %p\n", gotvalue, &xtunk.IUnknown_iface); hres = SafeArrayDestroy(sa); ok(hres == S_OK, "got 0x%08x\n", hres); - ok(tunk_xref == 2,"Failed to decrement refcount of iface.\n"); + ok(xtunk.ref == 2,"Failed to decrement refcount of iface.\n"); } static void test_SafeArrayRedim_IUnknown(void) @@ -1197,7 +1200,6 @@ static void test_SafeArrayRedim_IUnknown(void) LONG indices[1]; SAFEARRAY *sa; HRESULT hres; - LPUNKNOWN value; sab.lLbound = 1; sab.cElements = 2; @@ -1211,16 +1213,14 @@ static void test_SafeArrayRedim_IUnknown(void) return; indices[0] = 2; - xtunk_iface.lpvtbl = &xtunk_vtbl; - value = (LPUNKNOWN)&xtunk_iface; - tunk_xref = 1; - hres = SafeArrayPutElement(sa, indices, value); + xtunk.ref = 1; + hres = SafeArrayPutElement(sa, indices, &xtunk.IUnknown_iface); ok(hres == S_OK, "Failed to put IUnknown element hres 0x%x\n", hres); - ok(tunk_xref == 2,"Failed to increment refcount of iface.\n"); + ok(xtunk.ref == 2,"Failed to increment refcount of iface.\n"); sab.cElements = 1; hres = SafeArrayRedim(sa, &sab); ok(hres == S_OK, "Failed to shrink array hres 0x%x\n", hres); - ok(tunk_xref == 1, "Failed to decrement refcount\n"); + ok(xtunk.ref == 1, "Failed to decrement refcount\n"); hres = SafeArrayDestroy(sa); ok(hres == S_OK, "got 0x%08x\n", hres); }