/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the mingw-w64 runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
#ifndef _INC_EVCOLL
#define _INC_EVCOLL
#if (_WIN32_WINNT >= 0x0600)
#ifdef __cplusplus
extern "C" {
#endif
typedef enum _EC_SUBSCRIPTION_CONFIGURATION_MODE {
EcConfigurationModeNormal = 0,
EcConfigurationModeCustom = 1,
EcConfigurationModeMinLatency = 2,
EcConfigurationModeMinBandwidth = 3
} EC_SUBSCRIPTION_CONFIGURATION_MODE;
typedef enum _EC_SUBSCRIPTION_CONTENT_FORMAT {
EcContentFormatEvents = 1,
EcContentFormatRenderedText = 2
} EC_SUBSCRIPTION_CONTENT_FORMAT;
typedef enum _EC_SUBSCRIPTION_CREDENTIALS_TYPE {
EcSubscriptionCredDefault = 0,
EcSubscriptionCredNegotiate = 1,
EcSubscriptionCredDigest = 2,
EcSubscriptionCredBasic = 3,
EcSubscriptionCredLocalMachine = 4
} EC_SUBSCRIPTION_CREDENTIALS_TYPE;
typedef enum _EC_SUBSCRIPTION_DELIVERY_MODE {
EcDeliveryModePull = 1,
EcDeliveryModePush = 2
} EC_SUBSCRIPTION_DELIVERY_MODE;
typedef enum _EC_SUBSCRIPTION_PROPERTY_ID {
EcSubscriptionEnabled = 0,
EcSubscriptionEventSources = 1,
EcSubscriptionEventSourceAddress = 2,
EcSubscriptionEventSourceEnabled = 3,
EcSubscriptionEventSourceUserName = 4,
EcSubscriptionEventSourcePassword = 5,
EcSubscriptionDescription = 6,
EcSubscriptionURI = 7,
EcSubscriptionConfigurationMode = 8,
EcSubscriptionExpires = 9,
EcSubscriptionQuery = 10,
EcSubscriptionTransportName = 11,
EcSubscriptionTransportPort = 12,
EcSubscriptionDeliveryMode = 13,
EcSubscriptionDeliveryMaxItems = 14,
EcSubscriptionDeliveryMaxLatencyTime = 15,
EcSubscriptionHeartbeatInterval = 16,
EcSubscriptionLocale = 17,
EcSubscriptionContentFormat = 18,
EcSubscriptionLogFile = 19,
EcSubscriptionPublisherName = 20,
EcSubscriptionCredentialsType = 21,
EcSubscriptionCommonUserName = 22,
EcSubscriptionCommonPassword = 23,
EcSubscriptionHostName = 24,
EcSubscriptionReadExistingEvents = 25,
EcSubscriptionDialect = 26,
EcSubscriptionType = 27,
EcSubscriptionAllowedIssuerCAs = 28,
EcSubscriptionAllowedSubjects = 29,
EcSubscriptionDeniedSubjects = 30,
EcSubscriptionAllowedSourceDomainComputers = 31
} EC_SUBSCRIPTION_PROPERTY_ID;
typedef enum _EC_SUBSCRIPTION_RUNTIME_STATUS_ACTIVE_STATUS {
EcRuntimeStatusActiveStatusDisabled = 1,
EcRuntimeStatusActiveStatusActive = 2,
EcRuntimeStatusActiveStatusInactive = 3,
EcRuntimeStatusActiveStatusTrying = 4
} EC_SUBSCRIPTION_RUNTIME_STATUS_ACTIVE_STATUS;
typedef enum _EC_SUBSCRIPTION_TYPE {
EcSubscriptionTypeSourceInitiated = 0,
EcSubscriptionTypeCollectorInitiated = 1
} EC_SUBSCRIPTION_TYPE;
typedef enum _EC_SUBSCRIPTION_RUNTIME_STATUS_INFO_ID {
EcSubscriptionRunTimeStatusActive = 0,
EcSubscriptionRunTimeStatusLastError = 1,
EcSubscriptionRunTimeStatusLastErrorMessage = 2,
EcSubscriptionRunTimeStatusLastErrorTime = 3,
EcSubscriptionRunTimeStatusNextRetryTime = 4,
EcSubscriptionRunTimeStatusEventSources = 5,
EcSubscriptionRunTimeStatusLastHeartbeatTime = 6
} EC_SUBSCRIPTION_RUNTIME_STATUS_INFO_ID;
typedef struct _EC_VARIANT {
__C89_NAMELESS union {
BOOL BooleanVal;
UINT32 UInt32Val;
ULONGLONG DateTimeVal;
LPCWSTR StringVal;
PBYTE BinaryVal;
WINBOOL *BooleanArr;
INT32* Int32Arr;
LPWSTR *StringArr;
};
DWORD Count;
DWORD Type;
} EC_VARIANT, *PEC_VARIANT;
typedef enum _EC_VARIANT_TYPE {
EcVarTypeNull = 0,
EcVarTypeBoolean = 1,
EcVarTypeUInt32 = 2,
EcVarTypeDateTime = 3,
EcVarTypeString = 4,
EcVarObjectArrayPropertyHandle = 5
} EC_VARIANT_TYPE;
typedef LPVOID EC_HANDLE;
WINBOOL WINAPI EcClose(
EC_HANDLE Object
);
WINBOOL WINAPI EcDeleteSubscription(
LPCWSTR SubscriptionName,
DWORD Flags
);
WINBOOL WINAPI EcEnumNextSubscription(
EC_HANDLE SubscriptionEnum,
DWORD SubscriptionNameBufferSize,
LPWSTR SubscriptionNameBuffer,
PDWORD SubscriptionNameBufferUsed
);
WINBOOL WINAPI EcGetObjectArrayProperty(
EC_OBJECT_ARRAY_PROPERTY_HANDLE ObjectArray,
EC_SUBSCRIPTION_PROPERTY_ID PropertyId,
DWORD ArrayIndex,
DWORD Flags,
DWORD PropertyValueBufferSize,
PEC_VARIANT PropertyValueBuffer,
PDWORD PropertyValueBufferUsed
);
WINBOOL WINAPI EcGetObjectArraySize(
EC_OBJECT_ARRAY_PROPERTY_HANDLE ObjectArray,
PDWORD ObjectArraySize
);
WINBOOL WINAPI EcGetSubscriptionProperty(
EC_HANDLE Subscription,
EC_SUBSCRIPTION_PROPERTY_ID PropertyId,
DWORD Flags,
DWORD PropertyValueBufferSize,
PEC_VARIANT PropertyValueBuffer,
PDWORD PropertyValueBufferUsed
);
WINBOOL WINAPI EcGetSubscriptionRunTimeStatus(
LPCWSTR SubscriptionName,
EC_SUBSCRIPTION_RUNTIME_STATUS_INFO_ID StatusInfoId,
LPCWSTR EventSourceName,
DWORD Flags,
DWORD StatusValueBufferSize,
PEC_VARIANT StatusValueBuffer,
PDWORD StatusValueBufferUsed
);
WINBOOL WINAPI EcInsertObjectArrayElement(
EC_OBJECT_ARRAY_PROPERTY_HANDLE ObjectArray,
DWORD ArrayIndex
);
EC_HANDLE WINAPI EcOpenSubscription(
LPCWSTR SubscriptionName,
DWORD AccessMask,
DWORD Flags
);
EC_HANDLE WINAPI EcOpenSubscriptionEnum(
DWORD Flags
);
WINBOOL WINAPI EcRemoveObjectArrayElement(
EC_OBJECT_ARRAY_PROPERTY_HANDLE ObjectArray,
DWORD ArrayIndex
);
WINBOOL WINAPI EcRetrySubscription(
LPCWSTR SubscriptionName,
LPCWSTR EventSourceName,
DWORD Flags
);
WINBOOL WINAPI EcSaveSubscription(
EC_HANDLE Subscription,
DWORD Flags
);
WINBOOL WINAPI EcSetObjectArrayProperty(
EC_OBJECT_ARRAY_PROPERTY_HANDLE ObjectArray,
EC_SUBSCRIPTION_PROPERTY_ID PropertyId,
DWORD ArrayIndex,
DWORD Flags,
PEC_VARIANT PropertyValue
);
WINBOOL WINAPI EcSetSubscriptionProperty(
EC_HANDLE Subscription,
EC_SUBSCRIPTION_PROPERTY_ID PropertyId,
DWORD Flags,
PEC_VARIANT PropertyValue
);
#ifdef __cplusplus
}
#endif
#endif /*(_WIN32_WINNT >= 0x0600)*/
#endif /*_INC_EVCOLL*/