From: Paul Gofman pgofman@codeweavers.com
--- dlls/xaudio2_7/tests/xaudio2.c | 20 ++++++++++++++++++++ dlls/xaudio2_7/xaudio_dll.c | 7 +++++++ dlls/xaudio2_8/xaudio2_8.spec | 1 + dlls/xaudio2_9/xaudio2_9.spec | 1 + include/xaudio2.idl | 1 + 5 files changed, 30 insertions(+)
diff --git a/dlls/xaudio2_7/tests/xaudio2.c b/dlls/xaudio2_7/tests/xaudio2.c index 52850343da2..006d3b6b463 100644 --- a/dlls/xaudio2_7/tests/xaudio2.c +++ b/dlls/xaudio2_7/tests/xaudio2.c @@ -1279,6 +1279,22 @@ static void test_setchannelvolumes(IXAudio2 *xa) IXAudio2MasteringVoice_DestroyVoice(master); }
+#if XAUDIO2_VER >= 8 +static void test_XAudio2CreateWithVersionInfo(void) +{ + IXAudio2 *audio; + HRESULT hr; + + hr = XAudio2CreateWithVersionInfo(&audio, 0, XAUDIO2_DEFAULT_PROCESSOR, 0); + ok(hr == S_OK, "got %#lx.\n", hr); + IXAudio2_Release(audio); + + hr = XAudio2CreateWithVersionInfo(&audio, 0, XAUDIO2_DEFAULT_PROCESSOR, ~0); + ok(hr == S_OK, "got %#lx.\n", hr); + IXAudio2_Release(audio); +} +#endif + static UINT32 check_has_devices(IXAudio2 *xa) { HRESULT hr; @@ -1305,6 +1321,10 @@ START_TEST(xaudio2) if (!(audio = create_xaudio2())) return;
+#if XAUDIO2_VER >= 8 + test_XAudio2CreateWithVersionInfo(); +#endif + test_interfaces(audio);
if (check_has_devices(audio)) diff --git a/dlls/xaudio2_7/xaudio_dll.c b/dlls/xaudio2_7/xaudio_dll.c index 1035f0b21b1..6eac068f986 100644 --- a/dlls/xaudio2_7/xaudio_dll.c +++ b/dlls/xaudio2_7/xaudio_dll.c @@ -2014,4 +2014,11 @@ HRESULT WINAPI XAudio2Create(IXAudio2 **ppxa2, UINT32 flags, XAUDIO2_PROCESSOR p
return S_OK; } + +HRESULT WINAPI XAudio2CreateWithVersionInfo(IXAudio2 **ppxa2, UINT32 flags, XAUDIO2_PROCESSOR proc, DWORD version) +{ + TRACE( "%p %#x %#x %#lx.\n", ppxa2, flags, proc, version ); + + return XAudio2Create(ppxa2, flags, proc); +} #endif /* XAUDIO2_VER >= 8 */ diff --git a/dlls/xaudio2_8/xaudio2_8.spec b/dlls/xaudio2_8/xaudio2_8.spec index 78bf05bdb61..a1ee50d4f73 100644 --- a/dlls/xaudio2_8/xaudio2_8.spec +++ b/dlls/xaudio2_8/xaudio2_8.spec @@ -4,3 +4,4 @@ 4 cdecl -ordinal CreateFX(ptr ptr ptr long) 5 cdecl -ordinal X3DAudioCalculate(ptr ptr ptr long ptr) 6 cdecl -ordinal X3DAudioInitialize(long float ptr) +7 stdcall -ordinal XAudio2CreateWithVersionInfo(ptr long long long) diff --git a/dlls/xaudio2_9/xaudio2_9.spec b/dlls/xaudio2_9/xaudio2_9.spec index 78bf05bdb61..a1ee50d4f73 100644 --- a/dlls/xaudio2_9/xaudio2_9.spec +++ b/dlls/xaudio2_9/xaudio2_9.spec @@ -4,3 +4,4 @@ 4 cdecl -ordinal CreateFX(ptr ptr ptr long) 5 cdecl -ordinal X3DAudioCalculate(ptr ptr ptr long ptr) 6 cdecl -ordinal X3DAudioInitialize(long float ptr) +7 stdcall -ordinal XAudio2CreateWithVersionInfo(ptr long long long) diff --git a/include/xaudio2.idl b/include/xaudio2.idl index ac63757720b..2ecc006176c 100644 --- a/include/xaudio2.idl +++ b/include/xaudio2.idl @@ -603,4 +603,5 @@ cpp_quote("#endif")
#if XAUDIO2_VER >= 8 cpp_quote("HRESULT WINAPI XAudio2Create(IXAudio2** pxaudio2, UINT32 flags, XAUDIO2_PROCESSOR processor);") +cpp_quote("HRESULT WINAPI XAudio2CreateWithVersionInfo(IXAudio2** pxaudio2, UINT32 flags, XAUDIO2_PROCESSOR processor, DWORD version);") #endif