xmllite/tests: Use an iface instead of a vtbl pointer in testinput.
This commit is contained in:
parent
d15f5722cb
commit
a36f51f357
|
@ -19,6 +19,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define COBJMACROS
|
#define COBJMACROS
|
||||||
|
#define CONST_VTABLE
|
||||||
|
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
@ -258,13 +259,13 @@ static void test_read_state_(IXmlReader *reader, XmlReadState expected,
|
||||||
|
|
||||||
typedef struct _testinput
|
typedef struct _testinput
|
||||||
{
|
{
|
||||||
const IUnknownVtbl *lpVtbl;
|
IUnknown IUnknown_iface;
|
||||||
LONG ref;
|
LONG ref;
|
||||||
} testinput;
|
} testinput;
|
||||||
|
|
||||||
static inline testinput *impl_from_IUnknown(IUnknown *iface)
|
static inline testinput *impl_from_IUnknown(IUnknown *iface)
|
||||||
{
|
{
|
||||||
return (testinput *)((char*)iface - FIELD_OFFSET(testinput, lpVtbl));
|
return CONTAINING_RECORD(iface, testinput, IUnknown_iface);
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI testinput_QueryInterface(IUnknown *iface, REFIID riid, void** ppvObj)
|
static HRESULT WINAPI testinput_QueryInterface(IUnknown *iface, REFIID riid, void** ppvObj)
|
||||||
|
@ -317,10 +318,10 @@ static HRESULT testinput_createinstance(void **ppObj)
|
||||||
input = HeapAlloc(GetProcessHeap(), 0, sizeof (*input));
|
input = HeapAlloc(GetProcessHeap(), 0, sizeof (*input));
|
||||||
if(!input) return E_OUTOFMEMORY;
|
if(!input) return E_OUTOFMEMORY;
|
||||||
|
|
||||||
input->lpVtbl = &testinput_vtbl;
|
input->IUnknown_iface.lpVtbl = &testinput_vtbl;
|
||||||
input->ref = 1;
|
input->ref = 1;
|
||||||
|
|
||||||
*ppObj = &input->lpVtbl;
|
*ppObj = &input->IUnknown_iface;
|
||||||
|
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
@ -372,13 +373,14 @@ static void test_reader_create(void)
|
||||||
hr = testinput_createinstance((void**)&input);
|
hr = testinput_createinstance((void**)&input);
|
||||||
ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
|
ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
|
||||||
|
|
||||||
input_iids.count = 0;
|
if (hr == S_OK)
|
||||||
hr = IXmlReader_SetInput(reader, input);
|
{
|
||||||
ok(hr == E_NOINTERFACE, "Expected E_NOINTERFACE, got %08x\n", hr);
|
input_iids.count = 0;
|
||||||
ok_iids(&input_iids, setinput_full, setinput_full_old, FALSE);
|
hr = IXmlReader_SetInput(reader, input);
|
||||||
|
ok(hr == E_NOINTERFACE, "Expected E_NOINTERFACE, got %08x\n", hr);
|
||||||
IUnknown_Release(input);
|
ok_iids(&input_iids, setinput_full, setinput_full_old, FALSE);
|
||||||
|
IUnknown_Release(input);
|
||||||
|
}
|
||||||
IXmlReader_Release(reader);
|
IXmlReader_Release(reader);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue