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);