Module: wine
Branch: master
Commit: 7d6c6025923c039ac6a2458ca466290621238c36
URL: http://source.winehq.org/git/wine.git/?a=commit;h=7d6c6025923c039ac6a2458ca…
Author: Andrew Eikum <aeikum(a)codeweavers.com>
Date: Fri Oct 2 09:02:56 2015 -0500
openal32: Prefer native version.
Because openal contexts are global per-process, applications that use
openal will conflict with Wine DLLs that use openal like xaudio2_7 now
does. Windows does not ship an openal32, so all applications that use
openal will ship their own copy of it. According to Chris Robinson,
Windows native openal32 works fine in Wine, so we should just use that
to avoid the problem.
Signed-off-by: Andrew Eikum <aeikum(a)codeweavers.com>
---
dlls/openal32/openal.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/dlls/openal32/openal.c b/dlls/openal32/openal.c
index 5a4e1e7..cd49b92 100644
--- a/dlls/openal32/openal.c
+++ b/dlls/openal32/openal.c
@@ -99,6 +99,8 @@ BOOL WINAPI DllMain( HINSTANCE hinst, DWORD reason, LPVOID reserved )
{
switch(reason)
{
+ case DLL_WINE_PREATTACH:
+ return FALSE; /* prefer native version */
case DLL_PROCESS_ATTACH:
DisableThreadLibraryCalls(hinst);
#define LOADFUNC(x) x = alcGetProcAddress(NULL, #x)
Module: wine
Branch: master
Commit: 7d7b1176dae9aff25db1882ca29bfc298ab2a2fb
URL: http://source.winehq.org/git/wine.git/?a=commit;h=7d7b1176dae9aff25db1882ca…
Author: Andrew Eikum <aeikum(a)codeweavers.com>
Date: Fri Oct 2 08:49:54 2015 -0500
xaudio2_6: Forward to xaudio2_7.
Signed-off-by: Andrew Eikum <aeikum(a)codeweavers.com>
---
configure | 2 ++
configure.ac | 1 +
dlls/xaudio2_6/Makefile.in | 7 ++++++
dlls/xaudio2_6/xaudio2_6.spec | 4 +++
dlls/xaudio2_6/xaudio_classes.idl | 28 +++++++++++++++++++++
dlls/xaudio2_6/xaudio_dll.c | 52 +++++++++++++++++++++++++++++++++++++++
dlls/xaudio2_7/xaudio_dll.c | 2 ++
include/xaudio2.idl | 7 ++++++
8 files changed, 103 insertions(+)
diff --git a/configure b/configure
index 8af7bc8..cf5dc78 100755
--- a/configure
+++ b/configure
@@ -1377,6 +1377,7 @@ enable_xapofx1_5
enable_xaudio2_3
enable_xaudio2_4
enable_xaudio2_5
+enable_xaudio2_6
enable_xaudio2_7
enable_xaudio2_8
enable_xinput1_1
@@ -17917,6 +17918,7 @@ wine_fn_config_dll xapofx1_5 enable_xapofx1_5
wine_fn_config_dll xaudio2_3 enable_xaudio2_3 clean
wine_fn_config_dll xaudio2_4 enable_xaudio2_4 clean
wine_fn_config_dll xaudio2_5 enable_xaudio2_5 clean
+wine_fn_config_dll xaudio2_6 enable_xaudio2_6 clean
wine_fn_config_dll xaudio2_7 enable_xaudio2_7 clean
wine_fn_config_test dlls/xaudio2_7/tests xaudio2_7_test
wine_fn_config_dll xaudio2_8 enable_xaudio2_8
diff --git a/configure.ac b/configure.ac
index e420df7..bd98b6c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3463,6 +3463,7 @@ WINE_CONFIG_DLL(xapofx1_5)
WINE_CONFIG_DLL(xaudio2_3,,[clean])
WINE_CONFIG_DLL(xaudio2_4,,[clean])
WINE_CONFIG_DLL(xaudio2_5,,[clean])
+WINE_CONFIG_DLL(xaudio2_6,,[clean])
WINE_CONFIG_DLL(xaudio2_7,,[clean])
WINE_CONFIG_TEST(dlls/xaudio2_7/tests)
WINE_CONFIG_DLL(xaudio2_8)
diff --git a/dlls/xaudio2_6/Makefile.in b/dlls/xaudio2_6/Makefile.in
new file mode 100644
index 0000000..c56b079
--- /dev/null
+++ b/dlls/xaudio2_6/Makefile.in
@@ -0,0 +1,7 @@
+MODULE = xaudio2_6.dll
+IMPORTS = ole32
+
+C_SRCS = \
+ xaudio_dll.c
+
+IDL_SRCS = xaudio_classes.idl
diff --git a/dlls/xaudio2_6/xaudio2_6.spec b/dlls/xaudio2_6/xaudio2_6.spec
new file mode 100644
index 0000000..cb263d4
--- /dev/null
+++ b/dlls/xaudio2_6/xaudio2_6.spec
@@ -0,0 +1,4 @@
+@ stdcall -private DllCanUnloadNow()
+@ stdcall -private DllGetClassObject(ptr ptr ptr) xaudio2_7.DllGetClassObject
+@ stdcall -private DllRegisterServer()
+@ stdcall -private DllUnregisterServer()
diff --git a/dlls/xaudio2_6/xaudio_classes.idl b/dlls/xaudio2_6/xaudio_classes.idl
new file mode 100644
index 0000000..e54eed7
--- /dev/null
+++ b/dlls/xaudio2_6/xaudio_classes.idl
@@ -0,0 +1,28 @@
+/*
+ * COM Classes for xaudio
+ *
+ * Copyright 2015 Andrew Eikum for CodeWeavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#pragma makedep register
+
+[
+ helpstring("XAudio2.6 Class"),
+ threading(both),
+ uuid(3eda9b49-2085-498b-9bb2-39a6778493de)
+]
+coclass XAudio26 { interface IXAudio27; }
diff --git a/dlls/xaudio2_6/xaudio_dll.c b/dlls/xaudio2_6/xaudio_dll.c
new file mode 100644
index 0000000..7c95c28
--- /dev/null
+++ b/dlls/xaudio2_6/xaudio_dll.c
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 2015 Andrew Eikum for CodeWeavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include <stdarg.h>
+#include "windef.h"
+#include "winbase.h"
+#include "objbase.h"
+#include "rpcproxy.h"
+
+static HINSTANCE instance;
+
+BOOL WINAPI DllMain(HINSTANCE hinstance, DWORD reason, LPVOID reserved)
+{
+ switch (reason)
+ {
+ case DLL_PROCESS_ATTACH:
+ instance = hinstance;
+ DisableThreadLibraryCalls(hinstance);
+ break;
+ }
+ return TRUE;
+}
+
+HRESULT WINAPI DllCanUnloadNow(void)
+{
+ return S_FALSE;
+}
+
+HRESULT WINAPI DllRegisterServer(void)
+{
+ return __wine_register_resources(instance);
+}
+
+HRESULT WINAPI DllUnregisterServer(void)
+{
+ return __wine_unregister_resources(instance);
+}
diff --git a/dlls/xaudio2_7/xaudio_dll.c b/dlls/xaudio2_7/xaudio_dll.c
index 23e0390..5453d25 100644
--- a/dlls/xaudio2_7/xaudio_dll.c
+++ b/dlls/xaudio2_7/xaudio_dll.c
@@ -2466,6 +2466,8 @@ HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, void **ppv)
factory = make_xaudio2_factory(24);
}else if(IsEqualGUID(rclsid, &CLSID_XAudio25)){
factory = make_xaudio2_factory(25);
+ }else if(IsEqualGUID(rclsid, &CLSID_XAudio26)){
+ factory = make_xaudio2_factory(26);
}else if(IsEqualGUID(rclsid, &CLSID_XAudio2)){
factory = make_xaudio2_factory(27);
}else if(IsEqualGUID(rclsid, &CLSID_AudioVolumeMeter)) {
diff --git a/include/xaudio2.idl b/include/xaudio2.idl
index dfef62c..5de6622 100644
--- a/include/xaudio2.idl
+++ b/include/xaudio2.idl
@@ -52,6 +52,13 @@ coclass XAudio25 {
}
[
+ uuid(3eda9b49-2085-498b-9bb2-39a6778493de)
+]
+coclass XAudio26 {
+ interface IUnknown;
+}
+
+[
uuid(db05ea35-0329-4d4b-a53a-6dead03d3852)
]
coclass XAudio2Debug {
Module: wine
Branch: master
Commit: c4f49ac9656fa0f15dedef1121241fd33d2f7444
URL: http://source.winehq.org/git/wine.git/?a=commit;h=c4f49ac9656fa0f15dedef112…
Author: Andrew Eikum <aeikum(a)codeweavers.com>
Date: Fri Oct 2 08:49:51 2015 -0500
xaudio2_5: Forward to xaudio2_7.
Signed-off-by: Andrew Eikum <aeikum(a)codeweavers.com>
---
configure | 2 ++
configure.ac | 1 +
dlls/xaudio2_5/Makefile.in | 7 ++++++
dlls/xaudio2_5/xaudio2_5.spec | 4 +++
dlls/xaudio2_5/xaudio_classes.idl | 28 +++++++++++++++++++++
dlls/xaudio2_5/xaudio_dll.c | 52 +++++++++++++++++++++++++++++++++++++++
dlls/xaudio2_7/xaudio_dll.c | 2 ++
include/xaudio2.idl | 7 ++++++
8 files changed, 103 insertions(+)
diff --git a/configure b/configure
index 9d4323a..8af7bc8 100755
--- a/configure
+++ b/configure
@@ -1376,6 +1376,7 @@ enable_xapofx1_4
enable_xapofx1_5
enable_xaudio2_3
enable_xaudio2_4
+enable_xaudio2_5
enable_xaudio2_7
enable_xaudio2_8
enable_xinput1_1
@@ -17915,6 +17916,7 @@ wine_fn_config_dll xapofx1_4 enable_xapofx1_4
wine_fn_config_dll xapofx1_5 enable_xapofx1_5
wine_fn_config_dll xaudio2_3 enable_xaudio2_3 clean
wine_fn_config_dll xaudio2_4 enable_xaudio2_4 clean
+wine_fn_config_dll xaudio2_5 enable_xaudio2_5 clean
wine_fn_config_dll xaudio2_7 enable_xaudio2_7 clean
wine_fn_config_test dlls/xaudio2_7/tests xaudio2_7_test
wine_fn_config_dll xaudio2_8 enable_xaudio2_8
diff --git a/configure.ac b/configure.ac
index b8960e9..e420df7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3462,6 +3462,7 @@ WINE_CONFIG_DLL(xapofx1_4)
WINE_CONFIG_DLL(xapofx1_5)
WINE_CONFIG_DLL(xaudio2_3,,[clean])
WINE_CONFIG_DLL(xaudio2_4,,[clean])
+WINE_CONFIG_DLL(xaudio2_5,,[clean])
WINE_CONFIG_DLL(xaudio2_7,,[clean])
WINE_CONFIG_TEST(dlls/xaudio2_7/tests)
WINE_CONFIG_DLL(xaudio2_8)
diff --git a/dlls/xaudio2_5/Makefile.in b/dlls/xaudio2_5/Makefile.in
new file mode 100644
index 0000000..6cc0565
--- /dev/null
+++ b/dlls/xaudio2_5/Makefile.in
@@ -0,0 +1,7 @@
+MODULE = xaudio2_5.dll
+IMPORTS = ole32
+
+C_SRCS = \
+ xaudio_dll.c
+
+IDL_SRCS = xaudio_classes.idl
diff --git a/dlls/xaudio2_5/xaudio2_5.spec b/dlls/xaudio2_5/xaudio2_5.spec
new file mode 100644
index 0000000..cb263d4
--- /dev/null
+++ b/dlls/xaudio2_5/xaudio2_5.spec
@@ -0,0 +1,4 @@
+@ stdcall -private DllCanUnloadNow()
+@ stdcall -private DllGetClassObject(ptr ptr ptr) xaudio2_7.DllGetClassObject
+@ stdcall -private DllRegisterServer()
+@ stdcall -private DllUnregisterServer()
diff --git a/dlls/xaudio2_5/xaudio_classes.idl b/dlls/xaudio2_5/xaudio_classes.idl
new file mode 100644
index 0000000..78d7c1e
--- /dev/null
+++ b/dlls/xaudio2_5/xaudio_classes.idl
@@ -0,0 +1,28 @@
+/*
+ * COM Classes for xaudio
+ *
+ * Copyright 2015 Andrew Eikum for CodeWeavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#pragma makedep register
+
+[
+ helpstring("XAudio2.5 Class"),
+ threading(both),
+ uuid(4c9b6dde-6809-46e6-a278-9b6a97588670)
+]
+coclass XAudio25 { interface IXAudio27; }
diff --git a/dlls/xaudio2_5/xaudio_dll.c b/dlls/xaudio2_5/xaudio_dll.c
new file mode 100644
index 0000000..7c95c28
--- /dev/null
+++ b/dlls/xaudio2_5/xaudio_dll.c
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 2015 Andrew Eikum for CodeWeavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include <stdarg.h>
+#include "windef.h"
+#include "winbase.h"
+#include "objbase.h"
+#include "rpcproxy.h"
+
+static HINSTANCE instance;
+
+BOOL WINAPI DllMain(HINSTANCE hinstance, DWORD reason, LPVOID reserved)
+{
+ switch (reason)
+ {
+ case DLL_PROCESS_ATTACH:
+ instance = hinstance;
+ DisableThreadLibraryCalls(hinstance);
+ break;
+ }
+ return TRUE;
+}
+
+HRESULT WINAPI DllCanUnloadNow(void)
+{
+ return S_FALSE;
+}
+
+HRESULT WINAPI DllRegisterServer(void)
+{
+ return __wine_register_resources(instance);
+}
+
+HRESULT WINAPI DllUnregisterServer(void)
+{
+ return __wine_unregister_resources(instance);
+}
diff --git a/dlls/xaudio2_7/xaudio_dll.c b/dlls/xaudio2_7/xaudio_dll.c
index 0cea0dd..23e0390 100644
--- a/dlls/xaudio2_7/xaudio_dll.c
+++ b/dlls/xaudio2_7/xaudio_dll.c
@@ -2464,6 +2464,8 @@ HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, void **ppv)
factory = make_xaudio2_factory(23);
}else if(IsEqualGUID(rclsid, &CLSID_XAudio24)){
factory = make_xaudio2_factory(24);
+ }else if(IsEqualGUID(rclsid, &CLSID_XAudio25)){
+ factory = make_xaudio2_factory(25);
}else if(IsEqualGUID(rclsid, &CLSID_XAudio2)){
factory = make_xaudio2_factory(27);
}else if(IsEqualGUID(rclsid, &CLSID_AudioVolumeMeter)) {
diff --git a/include/xaudio2.idl b/include/xaudio2.idl
index ec47092..dfef62c 100644
--- a/include/xaudio2.idl
+++ b/include/xaudio2.idl
@@ -45,6 +45,13 @@ coclass XAudio24 {
}
[
+ uuid(4c9b6dde-6809-46e6-a278-9b6a97588670)
+]
+coclass XAudio25 {
+ interface IUnknown;
+}
+
+[
uuid(db05ea35-0329-4d4b-a53a-6dead03d3852)
]
coclass XAudio2Debug {
Module: wine
Branch: master
Commit: a7ae7b47e5601ed82b5ad37933b7385a3c9ed2a7
URL: http://source.winehq.org/git/wine.git/?a=commit;h=a7ae7b47e5601ed82b5ad3793…
Author: Andrew Eikum <aeikum(a)codeweavers.com>
Date: Fri Oct 2 08:49:47 2015 -0500
xaudio2_4: Forward to xaudio2_7.
Signed-off-by: Andrew Eikum <aeikum(a)codeweavers.com>
---
configure | 2 ++
configure.ac | 1 +
dlls/xaudio2_4/Makefile.in | 7 ++++++
dlls/xaudio2_4/xaudio2_4.spec | 4 +++
dlls/xaudio2_4/xaudio_classes.idl | 28 +++++++++++++++++++++
dlls/xaudio2_4/xaudio_dll.c | 52 +++++++++++++++++++++++++++++++++++++++
dlls/xaudio2_7/xaudio_dll.c | 2 ++
include/xaudio2.idl | 7 ++++++
8 files changed, 103 insertions(+)
diff --git a/configure b/configure
index 164f3aa..9d4323a 100755
--- a/configure
+++ b/configure
@@ -1375,6 +1375,7 @@ enable_xapofx1_3
enable_xapofx1_4
enable_xapofx1_5
enable_xaudio2_3
+enable_xaudio2_4
enable_xaudio2_7
enable_xaudio2_8
enable_xinput1_1
@@ -17913,6 +17914,7 @@ wine_fn_config_dll xapofx1_3 enable_xapofx1_3
wine_fn_config_dll xapofx1_4 enable_xapofx1_4
wine_fn_config_dll xapofx1_5 enable_xapofx1_5
wine_fn_config_dll xaudio2_3 enable_xaudio2_3 clean
+wine_fn_config_dll xaudio2_4 enable_xaudio2_4 clean
wine_fn_config_dll xaudio2_7 enable_xaudio2_7 clean
wine_fn_config_test dlls/xaudio2_7/tests xaudio2_7_test
wine_fn_config_dll xaudio2_8 enable_xaudio2_8
diff --git a/configure.ac b/configure.ac
index 97370be..b8960e9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3461,6 +3461,7 @@ WINE_CONFIG_DLL(xapofx1_3)
WINE_CONFIG_DLL(xapofx1_4)
WINE_CONFIG_DLL(xapofx1_5)
WINE_CONFIG_DLL(xaudio2_3,,[clean])
+WINE_CONFIG_DLL(xaudio2_4,,[clean])
WINE_CONFIG_DLL(xaudio2_7,,[clean])
WINE_CONFIG_TEST(dlls/xaudio2_7/tests)
WINE_CONFIG_DLL(xaudio2_8)
diff --git a/dlls/xaudio2_4/Makefile.in b/dlls/xaudio2_4/Makefile.in
new file mode 100644
index 0000000..9a9f19b
--- /dev/null
+++ b/dlls/xaudio2_4/Makefile.in
@@ -0,0 +1,7 @@
+MODULE = xaudio2_4.dll
+IMPORTS = ole32
+
+C_SRCS = \
+ xaudio_dll.c
+
+IDL_SRCS = xaudio_classes.idl
diff --git a/dlls/xaudio2_4/xaudio2_4.spec b/dlls/xaudio2_4/xaudio2_4.spec
new file mode 100644
index 0000000..cb263d4
--- /dev/null
+++ b/dlls/xaudio2_4/xaudio2_4.spec
@@ -0,0 +1,4 @@
+@ stdcall -private DllCanUnloadNow()
+@ stdcall -private DllGetClassObject(ptr ptr ptr) xaudio2_7.DllGetClassObject
+@ stdcall -private DllRegisterServer()
+@ stdcall -private DllUnregisterServer()
diff --git a/dlls/xaudio2_4/xaudio_classes.idl b/dlls/xaudio2_4/xaudio_classes.idl
new file mode 100644
index 0000000..26af295
--- /dev/null
+++ b/dlls/xaudio2_4/xaudio_classes.idl
@@ -0,0 +1,28 @@
+/*
+ * COM Classes for xaudio
+ *
+ * Copyright 2015 Andrew Eikum for CodeWeavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#pragma makedep register
+
+[
+ helpstring("XAudio2.4 Class"),
+ threading(both),
+ uuid(03219e78-5bc3-44d1-b92e-f63d89cc6526)
+]
+coclass XAudio24 { interface IXAudio27; }
diff --git a/dlls/xaudio2_4/xaudio_dll.c b/dlls/xaudio2_4/xaudio_dll.c
new file mode 100644
index 0000000..7c95c28
--- /dev/null
+++ b/dlls/xaudio2_4/xaudio_dll.c
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 2015 Andrew Eikum for CodeWeavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include <stdarg.h>
+#include "windef.h"
+#include "winbase.h"
+#include "objbase.h"
+#include "rpcproxy.h"
+
+static HINSTANCE instance;
+
+BOOL WINAPI DllMain(HINSTANCE hinstance, DWORD reason, LPVOID reserved)
+{
+ switch (reason)
+ {
+ case DLL_PROCESS_ATTACH:
+ instance = hinstance;
+ DisableThreadLibraryCalls(hinstance);
+ break;
+ }
+ return TRUE;
+}
+
+HRESULT WINAPI DllCanUnloadNow(void)
+{
+ return S_FALSE;
+}
+
+HRESULT WINAPI DllRegisterServer(void)
+{
+ return __wine_register_resources(instance);
+}
+
+HRESULT WINAPI DllUnregisterServer(void)
+{
+ return __wine_unregister_resources(instance);
+}
diff --git a/dlls/xaudio2_7/xaudio_dll.c b/dlls/xaudio2_7/xaudio_dll.c
index ed5ef49..0cea0dd 100644
--- a/dlls/xaudio2_7/xaudio_dll.c
+++ b/dlls/xaudio2_7/xaudio_dll.c
@@ -2462,6 +2462,8 @@ HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, void **ppv)
if IsEqualGUID(rclsid, &CLSID_XAudio23){
factory = make_xaudio2_factory(23);
+ }else if(IsEqualGUID(rclsid, &CLSID_XAudio24)){
+ factory = make_xaudio2_factory(24);
}else if(IsEqualGUID(rclsid, &CLSID_XAudio2)){
factory = make_xaudio2_factory(27);
}else if(IsEqualGUID(rclsid, &CLSID_AudioVolumeMeter)) {
diff --git a/include/xaudio2.idl b/include/xaudio2.idl
index 1730648..ec47092 100644
--- a/include/xaudio2.idl
+++ b/include/xaudio2.idl
@@ -38,6 +38,13 @@ coclass XAudio23 {
}
[
+ uuid(03219e78-5bc3-44d1-b92e-f63d89cc6526)
+]
+coclass XAudio24 {
+ interface IUnknown;
+}
+
+[
uuid(db05ea35-0329-4d4b-a53a-6dead03d3852)
]
coclass XAudio2Debug {