include: Add declarations for metadata handler info interfaces.
[wine] / include / winevt.h
1 /* Definitions for the Windows Event Log (wevtapi.dll)
2  *
3  * Copyright 2012 AndrĂ© Hentschel
4  *
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.
9  *
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.
14  *
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
18  */
19
20 #ifndef __WINE_WINEVT_H
21 #define __WINE_WINEVT_H
22
23 #include <wtypes.h>
24
25 #ifdef __cplusplus
26 extern "C" {
27 #endif /* defined(__cplusplus) */
28
29 typedef HANDLE EVT_HANDLE, *PEVT_HANDLE;
30
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;
55
56 typedef enum _EVT_SUBSCRIBE_NOTIFY_ACTION {
57     EvtSubscribeActionError = 0,
58     EvtSubscribeActionDeliver
59 } EVT_SUBSCRIBE_NOTIFY_ACTION;
60
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;
82
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;
101
102         EVT_HANDLE  EvtHandleVal;
103         LPCWSTR     XmlVal;
104         LPCWSTR*    XmlValArr;
105     } DUMMYUNIONNAME;
106
107     DWORD Count;
108     DWORD Type;
109 } EVT_VARIANT, *PEVT_VARIANT;
110
111 typedef DWORD (WINAPI *EVT_SUBSCRIBE_CALLBACK)(EVT_SUBSCRIBE_NOTIFY_ACTION Action,
112                                                PVOID UserContext, EVT_HANDLE Event);
113
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);
126
127
128 #ifdef __cplusplus
129 } /* extern "C" */
130 #endif /* defined(__cplusplus) */
131
132 #endif /* __WINE_WINEVT_H */