<div dir="ltr">Sure :)<br></div><br><div class="gmail_quote"><div dir="ltr">Am Fr., 12. Okt. 2018 um 19:52 Uhr schrieb Andrew Eikum <<a href="mailto:aeikum@codeweavers.com">aeikum@codeweavers.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Thanks, Roger. Could you add a test for this? I think it could go<br>
right after the CoCreateInstance in <dlls/xaudio2_7/tests/xaudio2.c>.<br>
<br>
Andrew<br>
<br>
On Fri, Oct 12, 2018 at 07:36:48PM +0200, Roger Zoellner wrote:<br>
> Fixes bug<br>
> <a href="https://bugs.winehq.org/show_bug.cgi?id=43660" rel="noreferrer" target="_blank">https://bugs.winehq.org/show_bug.cgi?id=43660</a><br>
> (DOS2 classic client is affected as well)<br>
> <br>
> In this specific case, the bug is caused by a call to QueryInterface inside bink2w64.dll, which then<br>
> will treat a precreated XAudio27 object as XAudio28. This leads to a crash.<br>
> <br>
> This fix may affect other games, that use BINK2, too.<br>
> <br>
> Signed-off-by: Roger Zoellner <<a href="mailto:zoellner.roger@gmail.com" target="_blank">zoellner.roger@gmail.com</a>><br>
> ---<br>
>  dlls/xaudio2_7/xaudio_dll.c | 2 ++<br>
>  1 file changed, 2 insertions(+)<br>
> <br>
> diff --git a/dlls/xaudio2_7/xaudio_dll.c b/dlls/xaudio2_7/xaudio_dll.c<br>
> index 28cf98565b..461ac56ffe 100644<br>
> --- a/dlls/xaudio2_7/xaudio_dll.c<br>
> +++ b/dlls/xaudio2_7/xaudio_dll.c<br>
> @@ -1262,7 +1262,9 @@ static HRESULT WINAPI IXAudio2Impl_QueryInterface(IXAudio2 *iface, REFIID riid,<br>
>      TRACE("(%p)->(%s, %p)\n", This, debugstr_guid(riid), ppvObject);<br>
>  <br>
>      if(IsEqualGUID(riid, &IID_IUnknown) ||<br>
> +#if XAUDIO2_VER == 8<br>
>              IsEqualGUID(riid, &IID_IXAudio28) ||<br>
> +#endif<br>
>              IsEqualGUID(riid, &IID_IXAudio2))<br>
>          *ppvObject = &This->IXAudio2_iface;<br>
>      else if(IsEqualGUID(riid, &IID_IXAudio27)){<br>
> -- <br>
> 2.19.0<br>
> <br>
> <br>
> <br>
</blockquote></div>