[2/2] include/vfw.h: Replace handmade COM method macros by widl generated ones (including inline wrappers).

Dmitry Timoshkov dmitry at baikal.ru
Mon Apr 7 01:59:04 CDT 2014


---
 dlls/avifil32/wavfile.c |   4 +-
 include/vfw.h           | 245 +++++++++++++++++++++++++++++++++++++++---------
 2 files changed, 203 insertions(+), 46 deletions(-)

diff --git a/dlls/avifil32/wavfile.c b/dlls/avifil32/wavfile.c
index 60dab03..32a6788 100644
--- a/dlls/avifil32/wavfile.c
+++ b/dlls/avifil32/wavfile.c
@@ -274,7 +274,7 @@ static HRESULT WINAPI IAVIFile_fnGetStream(IAVIFile *iface, IAVIStream **avis, D
     return AVIERR_NODATA;
 
   *avis = &This->IAVIStream_iface;
-  IAVIFile_AddRef(*avis);
+  IAVIStream_AddRef(*avis);
 
   return AVIERR_OK;
 }
@@ -325,7 +325,7 @@ static HRESULT WINAPI IAVIFile_fnCreateStream(IAVIFile *iface, IAVIStream **avis
   This->ckData.cksize       = 0;
 
   *avis = &This->IAVIStream_iface;
-  IAVIFile_AddRef(*avis);
+  IAVIStream_AddRef(*avis);
 
   return AVIERR_OK;
 }
diff --git a/include/vfw.h b/include/vfw.h
index aa3d4f5..2e2827b 100644
--- a/include/vfw.h
+++ b/include/vfw.h
@@ -1021,22 +1021,69 @@ DECLARE_INTERFACE_(IAVIStream,IUnknown)
 #undef INTERFACE
 
 #if !defined(__cplusplus) || defined(CINTERFACE)
+#ifndef WIDL_C_INLINE_WRAPPERS
 /*** IUnknown methods ***/
-#define IAVIStream_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IAVIStream_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IAVIStream_Release(p)            (p)->lpVtbl->Release(p)
+#define IAVIStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IAVIStream_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IAVIStream_Release(This) (This)->lpVtbl->Release(This)
 /*** IAVIStream methods ***/
-#define IAVIStream_Create(p,a,b)          (p)->lpVtbl->Create(p,a,b)
-#define IAVIStream_Info(p,a,b)            (p)->lpVtbl->Info(p,a,b)
-#define IAVIStream_FindSample(p,a,b)      (p)->lpVtbl->FindSample(p,a,b)
-#define IAVIStream_ReadFormat(p,a,b,c)    (p)->lpVtbl->ReadFormat(p,a,b,c)
-#define IAVIStream_SetFormat(p,a,b,c)     (p)->lpVtbl->SetFormat(p,a,b,c)
-#define IAVIStream_Read(p,a,b,c,d,e,f)    (p)->lpVtbl->Read(p,a,b,c,d,e,f)
-#define IAVIStream_Write(p,a,b,c,d,e,f,g) (p)->lpVtbl->Write(p,a,b,c,d,e,f,g)
-#define IAVIStream_Delete(p,a,b)          (p)->lpVtbl->Delete(p,a,b)
-#define IAVIStream_ReadData(p,a,b,c)      (p)->lpVtbl->ReadData(p,a,b,c)
-#define IAVIStream_WriteData(p,a,b,c)     (p)->lpVtbl->WriteData(p,a,b,c)
-#define IAVIStream_SetInfo(p,a,b)         (p)->lpVtbl->SetInfo(p,a,b)
+#define IAVIStream_Create(This,lParam1,lParam2) (This)->lpVtbl->Create(This,lParam1,lParam2)
+#define IAVIStream_Info(This,psi,lSize) (This)->lpVtbl->Info(This,psi,lSize)
+#define IAVIStream_FindSample(This,lPos,lFlags) (This)->lpVtbl->FindSample(This,lPos,lFlags)
+#define IAVIStream_ReadFormat(This,lPos,lpFormat,lpcbFormat) (This)->lpVtbl->ReadFormat(This,lPos,lpFormat,lpcbFormat)
+#define IAVIStream_SetFormat(This,lPos,lpFormat,cbFormat) (This)->lpVtbl->SetFormat(This,lPos,lpFormat,cbFormat)
+#define IAVIStream_Read(This,lStart,lSamples,lpBuffer,cbBuffer,plBytes,plSamples) (This)->lpVtbl->Read(This,lStart,lSamples,lpBuffer,cbBuffer,plBytes,plSamples)
+#define IAVIStream_Write(This,lStart,lSamples,lpBuffer,cbBuffer,dwFlags,plSampWritten,plBytesWritten) (This)->lpVtbl->Write(This,lStart,lSamples,lpBuffer,cbBuffer,dwFlags,plSampWritten,plBytesWritten)
+#define IAVIStream_Delete(This,lStart,lSamples) (This)->lpVtbl->Delete(This,lStart,lSamples)
+#define IAVIStream_ReadData(This,fcc,lpBuffer,lpcbBuffer) (This)->lpVtbl->ReadData(This,fcc,lpBuffer,lpcbBuffer)
+#define IAVIStream_WriteData(This,fcc,lpBuffer,cbBuffer) (This)->lpVtbl->WriteData(This,fcc,lpBuffer,cbBuffer)
+#define IAVIStream_SetInfo(This,plInfo,cbInfo) (This)->lpVtbl->SetInfo(This,plInfo,cbInfo)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IAVIStream_QueryInterface(IAVIStream* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IAVIStream_AddRef(IAVIStream* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IAVIStream_Release(IAVIStream* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IAVIStream methods ***/
+static FORCEINLINE HRESULT IAVIStream_Create(IAVIStream* This,LPARAM lParam1,LPARAM lParam2) {
+    return This->lpVtbl->Create(This,lParam1,lParam2);
+}
+static FORCEINLINE HRESULT IAVIStream_Info(IAVIStream* This,AVISTREAMINFOW *psi,LONG lSize) {
+    return This->lpVtbl->Info(This,psi,lSize);
+}
+static FORCEINLINE LONG IAVIStream_FindSample(IAVIStream* This,LONG lPos,LONG lFlags) {
+    return This->lpVtbl->FindSample(This,lPos,lFlags);
+}
+static FORCEINLINE HRESULT IAVIStream_ReadFormat(IAVIStream* This,LONG lPos,LPVOID lpFormat,LONG *lpcbFormat) {
+    return This->lpVtbl->ReadFormat(This,lPos,lpFormat,lpcbFormat);
+}
+static FORCEINLINE HRESULT IAVIStream_SetFormat(IAVIStream* This,LONG lPos,LPVOID lpFormat,LONG cbFormat) {
+    return This->lpVtbl->SetFormat(This,lPos,lpFormat,cbFormat);
+}
+static FORCEINLINE HRESULT IAVIStream_Read(IAVIStream* This,LONG lStart,LONG lSamples,LPVOID lpBuffer,LONG cbBuffer,LONG *plBytes,LONG *plSamples) {
+    return This->lpVtbl->Read(This,lStart,lSamples,lpBuffer,cbBuffer,plBytes,plSamples);
+}
+static FORCEINLINE HRESULT IAVIStream_Write(IAVIStream* This,LONG lStart,LONG lSamples,LPVOID lpBuffer,LONG cbBuffer,DWORD dwFlags,LONG *plSampWritten,LONG *plBytesWritten) {
+    return This->lpVtbl->Write(This,lStart,lSamples,lpBuffer,cbBuffer,dwFlags,plSampWritten,plBytesWritten);
+}
+static FORCEINLINE HRESULT IAVIStream_Delete(IAVIStream* This,LONG lStart,LONG lSamples) {
+    return This->lpVtbl->Delete(This,lStart,lSamples);
+}
+static FORCEINLINE HRESULT IAVIStream_ReadData(IAVIStream* This,DWORD fcc,LPVOID lpBuffer,LONG *lpcbBuffer) {
+    return This->lpVtbl->ReadData(This,fcc,lpBuffer,lpcbBuffer);
+}
+static FORCEINLINE HRESULT IAVIStream_WriteData(IAVIStream* This,DWORD fcc,LPVOID lpBuffer,LONG cbBuffer) {
+    return This->lpVtbl->WriteData(This,fcc,lpBuffer,cbBuffer);
+}
+static FORCEINLINE HRESULT IAVIStream_SetInfo(IAVIStream* This,AVISTREAMINFOW *plInfo,LONG cbInfo) {
+    return This->lpVtbl->SetInfo(This,plInfo,cbInfo);
+}
+#endif
 #endif
 
 #define AVISTREAMREAD_CONVENIENT          (__MSABI_LONG(-1))
@@ -1154,13 +1201,33 @@ DECLARE_INTERFACE_(IAVIStreaming,IUnknown)
 #undef INTERFACE
 
 #if !defined(__cplusplus) || defined(CINTERFACE)
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IAVIStreaming_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IAVIStreaming_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IAVIStreaming_Release(This) (This)->lpVtbl->Release(This)
+/*** IAVIStreaming methods ***/
+#define IAVIStreaming_Begin(This,lStart,lEnd,lRate) (This)->lpVtbl->Begin(This,lStart,lEnd,lRate)
+#define IAVIStreaming_End(This) (This)->lpVtbl->End(This)
+#else
 /*** IUnknown methods ***/
-#define IAVIStreaming_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IAVIStreaming_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IAVIStreaming_Release(p)            (p)->lpVtbl->Release(p)
+static FORCEINLINE HRESULT IAVIStreaming_QueryInterface(IAVIStreaming* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IAVIStreaming_AddRef(IAVIStreaming* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IAVIStreaming_Release(IAVIStreaming* This) {
+    return This->lpVtbl->Release(This);
+}
 /*** IAVIStreaming methods ***/
-#define IAVIStreaming_Begin(p,a,b,c)        (p)->lpVtbl->Begin(p,a,b,c)
-#define IAVIStreaming_End(p)                (p)->lpVtbl->End(p)
+static FORCEINLINE HRESULT IAVIStreaming_Begin(IAVIStreaming* This,LONG lStart,LONG lEnd,LONG lRate) {
+    return This->lpVtbl->Begin(This,lStart,lEnd,lRate);
+}
+static FORCEINLINE HRESULT IAVIStreaming_End(IAVIStreaming* This) {
+    return This->lpVtbl->End(This);
+}
+#endif
 #endif
 
 /*****************************************************************************
@@ -1183,16 +1250,45 @@ DECLARE_INTERFACE_(IAVIEditStream,IUnknown)
 #undef INTERFACE
 
 #if !defined(__cplusplus) || defined(CINTERFACE)
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IAVIEditStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IAVIEditStream_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IAVIEditStream_Release(This) (This)->lpVtbl->Release(This)
+/*** IAVIEditStream methods ***/
+#define IAVIEditStream_Cut(This,plStart,plLength,ppResult) (This)->lpVtbl->Cut(This,plStart,plLength,ppResult)
+#define IAVIEditStream_Copy(This,plStart,plLength,ppResult) (This)->lpVtbl->Copy(This,plStart,plLength,ppResult)
+#define IAVIEditStream_Paste(This,plStart,plLength,pSource,lStart,lEnd) (This)->lpVtbl->Paste(This,plStart,plLength,pSource,lStart,lEnd)
+#define IAVIEditStream_Clone(This,ppResult) (This)->lpVtbl->Clone(This,ppResult)
+#define IAVIEditStream_SetInfo(This,asi,size) (This)->lpVtbl->SetInfo(This,asi,size)
+#else
 /*** IUnknown methods ***/
-#define IAVIEditStream_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IAVIEditStream_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IAVIEditStream_Release(p)            (p)->lpVtbl->Release(p)
+static FORCEINLINE HRESULT IAVIEditStream_QueryInterface(IAVIEditStream* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IAVIEditStream_AddRef(IAVIEditStream* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IAVIEditStream_Release(IAVIEditStream* This) {
+    return This->lpVtbl->Release(This);
+}
 /*** IAVIEditStream methods ***/
-#define IAVIEditStream_Cut(p,a,b,c)	     (p)->lpVtbl->Cut(p,a,b,c)
-#define IAVIEditStream_Copy(p,a,b,c)	     (p)->lpVtbl->Copy(p,a,b,c)
-#define IAVIEditStream_Paste(p,a,b,c,d,e)    (p)->lpVtbl->Paste(p,a,b,c,d,e)
-#define IAVIEditStream_Clone(p,a)	     (p)->lpVtbl->Clone(p,a)
-#define IAVIEditStream_SetInfo(p,a,b)	     (p)->lpVtbl->SetInfo(p,a,b)
+static FORCEINLINE HRESULT IAVIEditStream_Cut(IAVIEditStream* This,LONG *plStart,LONG *plLength,PAVISTREAM *ppResult) {
+    return This->lpVtbl->Cut(This,plStart,plLength,ppResult);
+}
+static FORCEINLINE HRESULT IAVIEditStream_Copy(IAVIEditStream* This,LONG *plStart,LONG *plLength,PAVISTREAM *ppResult) {
+    return This->lpVtbl->Copy(This,plStart,plLength,ppResult);
+}
+static FORCEINLINE HRESULT IAVIEditStream_Paste(IAVIEditStream* This,LONG *plStart,LONG *plLength,PAVISTREAM pSource,LONG lStart,LONG lEnd) {
+    return This->lpVtbl->Paste(This,plStart,plLength,pSource,lStart,lEnd);
+}
+static FORCEINLINE HRESULT IAVIEditStream_Clone(IAVIEditStream* This,PAVISTREAM *ppResult) {
+    return This->lpVtbl->Clone(This,ppResult);
+}
+static FORCEINLINE HRESULT IAVIEditStream_SetInfo(IAVIEditStream* This,LPAVISTREAMINFOW asi,LONG size) {
+    return This->lpVtbl->SetInfo(This,asi,size);
+}
+#endif
 #endif
 
 HRESULT WINAPI CreateEditableStream(PAVISTREAM *ppEditable,PAVISTREAM pSource);
@@ -1237,18 +1333,53 @@ DECLARE_INTERFACE_(IAVIFile,IUnknown)
 #undef INTERFACE
 
 #if !defined(__cplusplus) || defined(CINTERFACE)
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IAVIFile_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IAVIFile_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IAVIFile_Release(This) (This)->lpVtbl->Release(This)
+/*** IAVIFile methods ***/
+#define IAVIFile_Info(This,pfi,lSize) (This)->lpVtbl->Info(This,pfi,lSize)
+#define IAVIFile_GetStream(This,ppStream,fccType,lParam) (This)->lpVtbl->GetStream(This,ppStream,fccType,lParam)
+#define IAVIFile_CreateStream(This,ppStream,psi) (This)->lpVtbl->CreateStream(This,ppStream,psi)
+#define IAVIFile_WriteData(This,fcc,lpBuffer,cbBuffer) (This)->lpVtbl->WriteData(This,fcc,lpBuffer,cbBuffer)
+#define IAVIFile_ReadData(This,fcc,lpBuffer,lpcbBuffer) (This)->lpVtbl->ReadData(This,fcc,lpBuffer,lpcbBuffer)
+#define IAVIFile_EndRecord(This) (This)->lpVtbl->EndRecord(This)
+#define IAVIFile_DeleteStream(This,fccType,lParam) (This)->lpVtbl->DeleteStream(This,fccType,lParam)
+#else
 /*** IUnknown methods ***/
-#define IAVIFile_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IAVIFile_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IAVIFile_Release(p)            (p)->lpVtbl->Release(p)
+static FORCEINLINE HRESULT IAVIFile_QueryInterface(IAVIFile* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IAVIFile_AddRef(IAVIFile* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IAVIFile_Release(IAVIFile* This) {
+    return This->lpVtbl->Release(This);
+}
 /*** IAVIFile methods ***/
-#define IAVIFile_Info(p,a,b)         (p)->lpVtbl->Info(p,a,b)
-#define IAVIFile_GetStream(p,a,b,c)  (p)->lpVtbl->GetStream(p,a,b,c)
-#define IAVIFile_CreateStream(p,a,b) (p)->lpVtbl->CreateStream(p,a,b)
-#define IAVIFile_WriteData(p,a,b,c)  (p)->lpVtbl->WriteData(p,a,b,c)
-#define IAVIFile_ReadData(p,a,b,c)   (p)->lpVtbl->ReadData(p,a,b,c)
-#define IAVIFile_EndRecord(p)        (p)->lpVtbl->EndRecord(p)
-#define IAVIFile_DeleteStream(p,a,b) (p)->lpVtbl->DeleteStream(p,a,b)
+static FORCEINLINE HRESULT IAVIFile_Info(IAVIFile* This,AVIFILEINFOW *pfi,LONG lSize) {
+    return This->lpVtbl->Info(This,pfi,lSize);
+}
+static FORCEINLINE HRESULT IAVIFile_GetStream(IAVIFile* This,PAVISTREAM *ppStream,DWORD fccType,LONG lParam) {
+    return This->lpVtbl->GetStream(This,ppStream,fccType,lParam);
+}
+static FORCEINLINE HRESULT IAVIFile_CreateStream(IAVIFile* This,PAVISTREAM *ppStream,AVISTREAMINFOW *psi) {
+    return This->lpVtbl->CreateStream(This,ppStream,psi);
+}
+static FORCEINLINE HRESULT IAVIFile_WriteData(IAVIFile* This,DWORD fcc,LPVOID lpBuffer,LONG cbBuffer) {
+    return This->lpVtbl->WriteData(This,fcc,lpBuffer,cbBuffer);
+}
+static FORCEINLINE HRESULT IAVIFile_ReadData(IAVIFile* This,DWORD fcc,LPVOID lpBuffer,LONG *lpcbBuffer) {
+    return This->lpVtbl->ReadData(This,fcc,lpBuffer,lpcbBuffer);
+}
+static FORCEINLINE HRESULT IAVIFile_EndRecord(IAVIFile* This) {
+    return This->lpVtbl->EndRecord(This);
+}
+static FORCEINLINE HRESULT IAVIFile_DeleteStream(IAVIFile* This,DWORD fccType,LONG lParam) {
+    return This->lpVtbl->DeleteStream(This,fccType,lParam);
+}
+#endif
 #endif
 
 void WINAPI AVIFileInit(void);
@@ -1290,15 +1421,41 @@ DECLARE_INTERFACE_(IGetFrame,IUnknown)
 #undef INTERFACE
 
 #if !defined(__cplusplus) || defined(CINTERFACE)
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IGetFrame_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IGetFrame_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IGetFrame_Release(This) (This)->lpVtbl->Release(This)
+/*** IGetFrame methods ***/
+#define IGetFrame_GetFrame(This,lPos) (This)->lpVtbl->GetFrame(This,lPos)
+#define IGetFrame_Begin(This,lStart,lEnd,lRate) (This)->lpVtbl->Begin(This,lStart,lEnd,lRate)
+#define IGetFrame_End(This) (This)->lpVtbl->End(This)
+#define IGetFrame_SetFormat(This,lpbi,lpBits,x,y,dx,dy) (This)->lpVtbl->SetFormat(This,lpbi,lpBits,x,y,dx,dy)
+#else
 /*** IUnknown methods ***/
-#define IGetFrame_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IGetFrame_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IGetFrame_Release(p)            (p)->lpVtbl->Release(p)
+static FORCEINLINE HRESULT IGetFrame_QueryInterface(IGetFrame* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IGetFrame_AddRef(IGetFrame* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IGetFrame_Release(IGetFrame* This) {
+    return This->lpVtbl->Release(This);
+}
 /*** IGetFrame methods ***/
-#define IGetFrame_GetFrame(p,a)            (p)->lpVtbl->GetFrame(p,a)
-#define IGetFrame_Begin(p,a,b,c)           (p)->lpVtbl->Begin(p,a,b,c)
-#define IGetFrame_End(p)                   (p)->lpVtbl->End(p)
-#define IGetFrame_SetFormat(p,a,b,c,d,e,f) (p)->lpVtbl->SetFormat(p,a,b,c,d,e,f)
+static FORCEINLINE LPVOID IGetFrame_GetFrame(IGetFrame* This,LONG lPos) {
+    return This->lpVtbl->GetFrame(This,lPos);
+}
+static FORCEINLINE HRESULT IGetFrame_Begin(IGetFrame* This,LONG lStart,LONG lEnd,LONG lRate) {
+    return This->lpVtbl->Begin(This,lStart,lEnd,lRate);
+}
+static FORCEINLINE HRESULT IGetFrame_End(IGetFrame* This) {
+    return This->lpVtbl->End(This);
+}
+static FORCEINLINE HRESULT IGetFrame_SetFormat(IGetFrame* This,LPBITMAPINFOHEADER lpbi,LPVOID lpBits,INT x,INT y,INT dx,INT dy) {
+    return This->lpVtbl->SetFormat(This,lpbi,lpBits,x,y,dx,dy);
+}
+#endif
 #endif
 
 HRESULT WINAPI AVIClearClipboard(void);
-- 
1.9.1




More information about the wine-patches mailing list