diff --git a/dlls/avifil32/avifile.c b/dlls/avifil32/avifile.c index 653c51c5287..fdfacfcc84d 100644 --- a/dlls/avifil32/avifile.c +++ b/dlls/avifil32/avifile.c @@ -78,7 +78,7 @@ struct ICOM_VTABLE(IAVIStream) iavist = { typedef struct IAVIStreamImpl { /* IUnknown stuff */ - ICOM_VTABLE(IAVIStream)* lpvtbl; + ICOM_VFIELD(IAVIStream); DWORD ref; /* IAVIStream stuff */ LPVOID lpInputFormat; @@ -109,7 +109,7 @@ AVIFileInit(void) { typedef struct IAVIFileImpl { /* IUnknown stuff */ - ICOM_VTABLE(IAVIFile)* lpvtbl; + ICOM_VFIELD(IAVIFile); DWORD ref; /* IAVIFile stuff... */ } IAVIFileImpl; @@ -168,7 +168,7 @@ static HRESULT WINAPI IAVIFile_fnCreateStream(IAVIFile*iface,PAVISTREAM*avis,AVI FIXME_(avifile)("(%p,%p,%p)\n",This,avis,asi); istream = (IAVIStreamImpl*)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(IAVIStreamImpl)); istream->ref = 1; - istream->lpvtbl = &iavist; + ICOM_VTBL(istream) = &iavist; fcc[4]='\0'; memcpy(fcc,(char*)&(asi->fccType),4); FIXME_(avifile)("\tfccType '%s'\n",fcc); @@ -222,7 +222,7 @@ HRESULT WINAPI AVIFileOpenA( FIXME_(avifile)("(%p,%s,0x%08lx,%s),stub!\n",ppfile,szFile,(DWORD)uMode,buf); iavi = (IAVIFileImpl*)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(IAVIFileImpl)); iavi->ref = 1; - iavi->lpvtbl = &iavift; + ICOM_VTBL(iavi) = &iavift; *ppfile = (LPVOID)iavi; return S_OK; } diff --git a/dlls/dplayx/dpclassfactory.c b/dlls/dplayx/dpclassfactory.c index b418efa386b..65a10be88b4 100644 --- a/dlls/dplayx/dpclassfactory.c +++ b/dlls/dplayx/dpclassfactory.c @@ -14,7 +14,7 @@ DEFAULT_DEBUG_CHANNEL(dplay) typedef struct { /* IUnknown fields */ - ICOM_VTABLE(IClassFactory)* lpvtbl; + ICOM_VFIELD(IClassFactory); DWORD ref; } IClassFactoryImpl; diff --git a/dlls/dsound/dsound_main.c b/dlls/dsound/dsound_main.c index 61f7de78cee..788e80119b7 100644 --- a/dlls/dsound/dsound_main.c +++ b/dlls/dsound/dsound_main.c @@ -86,7 +86,7 @@ typedef struct IDirectSound3DBufferImpl IDirectSound3DBufferImpl; struct IDirectSoundImpl { /* IUnknown fields */ - ICOM_VTABLE(IDirectSound)* lpvtbl; + ICOM_VFIELD(IDirectSound); DWORD ref; /* IDirectSoundImpl fields */ DWORD priolevel; @@ -103,7 +103,7 @@ struct IDirectSoundImpl struct IDirectSoundBufferImpl { /* IUnknown fields */ - ICOM_VTABLE(IDirectSoundBuffer)* lpvtbl; + ICOM_VFIELD(IDirectSoundBuffer); DWORD ref; /* IDirectSoundBufferImpl fields */ WAVEFORMATEX wfx; @@ -130,7 +130,7 @@ struct IDirectSoundBufferImpl struct IDirectSoundNotifyImpl { /* IUnknown fields */ - ICOM_VTABLE(IDirectSoundNotify)* lpvtbl; + ICOM_VFIELD(IDirectSoundNotify); DWORD ref; /* IDirectSoundNotifyImpl fields */ IDirectSoundBufferImpl* dsb; @@ -142,7 +142,7 @@ struct IDirectSoundNotifyImpl struct IDirectSound3DListenerImpl { /* IUnknown fields */ - ICOM_VTABLE(IDirectSound3DListener)* lpvtbl; + ICOM_VFIELD(IDirectSound3DListener); DWORD ref; /* IDirectSound3DListenerImpl fields */ IDirectSoundBufferImpl* dsb; @@ -156,7 +156,7 @@ struct IDirectSound3DListenerImpl struct IDirectSound3DBufferImpl { /* IUnknown fields */ - ICOM_VTABLE(IDirectSound3DBuffer)* lpvtbl; + ICOM_VFIELD(IDirectSound3DBuffer); DWORD ref; /* IDirectSound3DBufferImpl fields */ IDirectSoundBufferImpl* dsb; @@ -976,7 +976,7 @@ static DWORD WINAPI IDirectSoundBufferImpl_Release(LPDIRECTSOUNDBUFFER iface) { DeleteCriticalSection(&(This->lock)); - if (This->ds3db && This->ds3db->lpvtbl) + if (This->ds3db && ICOM_VTBL(This->ds3db)) IDirectSound3DBuffer_Release((LPDIRECTSOUND3DBUFFER)This->ds3db); if (This->parent) @@ -1242,7 +1242,7 @@ static HRESULT WINAPI IDirectSoundBufferImpl_QueryInterface( dsn->ref = 1; dsn->dsb = This; IDirectSoundBuffer_AddRef(iface); - dsn->lpvtbl = &dsnvt; + ICOM_VTBL(dsn) = &dsnvt; *ppobj = (LPVOID)dsn; return S_OK; } @@ -1356,7 +1356,7 @@ static HRESULT WINAPI IDirectSoundImpl_CreateSoundBuffer( (*ippdsb)->playpos = 0; (*ippdsb)->writepos = 0; (*ippdsb)->parent = NULL; - (*ippdsb)->lpvtbl = &dsbvt; + ICOM_VTBL(*ippdsb) = &dsbvt; (*ippdsb)->dsound = This; (*ippdsb)->playing = 0; (*ippdsb)->lVolAdjust = (1 << 15); @@ -1392,7 +1392,7 @@ static HRESULT WINAPI IDirectSoundImpl_CreateSoundBuffer( 0,sizeof(*ds3db)); ds3db->ref = 1; ds3db->dsb = (*ippdsb); - ds3db->lpvtbl = &ds3dbvt; + ICOM_VTBL(ds3db) = &ds3dbvt; (*ippdsb)->ds3db = ds3db; ds3db->ds3db.dwSize = sizeof(DS3DBUFFER); ds3db->ds3db.vPosition.x.x = 0.0; @@ -1543,7 +1543,7 @@ static HRESULT WINAPI IDirectSoundImpl_QueryInterface( This->listener = (IDirectSound3DListenerImpl*)HeapAlloc( GetProcessHeap(), 0, sizeof(*(This->listener))); This->listener->ref = 1; - This->listener->lpvtbl = &ds3dlvt; + ICOM_VTBL(This->listener) = &ds3dlvt; IDirectSound_AddRef(iface); This->listener->ds3dl.dwSize = sizeof(DS3DLISTENER); This->listener->ds3dl.vPosition.x.x = 0.0; @@ -2060,7 +2060,7 @@ static DWORD WINAPI DSOUND_MixPrimary(void) for (i = dsound->nrofbuffers - 1; i >= 0; i--) { dsb = dsound->buffers[i]; - if (!dsb || !(dsb->lpvtbl)) + if (!dsb || !(ICOM_VTBL(dsb))) continue; IDirectSoundBuffer_AddRef((LPDIRECTSOUNDBUFFER)dsb); if (dsb->buflen && dsb->playing) { @@ -2294,7 +2294,7 @@ HRESULT WINAPI DirectSoundCreate(REFGUID lpGUID,LPDIRECTSOUND *ppDS,IUnknown *pU return DSERR_OUTOFMEMORY; (*ippDS)->ref = 1; - (*ippDS)->lpvtbl = &dsvt; + ICOM_VTBL(*ippDS) = &dsvt; (*ippDS)->buffers = NULL; (*ippDS)->nrofbuffers = 0; @@ -2339,7 +2339,7 @@ HRESULT WINAPI DirectSoundCreate(REFGUID lpGUID,LPDIRECTSOUND *ppDS,IUnknown *pU typedef struct { /* IUnknown fields */ - ICOM_VTABLE(IClassFactory)* lpvtbl; + ICOM_VFIELD(IClassFactory); DWORD ref; } IClassFactoryImpl; diff --git a/dlls/ole32/bindctx.c b/dlls/ole32/bindctx.c index 97e9b1c53fe..546189b5159 100644 --- a/dlls/ole32/bindctx.c +++ b/dlls/ole32/bindctx.c @@ -31,7 +31,7 @@ typedef struct BindCtxObject{ /* BindCtx data strucrture */ typedef struct BindCtxImpl{ - ICOM_VTABLE(IBindCtx)* lpvtbl; /* VTable relative to the IBindCtx interface.*/ + ICOM_VFIELD(IBindCtx); /* VTable relative to the IBindCtx interface.*/ ULONG ref; /* reference counter for this object */ @@ -161,7 +161,7 @@ HRESULT WINAPI BindCtxImpl_Construct(BindCtxImpl* This) TRACE("(%p)\n",This); /* Initialize the virtual function table.*/ - This->lpvtbl = &VT_BindCtxImpl; + ICOM_VTBL(This) = &VT_BindCtxImpl; This->ref = 0; /* Initialize the BIND_OPTS2 structure */ diff --git a/dlls/ole32/clipboard.c b/dlls/ole32/clipboard.c index 952bb88e2b1..372f9bffeb2 100644 --- a/dlls/ole32/clipboard.c +++ b/dlls/ole32/clipboard.c @@ -109,7 +109,7 @@ typedef struct OLEClipbrd OLEClipbrd; typedef struct { /* IEnumFORMATETC VTable */ - ICOM_VTABLE(IEnumFORMATETC)* lpvtbl; + ICOM_VFIELD(IEnumFORMATETC); /* IEnumFORMATETC fields */ UINT posFmt; /* current enumerator position */ @@ -1434,7 +1434,7 @@ LPENUMFORMATETC OLEClipbrd_IEnumFORMATETC_Construct(UINT cfmt, const FORMATETC a return NULL; ef->ref = 0; - ef->lpvtbl = &efvt; + ICOM_VTBL(ef) = &efvt; ef->pUnkDataObj = pUnkDataObj; ef->posFmt = 0; diff --git a/dlls/ole32/compositemoniker.c b/dlls/ole32/compositemoniker.c index d727e4d4e31..a273f81b20e 100644 --- a/dlls/ole32/compositemoniker.c +++ b/dlls/ole32/compositemoniker.c @@ -38,7 +38,7 @@ typedef struct CompositeMonikerImpl{ /* EnumMoniker data structure */ typedef struct EnumMonikerImpl{ - ICOM_VTABLE(IEnumMoniker)* lpvtbl; /* VTable relative to the IEnumMoniker interface.*/ + ICOM_VFIELD(IEnumMoniker); /* VTable relative to the IEnumMoniker interface.*/ ULONG ref; /* reference counter for this object */ @@ -1606,7 +1606,7 @@ HRESULT WINAPI EnumMonikerImpl_CreateEnumMoniker(IMoniker** tabMoniker, return E_INVALIDARG; /* Initialize the virtual function table. */ - newEnumMoniker->lpvtbl = &VT_EnumMonikerImpl; + ICOM_VTBL(newEnumMoniker) = &VT_EnumMonikerImpl; newEnumMoniker->ref = 0; newEnumMoniker->tabSize=tabSize; diff --git a/dlls/ole32/hglobalstream.c b/dlls/ole32/hglobalstream.c index 73614253b7f..c0cd32379db 100644 --- a/dlls/ole32/hglobalstream.c +++ b/dlls/ole32/hglobalstream.c @@ -27,8 +27,8 @@ DEFAULT_DEBUG_CHANNEL(storage) */ struct HGLOBALStreamImpl { - ICOM_VTABLE(IStream) *lpvtbl; /* Needs to be the first item in the stuct - * since we want to cast this in a IStream pointer */ + ICOM_VFIELD(IStream); /* Needs to be the first item in the stuct + * since we want to cast this in a IStream pointer */ /* * Reference count @@ -201,7 +201,7 @@ HRESULT WINAPI GetHGlobalFromStream(IStream* pstm, HGLOBAL* phglobal) /* * Verify that the stream object was created with CreateStreamOnHGlobal. */ - if (pStream->lpvtbl == &HGLOBALStreamImpl_Vtbl) + if (ICOM_VTBL(pStream) == &HGLOBALStreamImpl_Vtbl) *phglobal = pStream->supportHandle; else { @@ -237,7 +237,7 @@ HGLOBALStreamImpl* HGLOBALStreamImpl_Construct( /* * Set-up the virtual function table and reference count. */ - newStream->lpvtbl = &HGLOBALStreamImpl_Vtbl; + ICOM_VTBL(newStream) = &HGLOBALStreamImpl_Vtbl; newStream->ref = 0; /* diff --git a/dlls/ole32/ifs.c b/dlls/ole32/ifs.c index 2bbdc223bca..3033bf8c097 100644 --- a/dlls/ole32/ifs.c +++ b/dlls/ole32/ifs.c @@ -26,7 +26,7 @@ DEFAULT_DEBUG_CHANNEL(relay) typedef struct { /* IUnknown fields */ - ICOM_VTABLE(IUnknown)* lpvtbl; + ICOM_VFIELD(IUnknown); DWORD ref; } IUnknownImpl; @@ -85,7 +85,7 @@ IUnknown_Constructor() { IUnknownImpl* unk; unk = (IUnknownImpl*)HeapAlloc(GetProcessHeap(),0,sizeof(IUnknownImpl)); - unk->lpvtbl = &uvt; + ICOM_VTBL(unk) = &uvt; unk->ref = 1; return (LPUNKNOWN)unk; } @@ -97,7 +97,7 @@ IUnknown_Constructor() { typedef struct { /* IUnknown fields */ - ICOM_VTABLE(IMalloc16)* lpvtbl; + ICOM_VFIELD(IMalloc16); DWORD ref; /* IMalloc16 fields */ /* Gmm, I think one is not enough, we should probably manage a list of @@ -221,7 +221,7 @@ IMalloc16_Constructor() { VTENT(DidAlloc); VTENT(HeapMinimize); #undef VTENT - This->lpvtbl = (ICOM_VTABLE(IMalloc16)*)SEGPTR_GET(msegvt16); + ICOM_VTBL(This) = (ICOM_VTABLE(IMalloc16)*)SEGPTR_GET(msegvt16); } This->ref = 1; /* FIXME: implement multiple heaps */ @@ -236,7 +236,7 @@ IMalloc16_Constructor() { typedef struct { /* IUnknown fields */ - ICOM_VTABLE(IMalloc)* lpvtbl; + ICOM_VFIELD(IMalloc); DWORD ref; } IMalloc32Impl; @@ -352,7 +352,7 @@ IMalloc_Constructor() { IMalloc32Impl* This; This = (IMalloc32Impl*)HeapAlloc(GetProcessHeap(),0,sizeof(IMalloc32Impl)); - This->lpvtbl = &VT_IMalloc32; + ICOM_VTBL(This) = &VT_IMalloc32; This->ref = 1; return (LPMALLOC)This; } diff --git a/dlls/ole32/memlockbytes.c b/dlls/ole32/memlockbytes.c index e40803595bb..410dc2f020d 100644 --- a/dlls/ole32/memlockbytes.c +++ b/dlls/ole32/memlockbytes.c @@ -27,7 +27,7 @@ struct HGLOBALLockBytesImpl * Needs to be the first item in the stuct * since we want to cast this in an ILockBytes pointer */ - ICOM_VTABLE(ILockBytes) *lpvtbl; + ICOM_VFIELD(ILockBytes); /* * Reference count @@ -157,7 +157,7 @@ HRESULT WINAPI GetHGlobalFromILockBytes(ILockBytes* plkbyt, HGLOBAL* phglobal) { HGLOBALLockBytesImpl* const pMemLockBytes = (HGLOBALLockBytesImpl*)plkbyt; - if (pMemLockBytes->lpvtbl == &HGLOBALLockBytesImpl_Vtbl) + if (ICOM_VTBL(pMemLockBytes) == &HGLOBALLockBytesImpl_Vtbl) *phglobal = pMemLockBytes->supportHandle; else *phglobal = 0; @@ -193,7 +193,7 @@ HGLOBALLockBytesImpl* HGLOBALLockBytesImpl_Construct(HGLOBAL hGlobal, /* * Set up the virtual function table and reference count. */ - newLockBytes->lpvtbl = &HGLOBALLockBytesImpl_Vtbl; + ICOM_VTBL(newLockBytes) = &HGLOBALLockBytesImpl_Vtbl; newLockBytes->ref = 0; /* diff --git a/dlls/ole32/moniker.c b/dlls/ole32/moniker.c index 32a9e6d8f94..370ea6f2e3d 100644 --- a/dlls/ole32/moniker.c +++ b/dlls/ole32/moniker.c @@ -28,7 +28,7 @@ typedef struct RunObject{ /* define de RunningObjectTableImpl structure */ typedef struct RunningObjectTableImpl{ - ICOM_VTABLE(IRunningObjectTable)* lpvtbl; + ICOM_VFIELD(IRunningObjectTable); ULONG ref; RunObject* runObjTab; /* pointe to the first object in the table */ @@ -189,7 +189,7 @@ HRESULT WINAPI RunningObjectTableImpl_Initialize() return E_OUTOFMEMORY; /* initialize the virtual table function */ - runningObjectTableInstance->lpvtbl = &VT_RunningObjectTableImpl; + ICOM_VTBL(runningObjectTableInstance) = &VT_RunningObjectTableImpl; /* the initial reference is set to "1" ! because if set to "0" it will be not practis when */ /* the ROT refered many times not in the same time (all the objects in the ROT will */ diff --git a/dlls/ole32/oleobj.c b/dlls/ole32/oleobj.c index 67c21f2e11f..aa5b9170da7 100644 --- a/dlls/ole32/oleobj.c +++ b/dlls/ole32/oleobj.c @@ -20,7 +20,7 @@ DEFAULT_DEBUG_CHANNEL(ole) */ typedef struct OleAdviseHolderImpl { - ICOM_VTABLE(IOleAdviseHolder)* lpvtbl; + ICOM_VFIELD(IOleAdviseHolder); DWORD ref; @@ -71,7 +71,7 @@ static LPOLEADVISEHOLDER OleAdviseHolderImpl_Constructor() 0, sizeof(OleAdviseHolderImpl)); - lpoah->lpvtbl = &oahvt; + ICOM_VTBL(lpoah) = &oahvt; lpoah->ref = 1; lpoah->maxSinks = 10; lpoah->arrayOfSinks = HeapAlloc(GetProcessHeap(), @@ -344,7 +344,7 @@ OleAdviseHolderImpl_SendOnClose (LPOLEADVISEHOLDER iface) */ typedef struct DataAdviseHolder { - ICOM_VTABLE(IDataAdviseHolder)* lpvtbl; + ICOM_VFIELD(IDataAdviseHolder); DWORD ref; } DataAdviseHolder; @@ -407,7 +407,7 @@ static IDataAdviseHolder* DataAdviseHolder_Constructor() 0, sizeof(DataAdviseHolder)); - newHolder->lpvtbl = &DataAdviseHolderImpl_VTable; + ICOM_VTBL(newHolder) = &DataAdviseHolderImpl_VTable; newHolder->ref = 1; return (IDataAdviseHolder*)newHolder; diff --git a/dlls/ole32/stg_stream.c b/dlls/ole32/stg_stream.c index 101cce29340..712ec86991c 100644 --- a/dlls/ole32/stg_stream.c +++ b/dlls/ole32/stg_stream.c @@ -69,8 +69,8 @@ StgStreamImpl* StgStreamImpl_Construct( /* * Set-up the virtual function table and reference count. */ - newStream->lpvtbl = &StgStreamImpl_Vtbl; - newStream->ref = 0; + ICOM_VTBL(newStream) = &StgStreamImpl_Vtbl; + newStream->ref = 0; /* * We want to nail-down the reference to the storage in case the diff --git a/dlls/ole32/storage.c b/dlls/ole32/storage.c index b6fd5862c20..e5360bbb1d4 100644 --- a/dlls/ole32/storage.c +++ b/dlls/ole32/storage.c @@ -671,7 +671,7 @@ STORAGE_get_free_pps_entry(HFILE hf) { typedef struct { /* IUnknown fields */ - ICOM_VTABLE(IStream16)* lpvtbl; + ICOM_VFIELD(IStream16); DWORD ref; /* IStream16 fields */ SEGPTR thisptr; /* pointer to this struct as segmented */ @@ -1144,7 +1144,7 @@ static void _create_istream16(LPSTREAM16 *str) { } } lpst = SEGPTR_NEW(IStream16Impl); - lpst->lpvtbl = segstrvt16; + ICOM_VTBL(lpst) = segstrvt16; lpst->ref = 1; lpst->thisptr = SEGPTR_GET(lpst); *str = (void*)lpst->thisptr; @@ -1156,7 +1156,7 @@ static void _create_istream16(LPSTREAM16 *str) { typedef struct { /* IUnknown fields */ - ICOM_VTABLE(IStream)* lpvtbl; + ICOM_VFIELD(IStream); DWORD ref; /* IStream32 fields */ struct storage_pps_entry stde; @@ -1212,7 +1212,7 @@ ULONG WINAPI IStream_fnRelease(IStream* iface) { typedef struct { /* IUnknown fields */ - ICOM_VTABLE(IStorage16)* lpvtbl; + ICOM_VFIELD(IStorage16); DWORD ref; /* IStorage16 fields */ SEGPTR thisptr; /* pointer to this struct as segmented */ @@ -1559,7 +1559,7 @@ static void _create_istorage16(LPSTORAGE16 *stg) { } } lpst = SEGPTR_NEW(IStorage16Impl); - lpst->lpvtbl = segstvt16; + ICOM_VTBL(lpst) = segstvt16; lpst->ref = 1; lpst->thisptr = SEGPTR_GET(lpst); *stg = (void*)lpst->thisptr; diff --git a/dlls/ole32/storage32.c b/dlls/ole32/storage32.c index 18996a280fd..e352019d572 100644 --- a/dlls/ole32/storage32.c +++ b/dlls/ole32/storage32.c @@ -2037,7 +2037,7 @@ HRESULT StorageImpl_Construct( /* * Initialize the virtual fgunction table. */ - This->lpvtbl = &Storage32Impl_Vtbl; + ICOM_VTBL(This) = &Storage32Impl_Vtbl; This->v_destructor = &StorageImpl_Destroy; /* @@ -3283,7 +3283,7 @@ StorageInternalImpl* StorageInternalImpl_Construct( /* * Initialize the virtual function table. */ - newStorage->lpvtbl = &Storage32InternalImpl_Vtbl; + ICOM_VTBL(newStorage) = &Storage32InternalImpl_Vtbl; newStorage->v_destructor = &StorageInternalImpl_Destroy; /* @@ -3354,8 +3354,8 @@ IEnumSTATSTGImpl* IEnumSTATSTGImpl_Construct( /* * Set-up the virtual function table and reference count. */ - newEnumeration->lpvtbl = &IEnumSTATSTGImpl_Vtbl; - newEnumeration->ref = 0; + ICOM_VTBL(newEnumeration) = &IEnumSTATSTGImpl_Vtbl; + newEnumeration->ref = 0; /* * We want to nail-down the reference to the storage in case the diff --git a/dlls/ole32/storage32.h b/dlls/ole32/storage32.h index 2e37b473132..564efbf19fe 100644 --- a/dlls/ole32/storage32.h +++ b/dlls/ole32/storage32.h @@ -179,8 +179,8 @@ ULARGE_INTEGER BIGBLOCKFILE_GetSize(LPBIGBLOCKFILE This); */ struct StorageBaseImpl { - ICOM_VTABLE(IStorage)* lpvtbl; /* Needs to be the first item in the stuct - * since we want to cast this in a Storage32 pointer */ + ICOM_VFIELD(IStorage); /* Needs to be the first item in the stuct + * since we want to cast this in a Storage32 pointer */ /* * Reference count of this object @@ -273,7 +273,7 @@ HRESULT WINAPI StorageBaseImpl_SetClass( */ struct StorageImpl { - ICOM_VTABLE(IStorage) *lpvtbl; /* Needs to be the first item in the stuct + ICOM_VFIELD(IStorage); /* Needs to be the first item in the stuct * since we want to cast this in a Storage32 pointer */ /* @@ -462,8 +462,8 @@ void Storage32Impl_SetExtDepotBlock(StorageImpl* This, */ struct StorageInternalImpl { - ICOM_VTABLE(IStorage) *lpvtbl; /* Needs to be the first item in the stuct - * since we want to cast this in a Storage32 pointer */ + ICOM_VFIELD(IStorage); /* Needs to be the first item in the stuct + * since we want to cast this in a Storage32 pointer */ /* * Declare the member of the Storage32BaseImpl class to allow @@ -506,7 +506,7 @@ HRESULT WINAPI StorageInternalImpl_Revert( */ struct IEnumSTATSTGImpl { - ICOM_VTABLE(IEnumSTATSTG) *lpvtbl; /* Needs to be the first item in the stuct + ICOM_VFIELD(IEnumSTATSTG); /* Needs to be the first item in the stuct * since we want to cast this in a IEnumSTATSTG pointer */ ULONG ref; /* Reference count */ @@ -591,7 +591,7 @@ INT IEnumSTATSTGImpl_FindParentProperty( */ struct StgStreamImpl { - ICOM_VTABLE(IStream) *lpvtbl; /* Needs to be the first item in the stuct + ICOM_VFIELD(IStream); /* Needs to be the first item in the stuct * since we want to cast this in a IStream pointer */ /* diff --git a/dlls/shell32/contmenu.c b/dlls/shell32/contmenu.c index f58b40e0610..84839d4b964 100644 --- a/dlls/shell32/contmenu.c +++ b/dlls/shell32/contmenu.c @@ -49,7 +49,7 @@ static struct ICOM_VTABLE(IContextMenu) cmvt = * IContextMenu Implementation */ typedef struct -{ ICOM_VTABLE(IContextMenu)* lpvtbl; +{ ICOM_VFIELD(IContextMenu); DWORD ref; IShellFolder* pSFParent; LPITEMIDLIST pidl; /* root pidl */ @@ -147,7 +147,7 @@ IContextMenu *IContextMenu_Constructor(LPSHELLFOLDER pSFParent, LPCITEMIDLIST pi UINT u; cm = (IContextMenuImpl*)HeapAlloc(GetProcessHeap(),0,sizeof(IContextMenuImpl)); - cm->lpvtbl=&cmvt; + ICOM_VTBL(cm)=&cmvt; cm->ref = 1; cm->pidl = ILClone(pidl); diff --git a/dlls/shell32/dataobject.c b/dlls/shell32/dataobject.c index 8342a48fde5..949beb70c13 100644 --- a/dlls/shell32/dataobject.c +++ b/dlls/shell32/dataobject.c @@ -24,7 +24,7 @@ DEFAULT_DEBUG_CHANNEL(shell) typedef struct { /* IUnknown fields */ - ICOM_VTABLE(IEnumFORMATETC)* lpvtbl; + ICOM_VFIELD(IEnumFORMATETC); DWORD ref; /* IEnumFORMATETC fields */ UINT posFmt; @@ -62,7 +62,7 @@ LPENUMFORMATETC IEnumFORMATETC_Constructor(UINT cfmt, const FORMATETC afmt[]) if(ef) { ef->ref=1; - ef->lpvtbl=&efvt; + ICOM_VTBL(ef)=&efvt; ef->countFmt = cfmt; ef->pFmt = SHAlloc (size); @@ -356,7 +356,7 @@ static void WINAPI IDLList_CleanList(LPIDLLIST this) typedef struct { /* IUnknown fields */ - ICOM_VTABLE(IDataObject)* lpvtbl; + ICOM_VFIELD(IDataObject); DWORD ref; /* IDataObject fields */ @@ -384,7 +384,7 @@ LPDATAOBJECT IDataObject_Constructor(HWND hwndOwner, LPITEMIDLIST pMyPidl, LPITE if (dto) { dto->ref=1; - dto->lpvtbl=&dtovt; + ICOM_VTBL(dto)=&dtovt; dto->pidl=ILClone(pMyPidl); /* fill the ItemID List List */ diff --git a/dlls/shell32/enumidlist.c b/dlls/shell32/enumidlist.c index 75cf748ad32..52ab64bd0ef 100644 --- a/dlls/shell32/enumidlist.c +++ b/dlls/shell32/enumidlist.c @@ -28,7 +28,7 @@ typedef struct tagENUMLIST typedef struct { - ICOM_VTABLE(IEnumIDList)* lpvtbl; + ICOM_VFIELD(IEnumIDList); DWORD ref; LPENUMLIST mpFirst; LPENUMLIST mpLast; @@ -309,7 +309,7 @@ IEnumIDList * IEnumIDList_Constructor( if (lpeidl) { lpeidl->ref = 1; - lpeidl->lpvtbl = &eidlvt; + ICOM_VTBL(lpeidl) = &eidlvt; switch (dwKind) { diff --git a/dlls/shell32/folders.c b/dlls/shell32/folders.c index 1e24e7964f1..93d106fa57a 100644 --- a/dlls/shell32/folders.c +++ b/dlls/shell32/folders.c @@ -25,7 +25,7 @@ DEFAULT_DEBUG_CHANNEL(shell) */ typedef struct -{ ICOM_VTABLE(IExtractIconA)* lpvtbl; +{ ICOM_VFIELD(IExtractIconA); DWORD ref; ICOM_VTABLE(IPersistFile)* lpvtblPersistFile; LPITEMIDLIST pidl; @@ -46,7 +46,7 @@ IExtractIconA* IExtractIconA_Constructor(LPCITEMIDLIST pidl) ei=(IExtractIconAImpl*)HeapAlloc(GetProcessHeap(),0,sizeof(IExtractIconAImpl)); ei->ref=1; - ei->lpvtbl = &eivt; + ICOM_VTBL(ei) = &eivt; ei->lpvtblPersistFile = &pfvt; ei->pidl=ILClone(pidl); diff --git a/dlls/shell32/if_macros.h b/dlls/shell32/if_macros.h index 3c299784c88..b15dcf374c2 100644 --- a/dlls/shell32/if_macros.h +++ b/dlls/shell32/if_macros.h @@ -3,23 +3,25 @@ #include "shlobj.h" -#define IShellBrowser_QueryInterface(p,a,b) (p)->lpvtbl->fnQueryInterface(p,a,b) -#define IShellBrowser_AddRef(p) (p)->lpvtbl->fnAddRef(p) -#define IShellBrowser_Release(p) (p)->lpvtbl->fnRelease(p) -#define IShellBrowser_GetWindow(p,a) (p)->lpvtbl->fnGetWindow(p,a) -#define IShellBrowser_ContextSensitiveHelp(p,a) (p)->lpvtbl->fnContextSensitiveHelp(p,a) -#define IShellBrowser_InsertMenusSB(p,a,b) (p)->lpvtbl->fnInsertMenusSB(p,a,b) -#define IShellBrowser_SetMenuSB(p,a,b,c) (p)->lpvtbl->fnSetMenuSB(p,a,b,c) -#define IShellBrowser_RemoveMenusSB(p,a) (p)->lpvtbl->fnRemoveMenusSB(p,a) -#define IShellBrowser_SetStatusTextSB(p,a) (p)->lpvtbl->fnSetStatusTextSB(p,a) -#define IShellBrowser_EnableModelessSB(p,a) (p)->lpvtbl->fnEnableModelessSB(p,a) -#define IShellBrowser_TranslateAcceleratorSB(p,a,b) (p)->lpvtbl->fnTranslateAcceleratorSB(p,a,b) -#define IShellBrowser_BrowseObject(p,a,b) (p)->lpvtbl->fnBrowseObject(p,a,b) -#define IShellBrowser_GetViewStateStream(p,a,b) (p)->lpvtbl->fnGetViewStateStream(p,a,b) -#define IShellBrowser_GetControlWindow(p,a,b) (p)->lpvtbl->fnGetControlWindow(p,a,b) -#define IShellBrowser_SendControlMsg(p,a,b,c,d,e) (p)->lpvtbl->fnSendControlMsg(p,a,b,c,d,e) -#define IShellBrowser_QueryActiveShellView(p,a) (p)->lpvtbl->fnQueryActiveShellView(p,a) -#define IShellBrowser_OnViewWindowActive(p,a) (p)->lpvtbl->fnOnViewWindowActive(p,a) -#define IShellBrowser_SetToolbarItems(p,a,b,c) (p)->lpvtbl->fnSetToolbarItems(p,a,b,c) +/*** IUnknown methods ***/ +#define IShellBrowser_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IShellBrowser_AddRef(p) ICOM_CALL (AddRef,p) +#define IShellBrowser_Release(p) ICOM_CALL (Release,p) +/*** IShellBrowser methods ***/ +#define IShellBrowser_GetWindow(p,a) ICOM_CALL1(GetWindow,p,a) +#define IShellBrowser_ContextSensitiveHelp(p,a) ICOM_CALL1(ContextSensitiveHelp,p,a) +#define IShellBrowser_InsertMenusSB(p,a,b) ICOM_CALL2(InsertMenusSB,p,a,b) +#define IShellBrowser_SetMenuSB(p,a,b,c) ICOM_CALL3(SetMenuSB,p,a,b,c) +#define IShellBrowser_RemoveMenusSB(p,a) ICOM_CALL1(RemoveMenusSB,p,a) +#define IShellBrowser_SetStatusTextSB(p,a) ICOM_CALL1(SetStatusTextSB,p,a) +#define IShellBrowser_EnableModelessSB(p,a) ICOM_CALL1(EnableModelessSB,p,a) +#define IShellBrowser_TranslateAcceleratorSB(p,a,b) ICOM_CALL2(TranslateAcceleratorSB,p,a,b) +#define IShellBrowser_BrowseObject(p,a,b) ICOM_CALL2(BrowseObject,p,a,b) +#define IShellBrowser_GetViewStateStream(p,a,b) ICOM_CALL2(GetViewStateStream,p,a,b) +#define IShellBrowser_GetControlWindow(p,a,b) ICOM_CALL2(GetControlWindow,p,a,b) +#define IShellBrowser_SendControlMsg(p,a,b,c,d,e) ICOM_CALL5(SendControlMsg,p,a,b,c,d,e) +#define IShellBrowser_QueryActiveShellView(p,a) ICOM_CALL1(QueryActiveShellView,p,a) +#define IShellBrowser_OnViewWindowActive(p,a) ICOM_CALL1(OnViewWindowActive,p,a) +#define IShellBrowser_SetToolbarItems(p,a,b,c) ICOM_CALL3(SetToolbarItems,p,a,b,c) #endif diff --git a/dlls/shell32/regstream.c b/dlls/shell32/regstream.c index c3ce6196cd7..2c10ac30bac 100644 --- a/dlls/shell32/regstream.c +++ b/dlls/shell32/regstream.c @@ -15,7 +15,7 @@ DEFAULT_DEBUG_CHANNEL(shell) typedef struct -{ ICOM_VTABLE(IStream)* lpvtbl; +{ ICOM_VFIELD(IStream); DWORD ref; HKEY hKey; LPSTR pszSubKey; @@ -35,7 +35,7 @@ IStream *IStream_Constructor(HKEY hKey, LPCSTR pszSubKey, LPCSTR pszValue, DWORD DWORD dwType; rstr = (ISHRegStream*)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(ISHRegStream)); - rstr->lpvtbl=&rstvt; + ICOM_VTBL(rstr)=&rstvt; rstr->ref = 1; if ( ERROR_SUCCESS == RegOpenKeyExA (hKey, pszSubKey, 0, KEY_READ, &(rstr->hKey))) diff --git a/dlls/shell32/shell32.spec b/dlls/shell32/shell32.spec index 67ba433caa2..97eb92f6f6c 100644 --- a/dlls/shell32/shell32.spec +++ b/dlls/shell32/shell32.spec @@ -323,7 +323,7 @@ init Shell32LibMain 314 stub StrNCmpW # proper ordinal unknown 315 stub StrNCpyA # proper ordinal unknown 316 stub StrNCpyW # proper ordinal unknown - 317 stub StrRChrA # proper ordinal unknown + 317 stdcall StrRChrA (str str long) StrRChrA # proper ordinal unknown 318 stub StrRChrIA # proper ordinal unknown 319 stub StrRChrIW # proper ordinal unknown 320 stdcall StrRChrW (wstr wstr long) StrRChrW # proper ordinal unknown diff --git a/dlls/shell32/shelllink.c b/dlls/shell32/shelllink.c index 63cc2dea0d4..2e78b101ace 100644 --- a/dlls/shell32/shelllink.c +++ b/dlls/shell32/shelllink.c @@ -68,7 +68,7 @@ static ICOM_VTABLE(IPersistStream) psvt; typedef struct { - ICOM_VTABLE(IShellLink)* lpvtbl; + ICOM_VFIELD(IShellLink); DWORD ref; ICOM_VTABLE(IShellLinkW)* lpvtblw; @@ -403,7 +403,7 @@ IShellLink * IShellLink_Constructor(BOOL bUnicode) sl = (IShellLinkImpl *)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IShellLinkImpl)); sl->ref = 1; - sl->lpvtbl = &slvt; + ICOM_VTBL(sl) = &slvt; sl->lpvtblw = &slvtw; sl->lpvtblPersistFile = &pfvt; sl->lpvtblPersistStream = &psvt; diff --git a/dlls/shell32/shellole.c b/dlls/shell32/shellole.c index b5246617b00..7bbe894bd55 100644 --- a/dlls/shell32/shellole.c +++ b/dlls/shell32/shellole.c @@ -194,7 +194,7 @@ DWORD WINAPI SHGetDesktopFolder(IShellFolder **psf) typedef struct { /* IUnknown fields */ - ICOM_VTABLE(IClassFactory)* lpvtbl; + ICOM_VFIELD(IClassFactory); DWORD ref; CLSID *rclsid; } IClassFactoryImpl; @@ -211,7 +211,7 @@ LPCLASSFACTORY IClassFactory_Constructor(REFCLSID rclsid) lpclf= (IClassFactoryImpl*)HeapAlloc(GetProcessHeap(),0,sizeof(IClassFactoryImpl)); lpclf->ref = 1; - lpclf->lpvtbl = &clfvt; + ICOM_VTBL(lpclf) = &clfvt; lpclf->rclsid = (CLSID*)rclsid; TRACE("(%p)->()\n",lpclf); @@ -354,7 +354,7 @@ typedef HRESULT (CALLBACK * LPFNCREATEINSTANCE)(IUnknown* pUnkOuter, REFIID riid typedef struct { - ICOM_VTABLE(IClassFactory)* lpvtbl; + ICOM_VFIELD(IClassFactory); DWORD ref; CLSID *rclsid; LPFNCREATEINSTANCE lpfnCI; @@ -377,7 +377,7 @@ IClassFactory * IDefClF_fnConstructor(LPFNCREATEINSTANCE lpfnCI, UINT * pcRefDll lpclf = (IDefClFImpl*)HeapAlloc(GetProcessHeap(),0,sizeof(IDefClFImpl)); lpclf->ref = 1; - lpclf->lpvtbl = &dclfvt; + ICOM_VTBL(lpclf) = &dclfvt; lpclf->lpfnCI = lpfnCI; lpclf->pcRefDll = pcRefDll; diff --git a/dlls/shell32/shlfolder.c b/dlls/shell32/shlfolder.c index 7659f1b2408..e7a007dda43 100644 --- a/dlls/shell32/shlfolder.c +++ b/dlls/shell32/shlfolder.c @@ -187,7 +187,7 @@ static HRESULT SHELL32_GetDisplayNameOfChild( typedef struct { - ICOM_VTABLE(IShellFolder)* lpvtbl; + ICOM_VFIELD(IShellFolder); DWORD ref; ICOM_VTABLE(IPersistFolder)* lpvtblPersistFolder; @@ -246,7 +246,7 @@ static IShellFolder * IShellFolder_Constructor( sf=(IGenericSFImpl*)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IGenericSFImpl)); sf->ref=1; - sf->lpvtbl=&sfvt; + ICOM_VTBL(sf)=&sfvt; sf->lpvtblPersistFolder=&psfvt; sf->lpvtblDropTarget=&dtvt; sf->pclsid = (CLSID*)&CLSID_SFFile; @@ -1014,7 +1014,7 @@ IShellFolder * ISF_Desktop_Constructor() sf=(IGenericSFImpl*)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IGenericSFImpl)); sf->ref=1; - sf->lpvtbl=&sfdvt; + ICOM_VTBL(sf)=&sfdvt; sf->absPidl=_ILCreateDesktop(); /* my qualified pidl */ TRACE("(%p)\n",sf); @@ -1365,7 +1365,7 @@ static IShellFolder * ISF_MyComputer_Constructor(void) sf=(IGenericSFImpl*)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IGenericSFImpl)); sf->ref=1; - sf->lpvtbl = &sfmcvt; + ICOM_VTBL(sf) = &sfmcvt; sf->lpvtblPersistFolder = &psfvt; sf->pclsid = (CLSID*)&CLSID_SFMyComp; sf->absPidl=_ILCreateMyComputer(); /* my qualified pidl */ diff --git a/dlls/shell32/shlview.c b/dlls/shell32/shlview.c index 1ba811ace59..d8ed936ab2b 100644 --- a/dlls/shell32/shlview.c +++ b/dlls/shell32/shlview.c @@ -40,7 +40,7 @@ typedef struct }LISTVIEW_SORT_INFO, *LPLISTVIEW_SORT_INFO; typedef struct -{ ICOM_VTABLE(IShellView)* lpvtbl; +{ ICOM_VFIELD(IShellView); DWORD ref; ICOM_VTABLE(IOleCommandTarget)* lpvtblOleCommandTarget; ICOM_VTABLE(IDropTarget)* lpvtblDropTarget; @@ -132,7 +132,7 @@ IShellView * IShellView_Constructor( IShellFolder * pFolder) { IShellViewImpl * sv; sv=(IShellViewImpl*)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IShellViewImpl)); sv->ref=1; - sv->lpvtbl=&svvt; + ICOM_VTBL(sv)=&svvt; sv->lpvtblOleCommandTarget=&ctvt; sv->lpvtblDropTarget=&dtvt; sv->lpvtblDropSource=&dsvt; diff --git a/dlls/shell32/shv_bg_cmenu.c b/dlls/shell32/shv_bg_cmenu.c index f36c28344c4..2fe691068f0 100644 --- a/dlls/shell32/shv_bg_cmenu.c +++ b/dlls/shell32/shv_bg_cmenu.c @@ -23,7 +23,7 @@ DEFAULT_DEBUG_CHANNEL(shell) * IContextMenu Implementation */ typedef struct -{ ICOM_VTABLE(IContextMenu)* lpvtbl; +{ ICOM_VFIELD(IContextMenu); DWORD ref; } BgCmImpl; @@ -38,7 +38,7 @@ IContextMenu *ISvBgCm_Constructor(void) BgCmImpl* cm; cm = (BgCmImpl*)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(BgCmImpl)); - cm->lpvtbl=&cmvt; + ICOM_VTBL(cm)=&cmvt; cm->ref = 1; TRACE("(%p)->()\n",cm); diff --git a/graphics/d3d_private.h b/graphics/d3d_private.h index f8bbab38a6e..8ac67cc4fb5 100644 --- a/graphics/d3d_private.h +++ b/graphics/d3d_private.h @@ -35,7 +35,7 @@ typedef struct IDirect3DDevice2Impl IDirect3DDevice2Impl; struct IDirect3DImpl { /* IUnknown fields */ - ICOM_VTABLE(IDirect3D)* lpvtbl; + ICOM_VFIELD(IDirect3D); DWORD ref; /* IDirect3D fields */ IDirectDrawImpl* ddraw; @@ -47,7 +47,7 @@ struct IDirect3DImpl struct IDirect3D2Impl { /* IUnknown fields */ - ICOM_VTABLE(IDirect3D2)* lpvtbl; + ICOM_VFIELD(IDirect3D2); DWORD ref; /* IDirect3D2 fields */ IDirectDrawImpl* ddraw; @@ -59,7 +59,7 @@ struct IDirect3D2Impl struct IDirect3DLightImpl { /* IUnknown fields */ - ICOM_VTABLE(IDirect3DLight)* lpvtbl; + ICOM_VFIELD(IDirect3DLight); DWORD ref; /* IDirect3DLight fields */ union { @@ -89,7 +89,7 @@ struct IDirect3DLightImpl struct IDirect3DMaterial2Impl { /* IUnknown fields */ - ICOM_VTABLE(IDirect3DMaterial2)* lpvtbl; + ICOM_VFIELD(IDirect3DMaterial2); DWORD ref; /* IDirect3DMaterial2 fields */ union { @@ -113,7 +113,7 @@ struct IDirect3DMaterial2Impl struct IDirect3DTexture2Impl { /* IUnknown fields */ - ICOM_VTABLE(IDirect3DTexture2)* lpvtbl; + ICOM_VFIELD(IDirect3DTexture2); DWORD ref; /* IDirect3DTexture2 fields */ void* D3Ddevice; /* I put (void *) to use the same pointer for both @@ -130,7 +130,7 @@ struct IDirect3DTexture2Impl struct IDirect3DViewport2Impl { /* IUnknown fields */ - ICOM_VTABLE(IDirect3DViewport2)* lpvtbl; + ICOM_VFIELD(IDirect3DViewport2); DWORD ref; /* IDirect3DViewport2 fields */ union { @@ -171,7 +171,7 @@ struct IDirect3DViewport2Impl struct IDirect3DExecuteBufferImpl { /* IUnknown fields */ - ICOM_VTABLE(IDirect3DExecuteBuffer)* lpvtbl; + ICOM_VFIELD(IDirect3DExecuteBuffer); DWORD ref; /* IDirect3DExecuteBuffer fields */ IDirect3DDeviceImpl* d3ddev; @@ -198,7 +198,7 @@ struct IDirect3DExecuteBufferImpl struct IDirect3DDeviceImpl { /* IUnknown fields */ - ICOM_VTABLE(IDirect3DDevice)* lpvtbl; + ICOM_VFIELD(IDirect3DDevice); DWORD ref; /* IDirect3DDevice fields */ IDirect3DImpl* d3d; @@ -216,7 +216,7 @@ struct IDirect3DDeviceImpl struct IDirect3DDevice2Impl { /* IUnknown fields */ - ICOM_VTABLE(IDirect3DDevice2)* lpvtbl; + ICOM_VFIELD(IDirect3DDevice2); DWORD ref; /* IDirect3DDevice fields */ IDirect3D2Impl* d3d; diff --git a/graphics/d3ddevices.c b/graphics/d3ddevices.c index f1e1f3e8649..4dde9e8b17e 100644 --- a/graphics/d3ddevices.c +++ b/graphics/d3ddevices.c @@ -175,7 +175,7 @@ int is_OpenGL(REFCLSID rguid, IDirectDrawSurfaceImpl* surface, IDirect3DDevice2I *device = HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(OpenGL_IDirect3DDevice2)); odev = (OpenGL_IDirect3DDevice2 *) (*device); (*device)->ref = 1; - (*device)->lpvtbl = &OpenGL_vtable; + ICOM_VTBL(*device) = &OpenGL_vtable; (*device)->d3d = d3d; (*device)->surface = surface; @@ -1239,7 +1239,7 @@ int is_OpenGL_dx3(REFCLSID rguid, IDirectDrawSurfaceImpl* surface, IDirect3DDevi *device = HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(OpenGL_IDirect3DDevice)); odev = (OpenGL_IDirect3DDevice *) (*device); (*device)->ref = 1; - (*device)->lpvtbl = &OpenGL_vtable_dx3; + ICOM_VTBL(*device) = &OpenGL_vtable_dx3; (*device)->d3d = NULL; (*device)->surface = surface; diff --git a/graphics/d3dexecutebuffer.c b/graphics/d3dexecutebuffer.c index 5976d30a22f..559ccae971d 100644 --- a/graphics/d3dexecutebuffer.c +++ b/graphics/d3dexecutebuffer.c @@ -671,7 +671,7 @@ LPDIRECT3DEXECUTEBUFFER d3dexecutebuffer_create(IDirect3DDeviceImpl* d3ddev, LPD eb = HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(IDirect3DExecuteBufferImpl)); eb->ref = 1; - eb->lpvtbl = &executebuffer_vtable; + ICOM_VTBL(eb) = &executebuffer_vtable; eb->d3ddev = d3ddev; /* Initializes memory */ diff --git a/graphics/d3dlight.c b/graphics/d3dlight.c index 9a6a20d21bc..f8508b72c7e 100644 --- a/graphics/d3dlight.c +++ b/graphics/d3dlight.c @@ -104,7 +104,7 @@ LPDIRECT3DLIGHT d3dlight_create(IDirect3D2Impl* d3d2) light = HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(IDirect3DLightImpl)); light->ref = 1; - light->lpvtbl = &light_vtable; + ICOM_VTBL(light) = &light_vtable; light->d3d.d3d2 = d3d2; light->type = D3D_2; @@ -122,7 +122,7 @@ LPDIRECT3DLIGHT d3dlight_create_dx3(IDirect3DImpl* d3d1) light = HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(IDirect3DLightImpl)); light->ref = 1; - light->lpvtbl = &light_vtable; + ICOM_VTBL(light) = &light_vtable; light->d3d.d3d1 = d3d1; light->type = D3D_1; diff --git a/graphics/d3dmaterial.c b/graphics/d3dmaterial.c index b08d0dd7d8e..dbf41372bee 100644 --- a/graphics/d3dmaterial.c +++ b/graphics/d3dmaterial.c @@ -70,7 +70,7 @@ LPDIRECT3DMATERIAL2 d3dmaterial2_create(IDirect3D2Impl* d3d2) mat = HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(IDirect3DMaterial2Impl)); mat->ref = 1; - mat->lpvtbl = &material2_vtable; + ICOM_VTBL(mat) = &material2_vtable; mat->use_d3d2 = 1; mat->d3d.d3d2 = d3d2; @@ -86,7 +86,7 @@ LPDIRECT3DMATERIAL d3dmaterial_create(IDirect3DImpl* d3d1) mat = HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(IDirect3DMaterial2Impl)); mat->ref = 1; - mat->lpvtbl = (ICOM_VTABLE(IDirect3DMaterial2)*)&material_vtable; + ICOM_VTBL(mat) = (ICOM_VTABLE(IDirect3DMaterial2)*)&material_vtable; mat->use_d3d2 = 0; mat->d3d.d3d1 = d3d1; diff --git a/graphics/d3dtexture.c b/graphics/d3dtexture.c index e76d387fefa..7581faaa0ac 100644 --- a/graphics/d3dtexture.c +++ b/graphics/d3dtexture.c @@ -103,7 +103,7 @@ LPDIRECT3DTEXTURE2 d3dtexture2_create(IDirectDrawSurface4Impl* surf) tex = HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(IDirect3DTexture2Impl)); tex->ref = 1; - tex->lpvtbl = &texture2_vtable; + ICOM_VTBL(tex) = &texture2_vtable; tex->surface = surf; return (LPDIRECT3DTEXTURE2)tex; @@ -118,7 +118,7 @@ LPDIRECT3DTEXTURE d3dtexture_create(IDirectDrawSurface4Impl* surf) tex = HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(IDirect3DTexture2Impl)); tex->ref = 1; - tex->lpvtbl = (ICOM_VTABLE(IDirect3DTexture2)*)&texture_vtable; + ICOM_VTBL(tex) = (ICOM_VTABLE(IDirect3DTexture2)*)&texture_vtable; tex->surface = surf; return (LPDIRECT3DTEXTURE)tex; diff --git a/graphics/d3dviewport.c b/graphics/d3dviewport.c index bb25364b904..ccc671ac7bd 100644 --- a/graphics/d3dviewport.c +++ b/graphics/d3dviewport.c @@ -45,7 +45,7 @@ LPDIRECT3DVIEWPORT2 d3dviewport2_create(IDirect3D2Impl* d3d2) vp = HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(IDirect3DViewport2Impl)); vp->ref = 1; - vp->lpvtbl = &viewport2_vtable; + ICOM_VTBL(vp) = &viewport2_vtable; vp->d3d.d3d2 = d3d2; vp->use_d3d2 = 1; @@ -65,7 +65,7 @@ LPDIRECT3DVIEWPORT d3dviewport_create(IDirect3DImpl* d3d1) vp = HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(IDirect3DViewport2Impl)); vp->ref = 1; - vp->lpvtbl = &viewport2_vtable; + ICOM_VTBL(vp) = &viewport2_vtable; vp->d3d.d3d1 = d3d1; vp->use_d3d2 = 0; diff --git a/graphics/ddraw.c b/graphics/ddraw.c index 41619e68b96..75a75553b2a 100644 --- a/graphics/ddraw.c +++ b/graphics/ddraw.c @@ -2196,7 +2196,7 @@ HRESULT WINAPI DirectDrawCreateClipper( DWORD dwFlags, TRACE("(%08lx,%p,%p)\n", dwFlags, ilplpDDClipper, pUnkOuter); *ilplpDDClipper = (IDirectDrawClipperImpl*)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(IDirectDrawClipperImpl)); - (*ilplpDDClipper)->lpvtbl = &ddclipvt; + ICOM_VTBL(*ilplpDDClipper) = &ddclipvt; (*ilplpDDClipper)->ref = 1; return DD_OK; @@ -2518,7 +2518,7 @@ static HRESULT WINAPI IDirect3DImpl_QueryInterface( d3d->ref = 1; d3d->ddraw = This->ddraw; IDirect3D_AddRef(iface); - d3d->lpvtbl = &d3d2vt; + ICOM_VTBL(d3d) = &d3d2vt; *obj = d3d; TRACE(" Creating IDirect3D2 interface (%p)\n", *obj); @@ -2676,7 +2676,7 @@ static HRESULT WINAPI IDirect3D2Impl_QueryInterface( d3d->ref = 1; d3d->ddraw = This->ddraw; IDirect3D2_AddRef(iface); - d3d->lpvtbl = &d3dvt; + ICOM_VTBL(d3d) = &d3dvt; *obj = d3d; TRACE(" Creating IDirect3D interface (%p)\n", *obj); @@ -2865,7 +2865,7 @@ static HRESULT WINAPI DGA_IDirectDraw2Impl_CreateSurface( IDirectDraw2_AddRef(iface); (*ilpdsf)->ref = 1; - (*ilpdsf)->lpvtbl = (ICOM_VTABLE(IDirectDrawSurface)*)&dga_dds4vt; + ICOM_VTBL(*ilpdsf) = (ICOM_VTABLE(IDirectDrawSurface)*)&dga_dds4vt; (*ilpdsf)->s.ddraw = This; (*ilpdsf)->s.palette = NULL; (*ilpdsf)->t.dga.fb_height = -1; /* This is to have non-on screen surfaces freed */ @@ -2927,7 +2927,7 @@ static HRESULT WINAPI DGA_IDirectDraw2Impl_CreateSurface( ); IDirectDraw2_AddRef(iface); back->ref = 1; - back->lpvtbl = (ICOM_VTABLE(IDirectDrawSurface4)*)&dga_dds4vt; + ICOM_VTBL(back) = (ICOM_VTABLE(IDirectDrawSurface4)*)&dga_dds4vt; for (i=0;i<32;i++) if (!(This->e.dga.vpmask & (1<s.ddraw = This; (*ilpdsf)->ref = 1; - (*ilpdsf)->lpvtbl = (ICOM_VTABLE(IDirectDrawSurface)*)&xlib_dds4vt; + ICOM_VTBL(*ilpdsf) = (ICOM_VTABLE(IDirectDrawSurface)*)&xlib_dds4vt; (*ilpdsf)->s.palette = NULL; (*ilpdsf)->t.xlib.image = NULL; /* This is for off-screen buffers */ @@ -3182,7 +3182,7 @@ static HRESULT WINAPI Xlib_IDirectDraw2Impl_CreateSurface( back->s.ddraw = This; back->ref = 1; - back->lpvtbl = (ICOM_VTABLE(IDirectDrawSurface4)*)&xlib_dds4vt; + ICOM_VTBL(back) = (ICOM_VTABLE(IDirectDrawSurface4)*)&xlib_dds4vt; /* Copy the surface description from the front buffer */ back->s.surface_desc = (*ilpdsf)->s.surface_desc; @@ -3819,7 +3819,7 @@ static HRESULT WINAPI IDirectDraw2Impl_CreateClipper( ); *ilpddclip = (IDirectDrawClipperImpl*)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(IDirectDrawClipperImpl)); (*ilpddclip)->ref = 1; - (*ilpddclip)->lpvtbl = &ddclipvt; + ICOM_VTBL(*ilpddclip) = &ddclipvt; return DD_OK; } @@ -3876,7 +3876,7 @@ static HRESULT WINAPI DGA_IDirectDraw2Impl_CreatePalette( TRACE("(%p)->(%08lx,%p,%p,%p)\n",This,dwFlags,palent,ilpddpal,lpunk); res = common_IDirectDraw2Impl_CreatePalette(This,dwFlags,palent,ilpddpal,lpunk,&xsize); if (res != 0) return res; - (*ilpddpal)->lpvtbl = &dga_ddpalvt; + ICOM_VTBL(*ilpddpal) = &dga_ddpalvt; if (This->d.directdraw_pixelformat.u.dwRGBBitCount<=8) { (*ilpddpal)->cm = TSXCreateColormap(display,DefaultRootWindow(display),DefaultVisualOfScreen(X11DRV_GetXScreen()),AllocAll); } else { @@ -3910,7 +3910,7 @@ static HRESULT WINAPI Xlib_IDirectDraw2Impl_CreatePalette( TRACE("(%p)->(%08lx,%p,%p,%p)\n",This,dwFlags,palent,ilpddpal,lpunk); res = common_IDirectDraw2Impl_CreatePalette(This,dwFlags,palent,ilpddpal,lpunk,&xsize); if (res != 0) return res; - (*ilpddpal)->lpvtbl = &xlib_ddpalvt; + ICOM_VTBL(*ilpddpal) = &xlib_ddpalvt; return DD_OK; } @@ -4013,7 +4013,7 @@ static HRESULT WINAPI DGA_IDirectDraw2Impl_QueryInterface( return S_OK; } if ( IsEqualGUID( &IID_IDirectDraw, refiid ) ) { - This->lpvtbl = (ICOM_VTABLE(IDirectDraw2)*)&dga_ddvt; + ICOM_VTBL(This) = (ICOM_VTABLE(IDirectDraw2)*)&dga_ddvt; IDirectDraw2_AddRef(iface); *obj = This; @@ -4022,7 +4022,7 @@ static HRESULT WINAPI DGA_IDirectDraw2Impl_QueryInterface( return S_OK; } if ( IsEqualGUID( &IID_IDirectDraw2, refiid ) ) { - This->lpvtbl = (ICOM_VTABLE(IDirectDraw2)*)&dga_dd2vt; + ICOM_VTBL(This) = (ICOM_VTABLE(IDirectDraw2)*)&dga_dd2vt; IDirectDraw2_AddRef(iface); *obj = This; @@ -4031,7 +4031,7 @@ static HRESULT WINAPI DGA_IDirectDraw2Impl_QueryInterface( return S_OK; } if ( IsEqualGUID( &IID_IDirectDraw4, refiid ) ) { - This->lpvtbl = (ICOM_VTABLE(IDirectDraw2)*)&dga_dd4vt; + ICOM_VTBL(This) = (ICOM_VTABLE(IDirectDraw2)*)&dga_dd4vt; IDirectDraw2_AddRef(iface); *obj = This; @@ -4046,7 +4046,7 @@ static HRESULT WINAPI DGA_IDirectDraw2Impl_QueryInterface( d3d->ref = 1; d3d->ddraw = (IDirectDrawImpl*)This; IDirectDraw2_AddRef(iface); - d3d->lpvtbl = &d3dvt; + ICOM_VTBL(d3d) = &d3dvt; *obj = d3d; TRACE(" Creating IDirect3D interface (%p)\n", *obj); @@ -4060,7 +4060,7 @@ static HRESULT WINAPI DGA_IDirectDraw2Impl_QueryInterface( d3d->ref = 1; d3d->ddraw = (IDirectDrawImpl*)This; IDirectDraw2_AddRef(iface); - d3d->lpvtbl = &d3d2vt; + ICOM_VTBL(d3d) = &d3d2vt; *obj = d3d; TRACE(" Creating IDirect3D2 interface (%p)\n", *obj); @@ -4089,7 +4089,7 @@ static HRESULT WINAPI Xlib_IDirectDraw2Impl_QueryInterface( return S_OK; } if ( IsEqualGUID( &IID_IDirectDraw, refiid ) ) { - This->lpvtbl = (ICOM_VTABLE(IDirectDraw2)*)&xlib_ddvt; + ICOM_VTBL(This) = (ICOM_VTABLE(IDirectDraw2)*)&xlib_ddvt; IDirectDraw2_AddRef(iface); *obj = This; @@ -4098,7 +4098,7 @@ static HRESULT WINAPI Xlib_IDirectDraw2Impl_QueryInterface( return S_OK; } if ( IsEqualGUID( &IID_IDirectDraw2, refiid ) ) { - This->lpvtbl = (ICOM_VTABLE(IDirectDraw2)*)&xlib_dd2vt; + ICOM_VTBL(This) = (ICOM_VTABLE(IDirectDraw2)*)&xlib_dd2vt; IDirectDraw2_AddRef(iface); *obj = This; @@ -4107,7 +4107,7 @@ static HRESULT WINAPI Xlib_IDirectDraw2Impl_QueryInterface( return S_OK; } if ( IsEqualGUID( &IID_IDirectDraw4, refiid ) ) { - This->lpvtbl = (ICOM_VTABLE(IDirectDraw2)*)&xlib_dd4vt; + ICOM_VTBL(This) = (ICOM_VTABLE(IDirectDraw2)*)&xlib_dd4vt; IDirectDraw2_AddRef(iface); *obj = This; @@ -4122,7 +4122,7 @@ static HRESULT WINAPI Xlib_IDirectDraw2Impl_QueryInterface( d3d->ref = 1; d3d->ddraw = (IDirectDrawImpl*)This; IDirectDraw2_AddRef(iface); - d3d->lpvtbl = &d3dvt; + ICOM_VTBL(d3d) = &d3dvt; *obj = d3d; TRACE(" Creating IDirect3D interface (%p)\n", *obj); @@ -4136,7 +4136,7 @@ static HRESULT WINAPI Xlib_IDirectDraw2Impl_QueryInterface( d3d->ref = 1; d3d->ddraw = (IDirectDrawImpl*)This; IDirectDraw2_AddRef(iface); - d3d->lpvtbl = &d3d2vt; + ICOM_VTBL(d3d) = &d3d2vt; *obj = d3d; TRACE(" Creating IDirect3D2 interface (%p)\n", *obj); @@ -4927,7 +4927,7 @@ static HRESULT WINAPI DGA_DirectDrawCreate( LPDIRECTDRAW *lplpDD, LPUNKNOWN pUnk return DDERR_GENERIC; } *ilplpDD = (IDirectDrawImpl*)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(IDirectDrawImpl)); - (*ilplpDD)->lpvtbl = &dga_ddvt; + ICOM_VTBL(*ilplpDD) = &dga_ddvt; (*ilplpDD)->ref = 1; TSXF86DGAQueryVersion(display,&major,&minor); TRACE("XF86DGA is version %d.%d\n",major,minor); @@ -4997,7 +4997,7 @@ static HRESULT WINAPI Xlib_DirectDrawCreate( LPDIRECTDRAW *lplpDD, LPUNKNOWN pUn int depth; *ilplpDD = (IDirectDrawImpl*)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(IDirectDrawImpl)); - (*ilplpDD)->lpvtbl = &xlib_ddvt; + ICOM_VTBL(*ilplpDD) = &xlib_ddvt; (*ilplpDD)->ref = 1; (*ilplpDD)->d.drawable = 0; /* in SetDisplayMode */ @@ -5097,7 +5097,7 @@ HRESULT WINAPI DirectDrawCreate( LPGUID lpGUID, LPDIRECTDRAW *lplpDD, LPUNKNOWN typedef struct { /* IUnknown fields */ - ICOM_VTABLE(IClassFactory)* lpvtbl; + ICOM_VFIELD(IClassFactory); DWORD ref; } IClassFactoryImpl; diff --git a/graphics/ddraw_private.h b/graphics/ddraw_private.h index e5d8587e280..e55fbb02db6 100644 --- a/graphics/ddraw_private.h +++ b/graphics/ddraw_private.h @@ -26,7 +26,7 @@ typedef struct IDirectDrawColorControlImpl IDirectDrawColorControlImpl; struct IDirectDrawPaletteImpl { /* IUnknown fields */ - ICOM_VTABLE(IDirectDrawPalette)* lpvtbl; + ICOM_VFIELD(IDirectDrawPalette); DWORD ref; /* IDirectDrawPalette fields */ IDirectDrawImpl* ddraw; @@ -43,7 +43,7 @@ struct IDirectDrawPaletteImpl struct IDirectDrawClipperImpl { /* IUnknown fields */ - ICOM_VTABLE(IDirectDrawClipper)* lpvtbl; + ICOM_VFIELD(IDirectDrawClipper); DWORD ref; /* IDirectDrawClipper fields */ /* none */ @@ -92,7 +92,7 @@ struct _xlib_directdrawdata struct IDirectDrawImpl { /* IUnknown fields */ - ICOM_VTABLE(IDirectDraw)* lpvtbl; + ICOM_VFIELD(IDirectDraw); DWORD ref; /* IDirectDraw fields */ struct _common_directdrawdata d; @@ -108,7 +108,7 @@ struct IDirectDrawImpl struct IDirectDraw2Impl { /* IUnknown fields */ - ICOM_VTABLE(IDirectDraw2)* lpvtbl; + ICOM_VFIELD(IDirectDraw2); DWORD ref; /* IDirectDraw2 fields */ struct _common_directdrawdata d; @@ -124,7 +124,7 @@ struct IDirectDraw2Impl struct IDirectDraw4Impl { /* IUnknown fields */ - ICOM_VTABLE(IDirectDraw4)* lpvtbl; + ICOM_VFIELD(IDirectDraw4); DWORD ref; /* IDirectDraw4 fields */ struct _common_directdrawdata d; @@ -176,7 +176,7 @@ struct _xlib_directdrawsurface struct IDirectDrawSurfaceImpl { /* IUnknown fields */ - ICOM_VTABLE(IDirectDrawSurface)* lpvtbl; + ICOM_VFIELD(IDirectDrawSurface); DWORD ref; /* IDirectDrawSurface fields */ struct _common_directdrawsurface s; @@ -192,7 +192,7 @@ struct IDirectDrawSurfaceImpl struct IDirectDrawSurface2Impl { /* IUnknown fields */ - ICOM_VTABLE(IDirectDrawSurface2)* lpvtbl; + ICOM_VFIELD(IDirectDrawSurface2); DWORD ref; /* IDirectDrawSurface2 fields */ struct _common_directdrawsurface s; @@ -208,7 +208,7 @@ struct IDirectDrawSurface2Impl struct IDirectDrawSurface3Impl { /* IUnknown fields */ - ICOM_VTABLE(IDirectDrawSurface3)* lpvtbl; + ICOM_VFIELD(IDirectDrawSurface3); DWORD ref; /* IDirectDrawSurface3 fields */ struct _common_directdrawsurface s; @@ -224,7 +224,7 @@ struct IDirectDrawSurface3Impl struct IDirectDrawSurface4Impl { /* IUnknown fields */ - ICOM_VTABLE(IDirectDrawSurface4)* lpvtbl; + ICOM_VFIELD(IDirectDrawSurface4); DWORD ref; /* IDirectDrawSurface4 fields */ struct _common_directdrawsurface s; @@ -245,7 +245,7 @@ struct _surface_chain { struct IDirectDrawColorControlImpl { /* IUnknown fields */ - ICOM_VTABLE(IDirectDrawColorControl)* lpvtbl; + ICOM_VFIELD(IDirectDrawColorControl); DWORD ref; /* IDirectDrawColorControl fields */ /* none */ diff --git a/programs/avitools/aviplay.c b/programs/avitools/aviplay.c index 1931af2f4d4..97cab63d2a4 100644 --- a/programs/avitools/aviplay.c +++ b/programs/avitools/aviplay.c @@ -166,7 +166,7 @@ HRESULT (WINAPI *fnAVIStreamGetFrameClose)(PGETFRAME pg); fprintf(stderr,"DirectDrawCreate: 0x%08lx\n",hres); exit(1); } - hres = ddraw->lpvtbl->fnSetDisplayMode(ddraw,bmi->biWidth,bmi->biHeight,bmi->biBitCount); + hres = IDirectDraw_SetDisplayMode(ddraw,bmi->biWidth,bmi->biHeight,bmi->biBitCount); if (hres) { fprintf(stderr,"ddraw.SetDisplayMode: 0x%08lx (change resolution!)\n",hres); exit(1); @@ -174,7 +174,7 @@ HRESULT (WINAPI *fnAVIStreamGetFrameClose)(PGETFRAME pg); dsdesc.dwSize=sizeof(dsdesc); dsdesc.dwFlags = DDSD_CAPS; dsdesc.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE; - hres = ddraw->lpvtbl->fnCreateSurface(ddraw,&dsdesc,&dsurf,NULL); + hres = IDirectDraw_CreateSurface(ddraw,&dsdesc,&dsurf,NULL); if (hres) { fprintf(stderr,"ddraw.CreateSurface: 0x%08lx\n",hres); exit(1); @@ -183,18 +183,18 @@ HRESULT (WINAPI *fnAVIStreamGetFrameClose)(PGETFRAME pg); RGBQUAD *rgb = (RGBQUAD*)(bmi+1); int i; - hres = ddraw->lpvtbl->fnCreatePalette(ddraw,DDPCAPS_8BIT,NULL,&dpal,NULL); + hres = IDirectDraw_CreatePalette(ddraw,DDPCAPS_8BIT,NULL,&dpal,NULL); if (hres) { fprintf(stderr,"ddraw.CreateSurface: 0x%08lx\n",hres); exit(1); } - dsurf->lpvtbl->fnSetPalette(dsurf,dpal); + IDirectDrawSurface_SetPalette(dsurf,dpal); for (i=0;ibiClrUsed;i++) { palent[i].peRed = rgb[i].rgbRed; palent[i].peBlue = rgb[i].rgbBlue; palent[i].peGreen = rgb[i].rgbGreen; } - dpal->lpvtbl->fnSetEntries(dpal,0,0,bmi->biClrUsed,palent); + IDirectDrawPalette_SetEntries(dpal,0,0,bmi->biClrUsed,palent); } else dpal = NULL; /********************* end display setup *******************************/ @@ -234,11 +234,11 @@ HRESULT (WINAPI *fnAVIStreamGetFrameClose)(PGETFRAME pg); palent[i].peBlue = rgb[i].rgbBlue; palent[i].peGreen = rgb[i].rgbGreen; } - dpal->lpvtbl->fnSetEntries(dpal,0,0,bmi->biClrUsed,palent); + IDirectDrawPalette_SetEntries(dpal,0,0,bmi->biClrUsed,palent); } } dsdesc.dwSize = sizeof(dsdesc); - hres = dsurf->lpvtbl->fnLock(dsurf,NULL,&dsdesc,DDLOCK_WRITEONLY,0); + hres = IDirectDrawSurface_Lock(dsurf,NULL,&dsdesc,DDLOCK_WRITEONLY,0); if (hres) { fprintf(stderr,"dsurf.Lock: 0x%08lx\n",hres); exit(1); @@ -250,14 +250,14 @@ HRESULT (WINAPI *fnAVIStreamGetFrameClose)(PGETFRAME pg); bytesline ); } - dsurf->lpvtbl->fnUnlock(dsurf,dsdesc.y.lpSurface); + IDirectDrawSurface_Unlock(dsurf,dsdesc.y.lpSurface); } tend = time(NULL); fnAVIStreamGetFrameClose(vidgetframe); - ((IUnknown*)dsurf)->lpvtbl->fnRelease((IUnknown*)dsurf); - ddraw->lpvtbl->fnRestoreDisplayMode(ddraw); - ((IUnknown*)ddraw)->lpvtbl->fnRelease((IUnknown*)ddraw); + IDirectDrawSurface_Release(dsurf); + IDirectDraw_RestoreDisplayMode(ddraw); + IDirectDraw_Release(ddraw); if (vids) fnAVIStreamRelease(vids); if (auds) fnAVIStreamRelease(auds); fprintf(stderr,"%d frames at %g frames/s\n",pos,pos*1.0/(tend-tstart)); diff --git a/windows/dinput.c b/windows/dinput.c index 277381d1ecc..a8b0175ce42 100644 --- a/windows/dinput.c +++ b/windows/dinput.c @@ -67,7 +67,7 @@ typedef struct SysMouseAImpl SysMouseAImpl; struct IDirectInputDevice2AImpl { - ICOM_VTABLE(IDirectInputDevice2A)* lpvtbl; + ICOM_VFIELD(IDirectInputDevice2A); DWORD ref; GUID guid; }; @@ -75,7 +75,7 @@ struct IDirectInputDevice2AImpl struct SysKeyboardAImpl { /* IDirectInputDevice2AImpl */ - ICOM_VTABLE(IDirectInputDevice2A)* lpvtbl; + ICOM_VFIELD(IDirectInputDevice2A); DWORD ref; GUID guid; /* SysKeyboardAImpl */ @@ -88,7 +88,7 @@ static ICOM_VTABLE(IDirectInputDevice2A) JoystickAvt; struct JoystickAImpl { /* IDirectInputDevice2AImpl */ - ICOM_VTABLE(IDirectInputDevice2A)* lpvtbl; + ICOM_VFIELD(IDirectInputDevice2A); DWORD ref; GUID guid; @@ -106,7 +106,7 @@ struct JoystickAImpl struct SysMouseAImpl { /* IDirectInputDevice2AImpl */ - ICOM_VTABLE(IDirectInputDevice2A)* lpvtbl; + ICOM_VFIELD(IDirectInputDevice2A); DWORD ref; GUID guid; @@ -180,7 +180,7 @@ static void _dump_cooperativelevel(DWORD dwFlags) { struct IDirectInputAImpl { - ICOM_VTABLE(IDirectInputA)* lpvtbl; + ICOM_VFIELD(IDirectInputA); DWORD ref; }; @@ -195,7 +195,7 @@ HRESULT WINAPI DirectInputCreateA(HINSTANCE hinst, DWORD dwVersion, LPDIRECTINPU ); This = (IDirectInputAImpl*)HeapAlloc(GetProcessHeap(),0,sizeof(IDirectInputAImpl)); This->ref = 1; - This->lpvtbl = &ddiavt; + ICOM_VTBL(This) = &ddiavt; *ppDI=(IDirectInputA*)This; return 0; } @@ -296,7 +296,7 @@ static HRESULT WINAPI IDirectInputAImpl_CreateDevice( SysKeyboardAImpl* newDevice; newDevice = HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(SysKeyboardAImpl)); newDevice->ref = 1; - newDevice->lpvtbl = &SysKeyboardAvt; + ICOM_VTBL(newDevice) = &SysKeyboardAvt; memcpy(&(newDevice->guid),rguid,sizeof(*rguid)); memset(newDevice->keystate,0,256); *pdev=(IDirectInputDeviceA*)newDevice; @@ -307,7 +307,7 @@ static HRESULT WINAPI IDirectInputAImpl_CreateDevice( SysMouseAImpl* newDevice; newDevice = HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(SysMouseAImpl)); newDevice->ref = 1; - newDevice->lpvtbl = &SysMouseAvt; + ICOM_VTBL(newDevice) = &SysMouseAvt; InitializeCriticalSection(&(newDevice->crit)); MakeCriticalSectionGlobal(&(newDevice->crit)); memcpy(&(newDevice->guid),rguid,sizeof(*rguid)); @@ -320,7 +320,7 @@ static HRESULT WINAPI IDirectInputAImpl_CreateDevice( JoystickAImpl* newDevice; newDevice = HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(JoystickAImpl)); newDevice->ref = 1; - newDevice->lpvtbl = &JoystickAvt; + ICOM_VTBL(newDevice) = &JoystickAvt; newDevice->joyfd = -1; memcpy(&(newDevice->guid),rguid,sizeof(*rguid)); *pdev=(IDirectInputDeviceA*)newDevice;