Module: wine Branch: master Commit: a0b7eb0d3e060b4e4ee6eb821a19c9259e171559 URL: http://source.winehq.org/git/wine.git/?a=commit;h=a0b7eb0d3e060b4e4ee6eb821a...
Author: Michael Stefaniuc mstefani@redhat.de Date: Thu Jul 14 10:15:50 2016 +0200
avifil32: Move CreateEditableStream() to avoid exporting a helper.
Signed-off-by: Michael Stefaniuc mstefani@redhat.de Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/avifil32/api.c | 38 -------------------------------------- dlls/avifil32/avifile_private.h | 1 - dlls/avifil32/editstream.c | 39 ++++++++++++++++++++++++++++++++++++++- 3 files changed, 38 insertions(+), 40 deletions(-)
diff --git a/dlls/avifil32/api.c b/dlls/avifil32/api.c index 0715d58..5c15c1f 100644 --- a/dlls/avifil32/api.c +++ b/dlls/avifil32/api.c @@ -1982,44 +1982,6 @@ HRESULT WINAPI AVISaveVW(LPCWSTR szFile, CLSID *pclsidHandler, }
/*********************************************************************** - * CreateEditableStream (AVIFIL32.@) - */ -HRESULT WINAPI CreateEditableStream(PAVISTREAM *ppEditable, PAVISTREAM pSource) -{ - IAVIEditStream *pEdit = NULL; - HRESULT hr; - - TRACE("(%p,%p)\n", ppEditable, pSource); - - if (ppEditable == NULL) - return AVIERR_BADPARAM; - - *ppEditable = NULL; - - if (pSource != NULL) { - hr = IAVIStream_QueryInterface(pSource, &IID_IAVIEditStream, - (LPVOID*)&pEdit); - if (SUCCEEDED(hr) && pEdit != NULL) { - hr = IAVIEditStream_Clone(pEdit, ppEditable); - IAVIEditStream_Release(pEdit); - - return hr; - } - } - - /* need own implementation of IAVIEditStream */ - pEdit = AVIFILE_CreateEditStream(pSource); - if (pEdit == NULL) - return AVIERR_MEMORY; - - hr = IAVIEditStream_QueryInterface(pEdit, &IID_IAVIStream, - (LPVOID*)ppEditable); - IAVIEditStream_Release(pEdit); - - return hr; -} - -/*********************************************************************** * EditStreamClone (AVIFIL32.@) */ HRESULT WINAPI EditStreamClone(PAVISTREAM pStream, PAVISTREAM *ppResult) diff --git a/dlls/avifil32/avifile_private.h b/dlls/avifil32/avifile_private.h index 0fd74c4..16893d9 100644 --- a/dlls/avifil32/avifile_private.h +++ b/dlls/avifil32/avifile_private.h @@ -62,7 +62,6 @@ extern HRESULT AVIFILE_CreateAVIFile(IUnknown *pUnkOuter, REFIID riid, LPVOID *p extern HRESULT AVIFILE_CreateWAVFile(IUnknown *outer_unk, REFIID riid, void **ret_iface) DECLSPEC_HIDDEN; extern HRESULT AVIFILE_CreateACMStream(REFIID riid, LPVOID *ppobj) DECLSPEC_HIDDEN; extern HRESULT AVIFILE_CreateICMStream(REFIID riid, LPVOID *ppobj) DECLSPEC_HIDDEN; -extern PAVIEDITSTREAM AVIFILE_CreateEditStream(PAVISTREAM pstream) DECLSPEC_HIDDEN; extern PGETFRAME AVIFILE_CreateGetFrame(PAVISTREAM pstream) DECLSPEC_HIDDEN; extern PAVIFILE AVIFILE_CreateAVITempFile(int nStreams, const PAVISTREAM *ppStreams) DECLSPEC_HIDDEN;
diff --git a/dlls/avifil32/editstream.c b/dlls/avifil32/editstream.c index 45a4d98..a6c534e 100644 --- a/dlls/avifil32/editstream.c +++ b/dlls/avifil32/editstream.c @@ -70,6 +70,8 @@ struct _IAVIEditStreamImpl { LPBITMAPINFOHEADER lpFrame; /* frame of pCurStream */ };
+static IAVIEditStream *AVIFILE_CreateEditStream(IAVIStream *stream); + static inline IAVIEditStreamImpl *impl_from_IAVIEditStream(IAVIEditStream *iface) { return CONTAINING_RECORD(iface, IAVIEditStreamImpl, IAVIEditStream_iface); @@ -1005,7 +1007,7 @@ static const struct IAVIStreamVtbl ieditstast = { IEditAVIStream_fnSetInfo };
-PAVIEDITSTREAM AVIFILE_CreateEditStream(PAVISTREAM pstream) +static IAVIEditStream *AVIFILE_CreateEditStream(IAVIStream *pstream) { IAVIEditStreamImpl *pedit = NULL;
@@ -1021,3 +1023,38 @@ PAVIEDITSTREAM AVIFILE_CreateEditStream(PAVISTREAM pstream)
return (PAVIEDITSTREAM)pedit; } + +/*********************************************************************** + * CreateEditableStream (AVIFIL32.@) + */ +HRESULT WINAPI CreateEditableStream(IAVIStream **editable, IAVIStream *src) +{ + IAVIEditStream *edit = NULL; + HRESULT hr; + + TRACE("(%p,%p)\n", editable, src); + + if (!editable) + return AVIERR_BADPARAM; + *editable = NULL; + + if (src) { + hr = IAVIStream_QueryInterface(src, &IID_IAVIEditStream, (void**)&edit); + if (SUCCEEDED(hr) && edit) { + hr = IAVIEditStream_Clone(edit, editable); + IAVIEditStream_Release(edit); + + return hr; + } + } + + /* Need own implementation of IAVIEditStream */ + edit = AVIFILE_CreateEditStream(src); + if (!edit) + return AVIERR_MEMORY; + + hr = IAVIEditStream_QueryInterface(edit, &IID_IAVIStream, (void**)editable); + IAVIEditStream_Release(edit); + + return hr; +}