master
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#ifndef _DISPATCHERQUEUE_H_
8#define _DISPATCHERQUEUE_H_
9
10#include <windows.system.h>
11
12typedef ABI::Windows::System::IDispatcherQueue *PDISPATCHERQUEUE;
13typedef ABI::Windows::System::IDispatcherQueueController *PDISPATCHERQUEUECONTROLLER;
14
15#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
16
17enum DISPATCHERQUEUE_THREAD_APARTMENTTYPE {
18 DQTAT_COM_NONE = 0,
19 DQTAT_COM_ASTA = 1,
20 DQTAT_COM_STA = 2
21};
22
23enum DISPATCHERQUEUE_THREAD_TYPE {
24 DQTYPE_THREAD_DEDICATED = 1,
25 DQTYPE_THREAD_CURRENT = 2
26};
27
28struct DispatcherQueueOptions {
29 DWORD dwSize;
30 DISPATCHERQUEUE_THREAD_TYPE threadType;
31 DISPATCHERQUEUE_THREAD_APARTMENTTYPE apartmentType;
32};
33
34EXTERN_C HRESULT WINAPI CreateDispatcherQueueController(DispatcherQueueOptions options, PDISPATCHERQUEUECONTROLLER *dispatcherQueueController);
35
36#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
37
38#endif /* _DISPATCHERQUEUE_H_ */