Release 1.6-rc2.
[wine/testsucceed.git] / include / winevt.h
blob53ffe4400273fd19a9a8701181a1aeb7d49d1283
1 /* Definitions for the Windows Event Log (wevtapi.dll)
3 * Copyright 2012 André Hentschel
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
20 #ifndef __WINE_WINEVT_H
21 #define __WINE_WINEVT_H
23 #include <wtypes.h>
25 #ifdef __cplusplus
26 extern "C" {
27 #endif /* defined(__cplusplus) */
29 typedef HANDLE EVT_HANDLE, *PEVT_HANDLE;
31 typedef enum _EVT_CHANNEL_CONFIG_PROPERTY_ID {
32 EvtChannelConfigEnabled = 0,
33 EvtChannelConfigIsolation,
34 EvtChannelConfigType,
35 EvtChannelConfigOwningPublisher,
36 EvtChannelConfigClassicEventlog,
37 EvtChannelConfigAccess,
38 EvtChannelLoggingConfigRetention,
39 EvtChannelLoggingConfigAutoBackup,
40 EvtChannelLoggingConfigMaxSize,
41 EvtChannelLoggingConfigLogFilePath,
42 EvtChannelPublishingConfigLevel,
43 EvtChannelPublishingConfigKeywords,
44 EvtChannelPublishingConfigControlGuid,
45 EvtChannelPublishingConfigBufferSize,
46 EvtChannelPublishingConfigMinBuffers,
47 EvtChannelPublishingConfigMaxBuffers,
48 EvtChannelPublishingConfigLatency,
49 EvtChannelPublishingConfigClockType,
50 EvtChannelPublishingConfigSidType,
51 EvtChannelPublisherList,
52 EvtChannelPublishingConfigFileMax,
53 EvtChannelConfigPropertyIdEND
54 } EVT_CHANNEL_CONFIG_PROPERTY_ID;
56 typedef enum _EVT_SUBSCRIBE_NOTIFY_ACTION {
57 EvtSubscribeActionError = 0,
58 EvtSubscribeActionDeliver
59 } EVT_SUBSCRIBE_NOTIFY_ACTION;
61 typedef struct _EVT_VARIANT {
62 union {
63 BOOL BooleanVal;
64 INT8 SByteVal;
65 INT16 Int16Val;
66 INT32 Int32Val;
67 INT64 Int64Val;
68 UINT8 ByteVal;
69 UINT16 UInt16Val;
70 UINT32 UInt32Val;
71 UINT64 UInt64Val;
72 FLOAT SingleVal;
73 DOUBLE DoubleVal;
74 ULONGLONG FileTimeVal;
75 SYSTEMTIME* SysTimeVal;
76 GUID* GuidVal;
77 LPCWSTR StringVal;
78 LPCSTR AnsiStringVal;
79 PBYTE BinaryVal;
80 PSID SidVal;
81 SIZE_T SizeTVal;
83 BOOL* BooleanArr;
84 INT8* SByteArr;
85 INT16* Int16Arr;
86 INT32* Int32Arr;
87 INT64* Int64Arr;
88 UINT8* ByteArr;
89 UINT16* UInt16Arr;
90 UINT32* UInt32Arr;
91 UINT64* UInt64Arr;
92 FLOAT* SingleArr;
93 DOUBLE* DoubleArr;
94 FILETIME* FileTimeArr;
95 SYSTEMTIME* SysTimeArr;
96 GUID* GuidArr;
97 LPWSTR* StringArr;
98 LPSTR* AnsiStringArr;
99 PSID* SidArr;
100 SIZE_T* SizeTArr;
102 EVT_HANDLE EvtHandleVal;
103 LPCWSTR XmlVal;
104 LPCWSTR* XmlValArr;
105 } DUMMYUNIONNAME;
107 DWORD Count;
108 DWORD Type;
109 } EVT_VARIANT, *PEVT_VARIANT;
111 typedef DWORD (WINAPI *EVT_SUBSCRIBE_CALLBACK)(EVT_SUBSCRIBE_NOTIFY_ACTION Action,
112 PVOID UserContext, EVT_HANDLE Event);
114 BOOL WINAPI EvtGetChannelConfigProperty(EVT_HANDLE ChannelConfig,
115 EVT_CHANNEL_CONFIG_PROPERTY_ID PropertyId,
116 DWORD Flags, DWORD PropertyValueBufferSize,
117 PEVT_VARIANT PropertyValueBuffer,
118 PDWORD PropertyValueBufferUsed);
119 BOOL WINAPI EvtSetChannelConfigProperty(EVT_HANDLE ChannelConfig,
120 EVT_CHANNEL_CONFIG_PROPERTY_ID PropertyId,
121 DWORD Flags, PEVT_VARIANT PropertyValue);
122 EVT_HANDLE WINAPI EvtSubscribe(EVT_HANDLE Session, HANDLE SignalEvent, LPCWSTR ChannelPath,
123 LPCWSTR Query, EVT_HANDLE Bookmark, PVOID context,
124 EVT_SUBSCRIBE_CALLBACK Callback, DWORD Flags);
125 EVT_HANDLE WINAPI EvtOpenChannelConfig(EVT_HANDLE Session, LPCWSTR ChannelPath, DWORD Flags);
128 #ifdef __cplusplus
129 } /* extern "C" */
130 #endif /* defined(__cplusplus) */
132 #endif /* __WINE_WINEVT_H */