Commit 01c9ac40 authored by Francois Gouget's avatar Francois Gouget Committed by Alexandre Julliard

Generalized the use of the new ICOM_VFIELD and ICOM_VTBL macros.

parent 238b6d70
......@@ -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;
}
......
......@@ -14,7 +14,7 @@ DEFAULT_DEBUG_CHANNEL(dplay)
typedef struct
{
/* IUnknown fields */
ICOM_VTABLE(IClassFactory)* lpvtbl;
ICOM_VFIELD(IClassFactory);
DWORD ref;
} IClassFactoryImpl;
......
......@@ -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;
......
......@@ -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 */
......
......@@ -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;
......
......@@ -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;
......
......@@ -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;
/*
......
......@@ -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;
}
......
......@@ -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;
/*
......
......@@ -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 */
......
......@@ -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;
......
......@@ -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
......
......@@ -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;
......
......@@ -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
......
......@@ -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 */
/*
......
......@@ -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);
......
......@@ -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 */
......
......@@ -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)
{
......
......@@ -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);
......
......@@ -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
......@@ -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)))
......
......@@ -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
......
......@@ -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;
......
......@@ -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;
......
......@@ -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 */
......
......@@ -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;
......
......@@ -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);
......
......@@ -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;
......
......@@ -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;
......
......@@ -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 */
......
......@@ -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;
......
......@@ -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;
......
......@@ -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;
......
......@@ -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;
......
......@@ -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<<i)))
break;
......@@ -3132,7 +3132,7 @@ static HRESULT WINAPI Xlib_IDirectDraw2Impl_CreateSurface(
(*ilpdsf)->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;
......
......@@ -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 */
......
......@@ -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;i<bmi->biClrUsed;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));
......
......@@ -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;
......
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