Signed-off-by: Alistair Leslie-Hughes leslie_alistair@hotmail.com --- dlls/xactengine3_6/Makefile.in | 11 +++++++++++ dlls/xactengine3_6/xactengine3_6.spec | 4 ++++ dlls/xactengine3_7/xact_classes.idl | 11 ++++++++++- 3 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 dlls/xactengine3_6/Makefile.in create mode 100644 dlls/xactengine3_6/xactengine3_6.spec
diff --git a/dlls/xactengine3_6/Makefile.in b/dlls/xactengine3_6/Makefile.in new file mode 100644 index 00000000000..fad71a2fd57 --- /dev/null +++ b/dlls/xactengine3_6/Makefile.in @@ -0,0 +1,11 @@ +MODULE = xactengine3_6.dll +IMPORTS = ole32 uuid +EXTRADEFS = -DXACT3_VER=0x0306 +PARENTSRC = ../xactengine3_7 +EXTRALIBS = $(FAUDIO_LIBS) +EXTRAINCL = $(FAUDIO_CFLAGS) + +C_SRCS = \ + xact_dll.c + +IDL_SRCS = xact_classes.idl diff --git a/dlls/xactengine3_6/xactengine3_6.spec b/dlls/xactengine3_6/xactengine3_6.spec new file mode 100644 index 00000000000..b16365d0c9f --- /dev/null +++ b/dlls/xactengine3_6/xactengine3_6.spec @@ -0,0 +1,4 @@ +@ stdcall -private DllCanUnloadNow() +@ stdcall -private DllGetClassObject(ptr ptr ptr) +@ stdcall -private DllRegisterServer() +@ stdcall -private DllUnregisterServer() diff --git a/dlls/xactengine3_7/xact_classes.idl b/dlls/xactengine3_7/xact_classes.idl index 24c792e2f05..a6abeb773ca 100644 --- a/dlls/xactengine3_7/xact_classes.idl +++ b/dlls/xactengine3_7/xact_classes.idl @@ -20,9 +20,18 @@
#pragma makedep register
+#if XACT3_VER == 0x0306 [ - helpstring("XACT3 Class"), + helpstring("XACT3.6 Class"), + threading(both), + uuid(248d8a3b-6256-44d3-a018-2ac96c459f47) +] +coclass XACTEngine36 { interface IXACT37Engine; } +#else /* XACT3_VER == 0x0307 or not defined */ +[ + helpstring("XACT3.7 Class"), threading(both), uuid(bcc782bc-6492-4c22-8c35-f5d72fe73c6e) ] coclass XACTEngine37 { interface IXACT37Engine; } +#endif
On 8/6/20 1:09 AM, Alistair Leslie-Hughes wrote:
Signed-off-by: Alistair Leslie-Hughes leslie_alistair@hotmail.com
dlls/xactengine3_6/Makefile.in | 11 +++++++++++ dlls/xactengine3_6/xactengine3_6.spec | 4 ++++ dlls/xactengine3_7/xact_classes.idl | 11 ++++++++++- 3 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 dlls/xactengine3_6/Makefile.in create mode 100644 dlls/xactengine3_6/xactengine3_6.spec
diff --git a/dlls/xactengine3_6/Makefile.in b/dlls/xactengine3_6/Makefile.in new file mode 100644 index 00000000000..fad71a2fd57 --- /dev/null +++ b/dlls/xactengine3_6/Makefile.in @@ -0,0 +1,11 @@ +MODULE = xactengine3_6.dll +IMPORTS = ole32 uuid +EXTRADEFS = -DXACT3_VER=0x0306 +PARENTSRC = ../xactengine3_7 +EXTRALIBS = $(FAUDIO_LIBS) +EXTRAINCL = $(FAUDIO_CFLAGS)
+C_SRCS = \
- xact_dll.c
+IDL_SRCS = xact_classes.idl diff --git a/dlls/xactengine3_6/xactengine3_6.spec b/dlls/xactengine3_6/xactengine3_6.spec new file mode 100644 index 00000000000..b16365d0c9f --- /dev/null +++ b/dlls/xactengine3_6/xactengine3_6.spec @@ -0,0 +1,4 @@ +@ stdcall -private DllCanUnloadNow() +@ stdcall -private DllGetClassObject(ptr ptr ptr) +@ stdcall -private DllRegisterServer() +@ stdcall -private DllUnregisterServer() diff --git a/dlls/xactengine3_7/xact_classes.idl b/dlls/xactengine3_7/xact_classes.idl index 24c792e2f05..a6abeb773ca 100644 --- a/dlls/xactengine3_7/xact_classes.idl +++ b/dlls/xactengine3_7/xact_classes.idl @@ -20,9 +20,18 @@
#pragma makedep register
+#if XACT3_VER == 0x0306 [
- helpstring("XACT3 Class"),
- helpstring("XACT3.6 Class"),
- threading(both),
- uuid(248d8a3b-6256-44d3-a018-2ac96c459f47)
+] +coclass XACTEngine36 { interface IXACT37Engine; } +#else /* XACT3_VER == 0x0307 or not defined */ +[
- helpstring("XACT3.7 Class"), threading(both), uuid(bcc782bc-6492-4c22-8c35-f5d72fe73c6e)
] coclass XACTEngine37 { interface IXACT37Engine; } +#endif
I think this could be simplified by removing the helpstring (which native doesn't have either) and using the same coclass name as the public header, i.e. by putting the preprocessor directives just around the uuid line.