Module: wine
Branch: master
Commit: 6070536f170afa1936d70d6c22f4977686fff530
URL: https://gitlab.winehq.org/wine/wine/-/commit/6070536f170afa1936d70d6c22f497…
Author: Mohamad Al-Jaf <mohamadaljaf(a)gmail.com>
Date: Tue May 28 23:46:36 2024 -0400
coremessaging: Add CreateDispatcherQueueController() stub.
Needed by Photoshop 2024.
---
dlls/coremessaging/Makefile.in | 3 +++
dlls/coremessaging/coremessaging.spec | 2 +-
dlls/coremessaging/main.c | 30 ++++++++++++++++++++++++++++++
3 files changed, 34 insertions(+), 1 deletion(-)
diff --git a/dlls/coremessaging/Makefile.in b/dlls/coremessaging/Makefile.in
index 2d43a9077cd..0aa0fc43a9b 100644
--- a/dlls/coremessaging/Makefile.in
+++ b/dlls/coremessaging/Makefile.in
@@ -1 +1,4 @@
MODULE = coremessaging.dll
+
+SOURCES = \
+ main.c
diff --git a/dlls/coremessaging/coremessaging.spec b/dlls/coremessaging/coremessaging.spec
index f8c31e6fbdb..58f2be2dc8e 100644
--- a/dlls/coremessaging/coremessaging.spec
+++ b/dlls/coremessaging/coremessaging.spec
@@ -15,7 +15,7 @@
@ stub CoreUIOpenExisting
@ stub CoreUIRouteToTestRegistrar
@ stub CoreUIUninitializeTestService
-@ stub CreateDispatcherQueueController
+@ stdcall CreateDispatcherQueueController(long long long ptr)
@ stub CreateDispatcherQueueForCurrentThread
@ stdcall -private DllCanUnloadNow()
@ stub DllGetActivationFactory
diff --git a/dlls/coremessaging/main.c b/dlls/coremessaging/main.c
new file mode 100644
index 00000000000..4944f28a49a
--- /dev/null
+++ b/dlls/coremessaging/main.c
@@ -0,0 +1,30 @@
+/* WinRT CoreMessaging Implementation
+ *
+ * Copyright (C) 2024 Mohamad Al-Jaf
+ *
+ * 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 "dispatcherqueue.h"
+#include "wine/debug.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(messaging);
+
+HRESULT WINAPI CreateDispatcherQueueController( DispatcherQueueOptions options, PDISPATCHERQUEUECONTROLLER *queue_controller )
+{
+ FIXME( "options.dwSize = %lu, options.threadType = %d, options.apartmentType = %d, queue_controller %p stub!\n",
+ options.dwSize, options.threadType, options.apartmentType, queue_controller );
+ return E_NOTIMPL;
+}
Module: wine
Branch: master
Commit: 05ff16ebb61081ef6bfba3ecd8df98856668f8a8
URL: https://gitlab.winehq.org/wine/wine/-/commit/05ff16ebb61081ef6bfba3ecd8df98…
Author: Mohamad Al-Jaf <mohamadaljaf(a)gmail.com>
Date: Tue May 28 23:34:49 2024 -0400
include: Add dispatcherqueue.idl file.
---
include/Makefile.in | 1 +
include/dispatcherqueue.idl | 48 +++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 49 insertions(+)
diff --git a/include/Makefile.in b/include/Makefile.in
index fa8c096eabd..81ff6cfa634 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -239,6 +239,7 @@ SOURCES = \
dinput.h \
dinputd.h \
directmanipulation.idl \
+ dispatcherqueue.idl \
dispdib.h \
dispex.idl \
dlgs.h \
diff --git a/include/dispatcherqueue.idl b/include/dispatcherqueue.idl
new file mode 100644
index 00000000000..7a4be6ede0e
--- /dev/null
+++ b/include/dispatcherqueue.idl
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2024 Mohamad Al-Jaf
+ *
+ * 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
+ */
+
+#ifdef __WIDL__
+#pragma winrt ns_prefix
+#endif
+
+import "windows.system.idl";
+
+typedef Windows.System.IDispatcherQueue *PDISPATCHERQUEUE;
+typedef Windows.System.IDispatcherQueueController *PDISPATCHERQUEUECONTROLLER;
+
+typedef enum DISPATCHERQUEUE_THREAD_APARTMENTTYPE
+{
+ DQTAT_COM_NONE = 0,
+ DQTAT_COM_ASTA = 1,
+ DQTAT_COM_STA = 2,
+} DISPATCHERQUEUE_THREAD_APARTMENTTYPE;
+
+typedef enum DISPATCHERQUEUE_THREAD_TYPE
+{
+ DQTYPE_THREAD_DEDICATED = 1,
+ DQTYPE_THREAD_CURRENT = 2,
+} DISPATCHERQUEUE_THREAD_TYPE;
+
+typedef struct DispatcherQueueOptions
+{
+ DWORD dwSize;
+ DISPATCHERQUEUE_THREAD_TYPE threadType;
+ DISPATCHERQUEUE_THREAD_APARTMENTTYPE apartmentType;
+} DispatcherQueueOptions;
+
+[local] HRESULT __stdcall CreateDispatcherQueueController(DispatcherQueueOptions options, PDISPATCHERQUEUECONTROLLER *queue_controller);