Commit bae65282 authored by Michael Stefaniuc's avatar Michael Stefaniuc Committed by Alexandre Julliard

sti: Use an iface instead of a vtbl pointer in sti_cf.

parent 3dd2c0d8
...@@ -43,13 +43,13 @@ typedef HRESULT (*fnCreateInstance)(REFIID riid, IUnknown *pUnkOuter, LPVOID *pp ...@@ -43,13 +43,13 @@ typedef HRESULT (*fnCreateInstance)(REFIID riid, IUnknown *pUnkOuter, LPVOID *pp
typedef struct typedef struct
{ {
const struct IClassFactoryVtbl *vtbl; IClassFactory IClassFactory_iface;
fnCreateInstance pfnCreateInstance; fnCreateInstance pfnCreateInstance;
} sti_cf; } sti_cf;
static inline sti_cf *impl_from_IClassFactory( IClassFactory *iface ) static inline sti_cf *impl_from_IClassFactory( IClassFactory *iface )
{ {
return (sti_cf *)((char *)iface - FIELD_OFFSET( sti_cf, vtbl )); return CONTAINING_RECORD(iface, sti_cf, IClassFactory_iface);
} }
static HRESULT sti_create( REFIID riid, IUnknown *pUnkOuter, LPVOID *ppObj ) static HRESULT sti_create( REFIID riid, IUnknown *pUnkOuter, LPVOID *ppObj )
...@@ -131,7 +131,7 @@ static const struct IClassFactoryVtbl sti_cf_vtbl = ...@@ -131,7 +131,7 @@ static const struct IClassFactoryVtbl sti_cf_vtbl =
sti_cf_LockServer sti_cf_LockServer
}; };
static sti_cf the_sti_cf = { &sti_cf_vtbl, sti_create }; static sti_cf the_sti_cf = { { &sti_cf_vtbl }, sti_create };
BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpvReserved) BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpvReserved)
{ {
...@@ -153,7 +153,7 @@ HRESULT WINAPI DllGetClassObject( REFCLSID rclsid, REFIID iid, LPVOID *ppv ) ...@@ -153,7 +153,7 @@ HRESULT WINAPI DllGetClassObject( REFCLSID rclsid, REFIID iid, LPVOID *ppv )
if (IsEqualGUID( rclsid, &CLSID_Sti )) if (IsEqualGUID( rclsid, &CLSID_Sti ))
{ {
cf = (IClassFactory *)&the_sti_cf.vtbl; cf = &the_sti_cf.IClassFactory_iface;
} }
if (cf) if (cf)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment