Module: wine Branch: master Commit: 6c55e734bda42ed6264a52af7212b7d7dde4a2d8 URL: https://source.winehq.org/git/wine.git/?a=commit;h=6c55e734bda42ed6264a52af7...
Author: Zebediah Figura zfigura@codeweavers.com Date: Sun Sep 1 19:48:05 2019 -0500
amstream: Move multimedia_stream_create() to avoid forward declarations.
Signed-off-by: Zebediah Figura zfigura@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/amstream/multimedia.c | 59 ++++++++++++++++++++++------------------------ 1 file changed, 28 insertions(+), 31 deletions(-)
diff --git a/dlls/amstream/multimedia.c b/dlls/amstream/multimedia.c index 7f0fb34..7b0b6ae 100644 --- a/dlls/amstream/multimedia.c +++ b/dlls/amstream/multimedia.c @@ -50,37 +50,6 @@ static inline struct multimedia_stream *impl_from_IAMMultiMediaStream(IAMMultiMe return CONTAINING_RECORD(iface, struct multimedia_stream, IAMMultiMediaStream_iface); }
-static const struct IAMMultiMediaStreamVtbl multimedia_stream_vtbl; - -HRESULT multimedia_stream_create(IUnknown *pUnkOuter, LPVOID *ppObj) -{ - struct multimedia_stream *object; - HRESULT hr; - - TRACE("(%p,%p)\n", pUnkOuter, ppObj); - - if( pUnkOuter ) - return CLASS_E_NOAGGREGATION; - - if (!(object = heap_alloc_zero(sizeof(*object)))) - return E_OUTOFMEMORY; - - object->IAMMultiMediaStream_iface.lpVtbl = &multimedia_stream_vtbl; - object->ref = 1; - - if (FAILED(hr = CoCreateInstance(&CLSID_MediaStreamFilter, NULL, - CLSCTX_INPROC_SERVER, &IID_IMediaStreamFilter, (void **)&object->filter))) - { - ERR("Failed to create stream filter, hr %#x.\n", hr); - heap_free(object); - return hr; - } - - *ppObj = &object->IAMMultiMediaStream_iface; - - return S_OK; -} - /*** IUnknown methods ***/ static HRESULT WINAPI multimedia_stream_QueryInterface(IAMMultiMediaStream *iface, REFIID riid, void **ppvObject) @@ -492,3 +461,31 @@ static const IAMMultiMediaStreamVtbl multimedia_stream_vtbl = multimedia_stream_OpenMoniker, multimedia_stream_Render }; + +HRESULT multimedia_stream_create(IUnknown *outer, void **out) +{ + struct multimedia_stream *object; + HRESULT hr; + + if (outer) + return CLASS_E_NOAGGREGATION; + + if (!(object = heap_alloc_zero(sizeof(*object)))) + return E_OUTOFMEMORY; + + object->IAMMultiMediaStream_iface.lpVtbl = &multimedia_stream_vtbl; + object->ref = 1; + + if (FAILED(hr = CoCreateInstance(&CLSID_MediaStreamFilter, NULL, + CLSCTX_INPROC_SERVER, &IID_IMediaStreamFilter, (void **)&object->filter))) + { + ERR("Failed to create stream filter, hr %#x.\n", hr); + heap_free(object); + return hr; + } + + TRACE("Created multimedia stream %p.\n", object); + *out = &object->IAMMultiMediaStream_iface; + + return S_OK; +}