libport: Add a replacement implementation for strnlen.
[wine.git] / include / winevt.h
blob6d2ef1a01373b1d6ad54183de914df1b70dba95d
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 struct _EVT_VARIANT {
66 union {
67 BOOL BooleanVal;
68 INT8 SByteVal;
69 INT16 Int16Val;
70 INT32 Int32Val;
71 INT64 Int64Val;
72 UINT8 ByteVal;
73 UINT16 UInt16Val;
74 UINT32 UInt32Val;
75 UINT64 UInt64Val;
76 FLOAT SingleVal;
77 DOUBLE DoubleVal;
78 ULONGLONG FileTimeVal;
79 SYSTEMTIME* SysTimeVal;
80 GUID* GuidVal;
81 LPCWSTR StringVal;
82 LPCSTR AnsiStringVal;
83 PBYTE BinaryVal;
84 PSID SidVal;
85 SIZE_T SizeTVal;
87 BOOL* BooleanArr;
88 INT8* SByteArr;
89 INT16* Int16Arr;
90 INT32* Int32Arr;
91 INT64* Int64Arr;
92 UINT8* ByteArr;
93 UINT16* UInt16Arr;
94 UINT32* UInt32Arr;
95 UINT64* UInt64Arr;
96 FLOAT* SingleArr;
97 DOUBLE* DoubleArr;
98 FILETIME* FileTimeArr;
99 SYSTEMTIME* SysTimeArr;
100 GUID* GuidArr;
101 LPWSTR* StringArr;
102 LPSTR* AnsiStringArr;
103 PSID* SidArr;
104 SIZE_T* SizeTArr;
106 EVT_HANDLE EvtHandleVal;
107 LPCWSTR XmlVal;
108 LPCWSTR* XmlValArr;
109 } DUMMYUNIONNAME;
111 DWORD Count;
112 DWORD Type;
113 } EVT_VARIANT, *PEVT_VARIANT;
115 typedef DWORD (WINAPI *EVT_SUBSCRIBE_CALLBACK)(EVT_SUBSCRIBE_NOTIFY_ACTION Action,
116 PVOID UserContext, EVT_HANDLE Event);
118 BOOL WINAPI EvtGetChannelConfigProperty(EVT_HANDLE ChannelConfig,
119 EVT_CHANNEL_CONFIG_PROPERTY_ID PropertyId,
120 DWORD Flags, DWORD PropertyValueBufferSize,
121 PEVT_VARIANT PropertyValueBuffer,
122 PDWORD PropertyValueBufferUsed);
123 BOOL WINAPI EvtSetChannelConfigProperty(EVT_HANDLE ChannelConfig,
124 EVT_CHANNEL_CONFIG_PROPERTY_ID PropertyId,
125 DWORD Flags, PEVT_VARIANT PropertyValue);
126 EVT_HANDLE WINAPI EvtSubscribe(EVT_HANDLE Session, HANDLE SignalEvent, LPCWSTR ChannelPath,
127 LPCWSTR Query, EVT_HANDLE Bookmark, PVOID context,
128 EVT_SUBSCRIBE_CALLBACK Callback, DWORD Flags);
129 EVT_HANDLE WINAPI EvtOpenChannelConfig(EVT_HANDLE Session, LPCWSTR ChannelPath, DWORD Flags);
132 #ifdef __cplusplus
133 } /* extern "C" */
134 #endif /* defined(__cplusplus) */
136 #endif /* __WINE_WINEVT_H */