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

This commit is contained in:
Michael Stefaniuc 2010-12-29 02:53:33 +01:00 committed by Alexandre Julliard
parent 3dd2c0d832
commit bae6528247
1 changed files with 4 additions and 4 deletions

View File

@ -43,13 +43,13 @@ typedef HRESULT (*fnCreateInstance)(REFIID riid, IUnknown *pUnkOuter, LPVOID *pp
typedef struct
{
const struct IClassFactoryVtbl *vtbl;
IClassFactory IClassFactory_iface;
fnCreateInstance pfnCreateInstance;
} sti_cf;
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 )
@ -131,7 +131,7 @@ static const struct IClassFactoryVtbl sti_cf_vtbl =
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)
{
@ -153,7 +153,7 @@ HRESULT WINAPI DllGetClassObject( REFCLSID rclsid, REFIID iid, LPVOID *ppv )
if (IsEqualGUID( rclsid, &CLSID_Sti ))
{
cf = (IClassFactory *)&the_sti_cf.vtbl;
cf = &the_sti_cf.IClassFactory_iface;
}
if (cf)