Michael Stefaniuc : avifil32: Merge and cleanup the IPersistFile iface.
Alexandre Julliard
julliard at winehq.org
Thu Mar 7 13:57:14 CST 2013
Module: wine
Branch: master
Commit: c52d915e2b6ee0cdfb96c4bbf5d99724fd54d7c5
URL: http://source.winehq.org/git/wine.git/?a=commit;h=c52d915e2b6ee0cdfb96c4bbf5d99724fd54d7c5
Author: Michael Stefaniuc <mstefani at redhat.de>
Date: Thu Mar 7 00:42:27 2013 +0100
avifil32: Merge and cleanup the IPersistFile iface.
---
dlls/avifil32/avifile.c | 115 ++++++++++++++++++-----------------------------
1 files changed, 44 insertions(+), 71 deletions(-)
diff --git a/dlls/avifil32/avifile.c b/dlls/avifil32/avifile.c
index b8811fd..8ea6127 100644
--- a/dlls/avifil32/avifile.c
+++ b/dlls/avifil32/avifile.c
@@ -136,14 +136,6 @@ static const struct IAVIStreamVtbl iavist = {
typedef struct _IAVIFileImpl IAVIFileImpl;
-typedef struct _IPersistFileImpl {
- /* IUnknown stuff */
- const IPersistFileVtbl *lpVtbl;
-
- /* IPersistFile stuff */
- IAVIFileImpl *paf;
-} IPersistFileImpl;
-
typedef struct _IAVIStreamImpl {
/* IUnknown stuff */
const IAVIStreamVtbl *lpVtbl;
@@ -175,11 +167,9 @@ typedef struct _IAVIStreamImpl {
struct _IAVIFileImpl {
IAVIFile IAVIFile_iface;
+ IPersistFile IPersistFile_iface;
LONG ref;
- /* IAVIFile stuff... */
- IPersistFileImpl iPersistFile;
-
AVIFILEINFOW fInfo;
IAVIStreamImpl *ppStreams[MAX_AVISTREAMS];
@@ -207,6 +197,11 @@ static inline IAVIFileImpl *impl_from_IAVIFile(IAVIFile *iface)
return CONTAINING_RECORD(iface, IAVIFileImpl, IAVIFile_iface);
}
+static inline IAVIFileImpl *impl_from_IPersistFile(IPersistFile *iface)
+{
+ return CONTAINING_RECORD(iface, IAVIFileImpl, IPersistFile_iface);
+}
+
/***********************************************************************/
static HRESULT AVIFILE_AddFrame(IAVIStreamImpl *This, DWORD ckid, DWORD size,
@@ -247,9 +242,8 @@ HRESULT AVIFILE_CreateAVIFile(REFIID riid, LPVOID *ppv)
return AVIERR_MEMORY;
pfile->IAVIFile_iface.lpVtbl = &iavift;
+ pfile->IPersistFile_iface.lpVtbl = &ipersistft;
pfile->ref = 0;
- pfile->iPersistFile.lpVtbl = &ipersistft;
- pfile->iPersistFile.paf = pfile;
hr = IAVIFile_QueryInterface(&pfile->IAVIFile_iface, riid, ppv);
if (FAILED(hr))
@@ -272,7 +266,7 @@ static HRESULT WINAPI IAVIFile_fnQueryInterface(IAVIFile *iface, REFIID refiid,
return S_OK;
} else if (IsEqualGUID(&IID_IPersistFile, refiid)) {
- *obj = &This->iPersistFile;
+ *obj = &This->IPersistFile_iface;
IAVIFile_AddRef(iface);
return S_OK;
@@ -549,38 +543,29 @@ static HRESULT WINAPI IAVIFile_fnDeleteStream(IAVIFile *iface, DWORD fccType, LO
return AVIERR_NODATA;
}
-/***********************************************************************/
-static HRESULT WINAPI IPersistFile_fnQueryInterface(IPersistFile *iface,
- REFIID refiid, LPVOID *obj)
+static HRESULT WINAPI IPersistFile_fnQueryInterface(IPersistFile *iface, REFIID refiid, void **ppv)
{
- IPersistFileImpl *This = (IPersistFileImpl *)iface;
-
- assert(This->paf != NULL);
+ IAVIFileImpl *This = impl_from_IPersistFile(iface);
- return IAVIFile_QueryInterface((PAVIFILE)This->paf, refiid, obj);
+ return IAVIFile_QueryInterface(&This->IAVIFile_iface, refiid, ppv);
}
-static ULONG WINAPI IPersistFile_fnAddRef(IPersistFile *iface)
+static ULONG WINAPI IPersistFile_fnAddRef(IPersistFile *iface)
{
- IPersistFileImpl *This = (IPersistFileImpl *)iface;
+ IAVIFileImpl *This = impl_from_IPersistFile(iface);
- assert(This->paf != NULL);
-
- return IAVIFile_AddRef((PAVIFILE)This->paf);
+ return IAVIFile_AddRef(&This->IAVIFile_iface);
}
-static ULONG WINAPI IPersistFile_fnRelease(IPersistFile *iface)
+static ULONG WINAPI IPersistFile_fnRelease(IPersistFile *iface)
{
- IPersistFileImpl *This = (IPersistFileImpl *)iface;
+ IAVIFileImpl *This = impl_from_IPersistFile(iface);
- assert(This->paf != NULL);
-
- return IAVIFile_Release((PAVIFILE)This->paf);
+ return IAVIFile_Release(&This->IAVIFile_iface);
}
-static HRESULT WINAPI IPersistFile_fnGetClassID(IPersistFile *iface,
- LPCLSID pClassID)
+static HRESULT WINAPI IPersistFile_fnGetClassID(IPersistFile *iface, LPCLSID pClassID)
{
TRACE("(%p,%p)\n", iface, pClassID);
@@ -594,20 +579,16 @@ static HRESULT WINAPI IPersistFile_fnGetClassID(IPersistFile *iface,
static HRESULT WINAPI IPersistFile_fnIsDirty(IPersistFile *iface)
{
- IPersistFileImpl *This = (IPersistFileImpl *)iface;
+ IAVIFileImpl *This = impl_from_IPersistFile(iface);
TRACE("(%p)\n", iface);
- assert(This->paf != NULL);
-
- return (This->paf->fDirty ? S_OK : S_FALSE);
+ return (This->fDirty ? S_OK : S_FALSE);
}
-static HRESULT WINAPI IPersistFile_fnLoad(IPersistFile *iface,
- LPCOLESTR pszFileName, DWORD dwMode)
+static HRESULT WINAPI IPersistFile_fnLoad(IPersistFile *iface, LPCOLESTR pszFileName, DWORD dwMode)
{
- IPersistFileImpl *This = (IPersistFileImpl *)iface;
-
+ IAVIFileImpl *This = impl_from_IPersistFile(iface);
int len;
TRACE("(%p,%s,0x%08X)\n", iface, debugstr_w(pszFileName), dwMode);
@@ -616,53 +597,49 @@ static HRESULT WINAPI IPersistFile_fnLoad(IPersistFile *iface,
if (pszFileName == NULL)
return AVIERR_BADPARAM;
- assert(This->paf != NULL);
- if (This->paf->hmmio != NULL)
+ if (This->hmmio != NULL)
return AVIERR_ERROR; /* No reuse of this object for another file! */
/* remember mode and name */
- This->paf->uMode = dwMode;
+ This->uMode = dwMode;
len = lstrlenW(pszFileName) + 1;
- This->paf->szFileName = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
- if (This->paf->szFileName == NULL)
+ This->szFileName = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
+ if (This->szFileName == NULL)
return AVIERR_MEMORY;
- lstrcpyW(This->paf->szFileName, pszFileName);
+ lstrcpyW(This->szFileName, pszFileName);
/* try to open the file */
- This->paf->hmmio = mmioOpenW(This->paf->szFileName, NULL,
- MMIO_ALLOCBUF | dwMode);
- if (This->paf->hmmio == NULL) {
+ This->hmmio = mmioOpenW(This->szFileName, NULL, MMIO_ALLOCBUF | dwMode);
+ if (This->hmmio == NULL) {
/* mmioOpenW not in native DLLs of Win9x -- try mmioOpenA */
LPSTR szFileName;
- len = WideCharToMultiByte(CP_ACP, 0, This->paf->szFileName, -1,
- NULL, 0, NULL, NULL);
+ len = WideCharToMultiByte(CP_ACP, 0, This->szFileName, -1, NULL, 0, NULL, NULL);
szFileName = HeapAlloc(GetProcessHeap(), 0, len * sizeof(CHAR));
if (szFileName == NULL)
return AVIERR_MEMORY;
- WideCharToMultiByte(CP_ACP, 0, This->paf->szFileName, -1, szFileName,
- len, NULL, NULL);
+ WideCharToMultiByte(CP_ACP, 0, This->szFileName, -1, szFileName, len, NULL, NULL);
- This->paf->hmmio = mmioOpenA(szFileName, NULL, MMIO_ALLOCBUF | dwMode);
+ This->hmmio = mmioOpenA(szFileName, NULL, MMIO_ALLOCBUF | dwMode);
HeapFree(GetProcessHeap(), 0, szFileName);
- if (This->paf->hmmio == NULL)
+ if (This->hmmio == NULL)
return AVIERR_FILEOPEN;
}
/* should we create a new file? */
if (dwMode & OF_CREATE) {
- memset(& This->paf->fInfo, 0, sizeof(This->paf->fInfo));
- This->paf->fInfo.dwFlags = AVIFILEINFO_HASINDEX | AVIFILEINFO_TRUSTCKTYPE;
+ memset(& This->fInfo, 0, sizeof(This->fInfo));
+ This->fInfo.dwFlags = AVIFILEINFO_HASINDEX | AVIFILEINFO_TRUSTCKTYPE;
return AVIERR_OK;
} else
- return AVIFILE_LoadFile(This->paf);
+ return AVIFILE_LoadFile(This);
}
-static HRESULT WINAPI IPersistFile_fnSave(IPersistFile *iface,
- LPCOLESTR pszFileName,BOOL fRemember)
+static HRESULT WINAPI IPersistFile_fnSave(IPersistFile *iface, LPCOLESTR pszFileName,
+ BOOL fRemember)
{
TRACE("(%p,%s,%d)\n", iface, debugstr_w(pszFileName), fRemember);
@@ -671,8 +648,7 @@ static HRESULT WINAPI IPersistFile_fnSave(IPersistFile *iface,
return AVIERR_OK;
}
-static HRESULT WINAPI IPersistFile_fnSaveCompleted(IPersistFile *iface,
- LPCOLESTR pszFileName)
+static HRESULT WINAPI IPersistFile_fnSaveCompleted(IPersistFile *iface, LPCOLESTR pszFileName)
{
TRACE("(%p,%s)\n", iface, debugstr_w(pszFileName));
@@ -681,10 +657,9 @@ static HRESULT WINAPI IPersistFile_fnSaveCompleted(IPersistFile *iface,
return AVIERR_OK;
}
-static HRESULT WINAPI IPersistFile_fnGetCurFile(IPersistFile *iface,
- LPOLESTR *ppszFileName)
+static HRESULT WINAPI IPersistFile_fnGetCurFile(IPersistFile *iface, LPOLESTR *ppszFileName)
{
- IPersistFileImpl *This = (IPersistFileImpl *)iface;
+ IAVIFileImpl *This = impl_from_IPersistFile(iface);
TRACE("(%p,%p)\n", iface, ppszFileName);
@@ -693,16 +668,14 @@ static HRESULT WINAPI IPersistFile_fnGetCurFile(IPersistFile *iface,
*ppszFileName = NULL;
- assert(This->paf != NULL);
-
- if (This->paf->szFileName != NULL) {
- int len = lstrlenW(This->paf->szFileName) + 1;
+ if (This->szFileName != NULL) {
+ int len = lstrlenW(This->szFileName) + 1;
*ppszFileName = CoTaskMemAlloc(len * sizeof(WCHAR));
if (*ppszFileName == NULL)
return AVIERR_MEMORY;
- strcpyW(*ppszFileName, This->paf->szFileName);
+ strcpyW(*ppszFileName, This->szFileName);
}
return AVIERR_OK;
More information about the wine-cvs
mailing list