msado15: Implement Dispatch functions in Field.
[wine.git] / include / winevt.h
blob4f0e7d52a0e2d64a8633ac961926378b8ab22116
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_LOGIN_CLASS {
57 EvtRpcLogin = 1
58 } EVT_LOGIN_CLASS;
60 typedef enum _EVT_SUBSCRIBE_NOTIFY_ACTION {
61 EvtSubscribeActionError = 0,
62 EvtSubscribeActionDeliver
63 } EVT_SUBSCRIBE_NOTIFY_ACTION;
65 typedef enum _EVT_VARIANT_TYPE {
66 EvtVarTypeNull,
67 EvtVarTypeString,
68 EvtVarTypeAnsiString,
69 EvtVarTypeSByte,
70 EvtVarTypeByte,
71 EvtVarTypeInt16,
72 EvtVarTypeUInt16,
73 EvtVarTypeInt32,
74 EvtVarTypeUInt32,
75 EvtVarTypeInt64,
76 EvtVarTypeUInt64,
77 EvtVarTypeSingle,
78 EvtVarTypeDouble,
79 EvtVarTypeBoolean,
80 EvtVarTypeBinary,
81 EvtVarTypeGuid,
82 EvtVarTypeSizeT,
83 EvtVarTypeFileTime,
84 EvtVarTypeSysTime,
85 EvtVarTypeSid,
86 EvtVarTypeHexInt32,
87 EvtVarTypeHexInt64,
88 EvtVarTypeEvtHandle = 32,
89 EvtVarTypeEvtXml = 35
90 } EVT_VARIANT_TYPE;
92 #define EVT_VARIANT_TYPE_MASK 0x7f
93 #define EVT_VARIANT_TYPE_ARRAY 128
95 typedef struct _EVT_VARIANT {
96 union {
97 BOOL BooleanVal;
98 INT8 SByteVal;
99 INT16 Int16Val;
100 INT32 Int32Val;
101 INT64 Int64Val;
102 UINT8 ByteVal;
103 UINT16 UInt16Val;
104 UINT32 UInt32Val;
105 UINT64 UInt64Val;
106 FLOAT SingleVal;
107 DOUBLE DoubleVal;
108 ULONGLONG FileTimeVal;
109 SYSTEMTIME* SysTimeVal;
110 GUID* GuidVal;
111 LPCWSTR StringVal;
112 LPCSTR AnsiStringVal;
113 PBYTE BinaryVal;
114 PSID SidVal;
115 SIZE_T SizeTVal;
117 BOOL* BooleanArr;
118 INT8* SByteArr;
119 INT16* Int16Arr;
120 INT32* Int32Arr;
121 INT64* Int64Arr;
122 UINT8* ByteArr;
123 UINT16* UInt16Arr;
124 UINT32* UInt32Arr;
125 UINT64* UInt64Arr;
126 FLOAT* SingleArr;
127 DOUBLE* DoubleArr;
128 FILETIME* FileTimeArr;
129 SYSTEMTIME* SysTimeArr;
130 GUID* GuidArr;
131 LPWSTR* StringArr;
132 LPSTR* AnsiStringArr;
133 PSID* SidArr;
134 SIZE_T* SizeTArr;
136 EVT_HANDLE EvtHandleVal;
137 LPCWSTR XmlVal;
138 LPCWSTR* XmlValArr;
139 } DUMMYUNIONNAME;
141 DWORD Count;
142 DWORD Type;
143 } EVT_VARIANT, *PEVT_VARIANT;
145 typedef DWORD (WINAPI *EVT_SUBSCRIBE_CALLBACK)(EVT_SUBSCRIBE_NOTIFY_ACTION Action,
146 PVOID UserContext, EVT_HANDLE Event);
147 BOOL WINAPI EvtClose(EVT_HANDLE);
148 BOOL WINAPI EvtExportLog(EVT_HANDLE session, const WCHAR *path, const WCHAR *query,
149 const WCHAR *file, DWORD flags);
150 BOOL WINAPI EvtGetChannelConfigProperty(EVT_HANDLE ChannelConfig,
151 EVT_CHANNEL_CONFIG_PROPERTY_ID PropertyId,
152 DWORD Flags, DWORD PropertyValueBufferSize,
153 PEVT_VARIANT PropertyValueBuffer,
154 PDWORD PropertyValueBufferUsed);
155 BOOL WINAPI EvtSetChannelConfigProperty(EVT_HANDLE ChannelConfig,
156 EVT_CHANNEL_CONFIG_PROPERTY_ID PropertyId,
157 DWORD Flags, PEVT_VARIANT PropertyValue);
158 EVT_HANDLE WINAPI EvtSubscribe(EVT_HANDLE Session, HANDLE SignalEvent, LPCWSTR ChannelPath,
159 LPCWSTR Query, EVT_HANDLE Bookmark, PVOID context,
160 EVT_SUBSCRIBE_CALLBACK Callback, DWORD Flags);
161 EVT_HANDLE WINAPI EvtOpenChannelConfig(EVT_HANDLE Session, LPCWSTR ChannelPath, DWORD Flags);
162 BOOL WINAPI EvtSaveChannelConfig(EVT_HANDLE, DWORD);
164 #ifdef __cplusplus
165 } /* extern "C" */
166 #endif /* defined(__cplusplus) */
168 #endif /* __WINE_WINEVT_H */