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