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 _INC_EVCOLL
7#define _INC_EVCOLL
8#if (_WIN32_WINNT >= 0x0600)
9#ifdef __cplusplus
10extern "C" {
11#endif
12
13typedef enum _EC_SUBSCRIPTION_CONFIGURATION_MODE {
14  EcConfigurationModeNormal         = 0,
15  EcConfigurationModeCustom         = 1,
16  EcConfigurationModeMinLatency     = 2,
17  EcConfigurationModeMinBandwidth   = 3
18} EC_SUBSCRIPTION_CONFIGURATION_MODE;
19
20typedef enum _EC_SUBSCRIPTION_CONTENT_FORMAT {
21  EcContentFormatEvents         = 1,
22  EcContentFormatRenderedText   = 2
23} EC_SUBSCRIPTION_CONTENT_FORMAT;
24
25typedef enum _EC_SUBSCRIPTION_CREDENTIALS_TYPE {
26  EcSubscriptionCredDefault        = 0,
27  EcSubscriptionCredNegotiate      = 1,
28  EcSubscriptionCredDigest         = 2,
29  EcSubscriptionCredBasic          = 3,
30  EcSubscriptionCredLocalMachine   = 4
31} EC_SUBSCRIPTION_CREDENTIALS_TYPE;
32
33typedef enum _EC_SUBSCRIPTION_DELIVERY_MODE {
34  EcDeliveryModePull   = 1,
35  EcDeliveryModePush   = 2
36} EC_SUBSCRIPTION_DELIVERY_MODE;
37
38typedef enum _EC_SUBSCRIPTION_PROPERTY_ID {
39  EcSubscriptionEnabled                        = 0,
40  EcSubscriptionEventSources                   = 1,
41  EcSubscriptionEventSourceAddress             = 2,
42  EcSubscriptionEventSourceEnabled             = 3,
43  EcSubscriptionEventSourceUserName            = 4,
44  EcSubscriptionEventSourcePassword            = 5,
45  EcSubscriptionDescription                    = 6,
46  EcSubscriptionURI                            = 7,
47  EcSubscriptionConfigurationMode              = 8,
48  EcSubscriptionExpires                        = 9,
49  EcSubscriptionQuery                          = 10,
50  EcSubscriptionTransportName                  = 11,
51  EcSubscriptionTransportPort                  = 12,
52  EcSubscriptionDeliveryMode                   = 13,
53  EcSubscriptionDeliveryMaxItems               = 14,
54  EcSubscriptionDeliveryMaxLatencyTime         = 15,
55  EcSubscriptionHeartbeatInterval              = 16,
56  EcSubscriptionLocale                         = 17,
57  EcSubscriptionContentFormat                  = 18,
58  EcSubscriptionLogFile                        = 19,
59  EcSubscriptionPublisherName                  = 20,
60  EcSubscriptionCredentialsType                = 21,
61  EcSubscriptionCommonUserName                 = 22,
62  EcSubscriptionCommonPassword                 = 23,
63  EcSubscriptionHostName                       = 24,
64  EcSubscriptionReadExistingEvents             = 25,
65  EcSubscriptionDialect                        = 26,
66  EcSubscriptionType                           = 27,
67  EcSubscriptionAllowedIssuerCAs               = 28,
68  EcSubscriptionAllowedSubjects                = 29,
69  EcSubscriptionDeniedSubjects                 = 30,
70  EcSubscriptionAllowedSourceDomainComputers   = 31
71} EC_SUBSCRIPTION_PROPERTY_ID;
72
73typedef enum _EC_SUBSCRIPTION_RUNTIME_STATUS_ACTIVE_STATUS {
74  EcRuntimeStatusActiveStatusDisabled   = 1,
75  EcRuntimeStatusActiveStatusActive     = 2,
76  EcRuntimeStatusActiveStatusInactive   = 3,
77  EcRuntimeStatusActiveStatusTrying     = 4
78} EC_SUBSCRIPTION_RUNTIME_STATUS_ACTIVE_STATUS;
79
80typedef enum _EC_SUBSCRIPTION_TYPE {
81  EcSubscriptionTypeSourceInitiated      = 0,
82  EcSubscriptionTypeCollectorInitiated   = 1
83} EC_SUBSCRIPTION_TYPE;
84
85typedef enum _EC_SUBSCRIPTION_RUNTIME_STATUS_INFO_ID {
86  EcSubscriptionRunTimeStatusActive              = 0,
87  EcSubscriptionRunTimeStatusLastError           = 1,
88  EcSubscriptionRunTimeStatusLastErrorMessage    = 2,
89  EcSubscriptionRunTimeStatusLastErrorTime       = 3,
90  EcSubscriptionRunTimeStatusNextRetryTime       = 4,
91  EcSubscriptionRunTimeStatusEventSources        = 5,
92  EcSubscriptionRunTimeStatusLastHeartbeatTime   = 6
93} EC_SUBSCRIPTION_RUNTIME_STATUS_INFO_ID;
94
95typedef struct _EC_VARIANT {
96  __C89_NAMELESS union {
97    BOOL      BooleanVal;
98    UINT32    UInt32Val;
99    ULONGLONG DateTimeVal;
100    LPCWSTR   StringVal;
101    PBYTE     BinaryVal;
102    WINBOOL   *BooleanArr;
103    INT32*    Int32Arr;
104    LPWSTR    *StringArr;
105  };
106  DWORD Count;
107  DWORD Type;
108} EC_VARIANT, *PEC_VARIANT;
109
110typedef enum _EC_VARIANT_TYPE {
111  EcVarTypeNull                    = 0,
112  EcVarTypeBoolean                 = 1,
113  EcVarTypeUInt32                  = 2,
114  EcVarTypeDateTime                = 3,
115  EcVarTypeString                  = 4,
116  EcVarObjectArrayPropertyHandle   = 5
117} EC_VARIANT_TYPE;
118
119typedef LPVOID EC_HANDLE;
120
121WINBOOL WINAPI EcClose(
122  EC_HANDLE Object
123);
124
125WINBOOL WINAPI EcDeleteSubscription(
126  LPCWSTR SubscriptionName,
127  DWORD Flags
128);
129
130WINBOOL WINAPI EcEnumNextSubscription(
131  EC_HANDLE SubscriptionEnum,
132  DWORD SubscriptionNameBufferSize,
133  LPWSTR SubscriptionNameBuffer,
134  PDWORD SubscriptionNameBufferUsed
135);
136
137WINBOOL WINAPI EcGetObjectArrayProperty(
138  EC_OBJECT_ARRAY_PROPERTY_HANDLE ObjectArray,
139  EC_SUBSCRIPTION_PROPERTY_ID PropertyId,
140  DWORD ArrayIndex,
141  DWORD Flags,
142  DWORD PropertyValueBufferSize,
143  PEC_VARIANT PropertyValueBuffer,
144  PDWORD PropertyValueBufferUsed
145);
146
147WINBOOL WINAPI EcGetObjectArraySize(
148  EC_OBJECT_ARRAY_PROPERTY_HANDLE ObjectArray,
149  PDWORD ObjectArraySize
150);
151
152WINBOOL WINAPI EcGetSubscriptionProperty(
153  EC_HANDLE Subscription,
154  EC_SUBSCRIPTION_PROPERTY_ID PropertyId,
155  DWORD Flags,
156  DWORD PropertyValueBufferSize,
157  PEC_VARIANT PropertyValueBuffer,
158  PDWORD PropertyValueBufferUsed
159);
160
161WINBOOL WINAPI EcGetSubscriptionRunTimeStatus(
162  LPCWSTR SubscriptionName,
163  EC_SUBSCRIPTION_RUNTIME_STATUS_INFO_ID StatusInfoId,
164  LPCWSTR EventSourceName,
165  DWORD Flags,
166  DWORD StatusValueBufferSize,
167  PEC_VARIANT StatusValueBuffer,
168  PDWORD StatusValueBufferUsed
169);
170
171WINBOOL WINAPI EcInsertObjectArrayElement(
172  EC_OBJECT_ARRAY_PROPERTY_HANDLE ObjectArray,
173  DWORD ArrayIndex
174);
175
176EC_HANDLE WINAPI EcOpenSubscription(
177  LPCWSTR SubscriptionName,
178  DWORD AccessMask,
179  DWORD Flags
180);
181
182EC_HANDLE WINAPI EcOpenSubscriptionEnum(
183  DWORD Flags
184);
185
186WINBOOL WINAPI EcRemoveObjectArrayElement(
187  EC_OBJECT_ARRAY_PROPERTY_HANDLE ObjectArray,
188  DWORD ArrayIndex
189);
190
191WINBOOL WINAPI EcRetrySubscription(
192  LPCWSTR SubscriptionName,
193  LPCWSTR EventSourceName,
194  DWORD Flags
195);
196
197WINBOOL WINAPI EcSaveSubscription(
198  EC_HANDLE Subscription,
199  DWORD Flags
200);
201
202WINBOOL WINAPI EcSetObjectArrayProperty(
203  EC_OBJECT_ARRAY_PROPERTY_HANDLE ObjectArray,
204  EC_SUBSCRIPTION_PROPERTY_ID PropertyId,
205  DWORD ArrayIndex,
206  DWORD Flags,
207  PEC_VARIANT PropertyValue
208);
209
210WINBOOL WINAPI EcSetSubscriptionProperty(
211  EC_HANDLE Subscription,
212  EC_SUBSCRIPTION_PROPERTY_ID PropertyId,
213  DWORD Flags,
214  PEC_VARIANT PropertyValue
215);
216
217#ifdef __cplusplus
218}
219#endif
220#endif /*(_WIN32_WINNT >= 0x0600)*/
221#endif /*_INC_EVCOLL*/
222