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_ */