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
27 #endif /* defined(__cplusplus) */
29 typedef HANDLE EVT_HANDLE
, *PEVT_HANDLE
;
31 typedef enum _EVT_CHANNEL_CONFIG_PROPERTY_ID
{
32 EvtChannelConfigEnabled
= 0,
33 EvtChannelConfigIsolation
,
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
{
60 typedef enum _EVT_SUBSCRIBE_NOTIFY_ACTION
{
61 EvtSubscribeActionError
= 0,
62 EvtSubscribeActionDeliver
63 } EVT_SUBSCRIBE_NOTIFY_ACTION
;
65 typedef enum _EVT_VARIANT_TYPE
{
88 EvtVarTypeEvtHandle
= 32,
92 #define EVT_VARIANT_TYPE_MASK 0x7f
93 #define EVT_VARIANT_TYPE_ARRAY 128
95 typedef struct _EVT_VARIANT
{
108 ULONGLONG FileTimeVal
;
109 SYSTEMTIME
* SysTimeVal
;
112 LPCSTR AnsiStringVal
;
128 FILETIME
* FileTimeArr
;
129 SYSTEMTIME
* SysTimeArr
;
132 LPSTR
* AnsiStringArr
;
136 EVT_HANDLE EvtHandleVal
;
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
);
166 #endif /* defined(__cplusplus) */
168 #endif /* __WINE_WINEVT_H */