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 #ifndef __AQADMTYP_H__
7 #define __AQADMTYP_H__
8 
9 #define MIDL(x)
10 #define QUEUE_ADMIN_MAX_BUFFER_REQUIRED 200
11 
12 typedef enum tagQUEUE_ADMIN_VERSIONS {
13   CURRENT_QUEUE_ADMIN_VERSION = 4,
14 } QUEUE_ADMIN_VERSIONS;
15 
16 typedef struct tagMESSAGE_FILTER {
17   DWORD dwVersion;
18   DWORD fFlags;
19   LPCWSTR szMessageId;
20   LPCWSTR szMessageSender;
21   LPCWSTR szMessageRecipient;
22   DWORD dwLargerThanSize;
23   SYSTEMTIME stOlderThan;
24 } MESSAGE_FILTER,*PMESSAGE_FILTER;
25 
26 typedef enum tagMESSAGE_FILTER_FLAGS {
27   MF_MESSAGEID = 0x1,
28   MF_SENDER = 0x2,
29   MF_RECIPIENT = 0x4,
30   MF_SIZE = 0x8,
31   MF_TIME = 0x10,
32   MF_FROZEN = 0x20,
33   MF_FAILED = 0x100,
34   MF_ALL = 0x40000000,
35   MF_INVERTSENSE = 0x80000000
36 } MESSAGE_FILTER_FLAGS;
37 
38 typedef enum tagMESSAGE_ACTION {
39   MA_THAW_GLOBAL = 0x1,
40   MA_COUNT = 0x2,
41   MA_FREEZE_GLOBAL = 0x4,
42   MA_DELETE = 0x8,
43   MA_DELETE_SILENT = 0x10
44 } MESSAGE_ACTION;
45 
46 typedef enum tagMESSAGE_ENUM_FILTER_TYPE {
47   MEF_FIRST_N_MESSAGES = 0x1,
48   MEF_SENDER = 0x2,
49   MEF_RECIPIENT = 0x4,
50   MEF_LARGER_THAN = 0x8,
51   MEF_OLDER_THAN = 0x10,
52   MEF_FROZEN = 0x20,
53   MEF_N_LARGEST_MESSAGES = 0x40,
54   MEF_N_OLDEST_MESSAGES = 0x80,
55   MEF_FAILED = 0x100,
56   MEF_ALL = 0x40000000,
57   MEF_INVERTSENSE = 0x80000000,
58 } MESSAGE_ENUM_FILTER_TYPE;
59 
60 typedef struct tagMESSAGE_ENUM_FILTER {
61   DWORD dwVersion;
62   DWORD mefType;
63   DWORD cMessages;
64   DWORD cbSize;
65   DWORD cSkipMessages;
66   SYSTEMTIME stDate;
67   LPCWSTR szMessageSender;
68   LPCWSTR szMessageRecipient;
69 } MESSAGE_ENUM_FILTER,*PMESSAGE_ENUM_FILTER;
70 
71 typedef enum tagLINK_INFO_FLAGS {
72   LI_ACTIVE = 0x1,
73   LI_READY = 0x2,
74   LI_RETRY = 0x4,
75   LI_SCHEDULED = 0x8,
76   LI_REMOTE = 0x10,
77   LI_FROZEN = 0x20,
78   LI_TYPE_REMOTE_DELIVERY = 0x100,
79   LI_TYPE_LOCAL_DELIVERY = 0x200,
80   LI_TYPE_PENDING_ROUTING = 0x400,
81   LI_TYPE_PENDING_CAT = 0x800,
82   LI_TYPE_CURRENTLY_UNREACHABLE = 0x1000,
83   LI_TYPE_DEFERRED_DELIVERY = 0x2000,
84   LI_TYPE_INTERNAL = 0x4000,
85   LI_TYPE_PENDING_SUBMIT = 0x8000
86 } LINK_INFO_FLAGS;
87 
88 typedef enum tagLINK_ACTION {
89   LA_INTERNAL = 0x0,
90   LA_KICK = 0x1,
91   LA_FREEZE = 0x20,
92   LA_THAW = 0x40
93 } LINK_ACTION;
94 
95 typedef struct tagLINK_INFO {
96   DWORD dwVersion;
97   LPWSTR szLinkName;
98   DWORD cMessages;
99   DWORD fStateFlags;
100   SYSTEMTIME stNextScheduledConnection;
101   SYSTEMTIME stOldestMessage;
102   ULARGE_INTEGER cbLinkVolume;
103   LPWSTR szLinkDN;
104   LPWSTR szExtendedStateInfo;
105   DWORD dwSupportedLinkActions;
106 } LINK_INFO,*PLINK_INFO;
107 
108 typedef struct tagQUEUE_INFO {
109   DWORD dwVersion;
110   LPWSTR szQueueName;
111   LPWSTR szLinkName;
112   DWORD cMessages;
113   ULARGE_INTEGER cbQueueVolume;
114   DWORD dwMsgEnumFlagsSupported;
115 } QUEUE_INFO,*PQUEUE_INFO;
116 
117 typedef enum tagAQ_MESSAGE_FLAGS {
118   MP_HIGH = 0x1,
119   MP_NORMAL = 0x2,
120   MP_LOW = 0x4,
121   MP_MSG_FROZEN = 0x8,
122   MP_MSG_RETRY = 0x10,
123   MP_MSG_CONTENT_AVAILABLE = 0x20
124 } AQ_MESSAGE_FLAGS;
125 
126 typedef struct tagMESSAGE_INFO {
127   DWORD dwVersion;
128   LPWSTR szMessageId;
129   LPWSTR szSender;
130   LPWSTR szSubject;
131   DWORD cRecipients;
132   LPWSTR szRecipients;
133   DWORD cCCRecipients;
134   LPWSTR szCCRecipients;
135   DWORD cBCCRecipients;
136   LPWSTR szBCCRecipients;
137   DWORD fMsgFlags;
138   DWORD cbMessageSize;
139   SYSTEMTIME stSubmission;
140   SYSTEMTIME stReceived;
141   SYSTEMTIME stExpiry;
142   DWORD cFailures;
143   DWORD cEnvRecipients;
144   DWORD cbEnvRecipients;
145   WCHAR *mszEnvRecipients;
146 } MESSAGE_INFO,*PMESSAGE_INFO;
147 
148 typedef enum tagQUEUELINK_TYPE {
149   QLT_QUEUE,QLT_LINK,QLT_NONE
150 } QUEUELINK_TYPE;
151 
152 typedef struct tagQUEUELINK_ID {
153   GUID uuid;
154   LPWSTR szName;
155   DWORD dwId;
156   QUEUELINK_TYPE qltType;
157 } QUEUELINK_ID;
158 #endif
159