[PATCH 7/7] amstream: Get rid of *_stream_create_and_initialize functions and Use CoCreateInstance, Initialize, and JoinAMMultiMediaStream instead.

Zebediah Figura z.figura12 at gmail.com
Fri May 22 16:11:17 CDT 2020


On 5/22/20 10:40 AM, Anton Baskanov wrote:
> @@ -377,18 +379,26 @@ static HRESULT WINAPI multimedia_stream_AddMediaStream(IAMMultiMediaStream *ifac
>      }
>  
>      if (IsEqualGUID(PurposeId, &MSPID_PrimaryVideo))
> -        hr = ddraw_stream_create_and_initialize((IMultiMediaStream*)iface, PurposeId, stream_object, This->type, &pStream);
> +        clsid = &CLSID_AMDirectDrawStream;
>      else if (IsEqualGUID(PurposeId, &MSPID_PrimaryAudio))
> -        hr = audio_stream_create_and_initialize((IMultiMediaStream*)iface, PurposeId, stream_object, This->type, &pStream);
> +        clsid = &CLSID_AMAudioStream;
>      else
>          return MS_E_PURPOSEID;
>  
> -    if (SUCCEEDED(hr))
> +    hr = CoCreateInstance(clsid, NULL, CLSCTX_INPROC_SERVER, &IID_IAMMediaStream, (void **)&pStream);
> +    if (FAILED(hr))
> +        return hr;
> +    
> +    hr = IAMMediaStream_Initialize(pStream, stream_object, dwFlags, PurposeId, This->type);
> +    if (FAILED(hr))
>      {
> -        add_stream(This, pStream, ret_stream);
>          IAMMediaStream_Release(pStream);
> +        return hr;
>      }
>  
> +    add_stream(This, pStream, ret_stream);
> +    IAMMediaStream_Release(pStream);
> +
>      return hr;
>  }
>  

I guess I'm not very opposed to this, but it'd be nice to know at least
if there's an application that depends on this structure.



More information about the wine-devel mailing list