From: André Hentschel Subject: [1/2] wevtapi: Add stub for EvtOpenChannelConfig Message-Id: <4F662758.7040709@dawncrow.de> Date: Sun, 18 Mar 2012 19:20:08 +0100 main fix for http://bugs.winehq.org/show_bug.cgi?id=30072 --- dlls/wevtapi/main.c | 8 +++ dlls/wevtapi/wevtapi.spec | 2 +- include/Makefile.in | 1 + include/winevt.h | 132 +++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 142 insertions(+), 1 deletions(-) create mode 100644 include/winevt.h diff --git a/dlls/wevtapi/main.c b/dlls/wevtapi/main.c index 583ddba..a39c7c9 100644 --- a/dlls/wevtapi/main.c +++ b/dlls/wevtapi/main.c @@ -1,5 +1,6 @@ /* * Copyright 2012 Austin English + * Copyright 2012 André Hentschel * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -22,6 +23,7 @@ #include "windef.h" #include "winbase.h" +#include "winevt.h" #include "wine/debug.h" WINE_DEFAULT_DEBUG_CHANNEL(wevtapi); @@ -43,3 +45,9 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) return TRUE; } + +EVT_HANDLE WINAPI EvtOpenChannelConfig(EVT_HANDLE Session, LPCWSTR ChannelPath, DWORD Flags) +{ + FIXME("(%p %s %u) stub\n", Session, debugstr_w(ChannelPath), Flags); + return NULL; +} diff --git a/dlls/wevtapi/wevtapi.spec b/dlls/wevtapi/wevtapi.spec index f6a5786..adc3706 100644 --- a/dlls/wevtapi/wevtapi.spec +++ b/dlls/wevtapi/wevtapi.spec @@ -29,7 +29,7 @@ @ stub EvtNextChannelPath @ stub EvtNextEventMetadata @ stub EvtNextPublisherId -@ stub EvtOpenChannelConfig +@ stdcall EvtOpenChannelConfig(ptr wstr long) @ stub EvtOpenChannelEnum @ stub EvtOpenEventMetadataEnum @ stub EvtOpenLog diff --git a/include/Makefile.in b/include/Makefile.in index fa6f837..a83e56d 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -539,6 +539,7 @@ SRCDIR_INCLUDES = \ wine/library.h \ wine/unicode.h \ winerror.h \ + winevt.h \ wingdi.h \ winhttp.h \ wininet.h \ diff --git a/include/winevt.h b/include/winevt.h new file mode 100644 index 0000000..53ffe44 --- /dev/null +++ b/include/winevt.h @@ -0,0 +1,132 @@ +/* Definitions for the Windows Event Log (wevtapi.dll) + * + * Copyright 2012 André Hentschel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#ifndef __WINE_WINEVT_H +#define __WINE_WINEVT_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif /* defined(__cplusplus) */ + +typedef HANDLE EVT_HANDLE, *PEVT_HANDLE; + +typedef enum _EVT_CHANNEL_CONFIG_PROPERTY_ID { + EvtChannelConfigEnabled = 0, + EvtChannelConfigIsolation, + EvtChannelConfigType, + EvtChannelConfigOwningPublisher, + EvtChannelConfigClassicEventlog, + EvtChannelConfigAccess, + EvtChannelLoggingConfigRetention, + EvtChannelLoggingConfigAutoBackup, + EvtChannelLoggingConfigMaxSize, + EvtChannelLoggingConfigLogFilePath, + EvtChannelPublishingConfigLevel, + EvtChannelPublishingConfigKeywords, + EvtChannelPublishingConfigControlGuid, + EvtChannelPublishingConfigBufferSize, + EvtChannelPublishingConfigMinBuffers, + EvtChannelPublishingConfigMaxBuffers, + EvtChannelPublishingConfigLatency, + EvtChannelPublishingConfigClockType, + EvtChannelPublishingConfigSidType, + EvtChannelPublisherList, + EvtChannelPublishingConfigFileMax, + EvtChannelConfigPropertyIdEND +} EVT_CHANNEL_CONFIG_PROPERTY_ID; + +typedef enum _EVT_SUBSCRIBE_NOTIFY_ACTION { + EvtSubscribeActionError = 0, + EvtSubscribeActionDeliver +} EVT_SUBSCRIBE_NOTIFY_ACTION; + +typedef struct _EVT_VARIANT { + union { + BOOL BooleanVal; + INT8 SByteVal; + INT16 Int16Val; + INT32 Int32Val; + INT64 Int64Val; + UINT8 ByteVal; + UINT16 UInt16Val; + UINT32 UInt32Val; + UINT64 UInt64Val; + FLOAT SingleVal; + DOUBLE DoubleVal; + ULONGLONG FileTimeVal; + SYSTEMTIME* SysTimeVal; + GUID* GuidVal; + LPCWSTR StringVal; + LPCSTR AnsiStringVal; + PBYTE BinaryVal; + PSID SidVal; + SIZE_T SizeTVal; + + BOOL* BooleanArr; + INT8* SByteArr; + INT16* Int16Arr; + INT32* Int32Arr; + INT64* Int64Arr; + UINT8* ByteArr; + UINT16* UInt16Arr; + UINT32* UInt32Arr; + UINT64* UInt64Arr; + FLOAT* SingleArr; + DOUBLE* DoubleArr; + FILETIME* FileTimeArr; + SYSTEMTIME* SysTimeArr; + GUID* GuidArr; + LPWSTR* StringArr; + LPSTR* AnsiStringArr; + PSID* SidArr; + SIZE_T* SizeTArr; + + EVT_HANDLE EvtHandleVal; + LPCWSTR XmlVal; + LPCWSTR* XmlValArr; + } DUMMYUNIONNAME; + + DWORD Count; + DWORD Type; +} EVT_VARIANT, *PEVT_VARIANT; + +typedef DWORD (WINAPI *EVT_SUBSCRIBE_CALLBACK)(EVT_SUBSCRIBE_NOTIFY_ACTION Action, + PVOID UserContext, EVT_HANDLE Event); + +BOOL WINAPI EvtGetChannelConfigProperty(EVT_HANDLE ChannelConfig, + EVT_CHANNEL_CONFIG_PROPERTY_ID PropertyId, + DWORD Flags, DWORD PropertyValueBufferSize, + PEVT_VARIANT PropertyValueBuffer, + PDWORD PropertyValueBufferUsed); +BOOL WINAPI EvtSetChannelConfigProperty(EVT_HANDLE ChannelConfig, + EVT_CHANNEL_CONFIG_PROPERTY_ID PropertyId, + DWORD Flags, PEVT_VARIANT PropertyValue); +EVT_HANDLE WINAPI EvtSubscribe(EVT_HANDLE Session, HANDLE SignalEvent, LPCWSTR ChannelPath, + LPCWSTR Query, EVT_HANDLE Bookmark, PVOID context, + EVT_SUBSCRIBE_CALLBACK Callback, DWORD Flags); +EVT_HANDLE WINAPI EvtOpenChannelConfig(EVT_HANDLE Session, LPCWSTR ChannelPath, DWORD Flags); + + +#ifdef __cplusplus +} /* extern "C" */ +#endif /* defined(__cplusplus) */ + +#endif /* __WINE_WINEVT_H */ -- Best Regards, André Hentschel