Jacek Caban : include: Add relogger.idl file.
Alexandre Julliard
julliard at winehq.org
Tue Feb 9 15:57:08 CST 2021
Module: wine
Branch: master
Commit: fd6e23e5ef1fffca1e26e0a5b6a2548493952864
URL: https://source.winehq.org/git/wine.git/?a=commit;h=fd6e23e5ef1fffca1e26e0a5b6a2548493952864
Author: Jacek Caban <jacek at codeweavers.com>
Date: Tue Feb 9 14:33:17 2021 +0100
include: Add relogger.idl file.
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
include/Makefile.in | 1 +
include/relogger.idl | 184 +++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 185 insertions(+)
diff --git a/include/Makefile.in b/include/Makefile.in
index f99280149fd..c1efee700fa 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -593,6 +593,7 @@ SOURCES = \
raserror.h \
reason.h \
regstr.h \
+ relogger.idl \
restartmanager.h \
restrictederrorinfo.idl \
richedit.h \
diff --git a/include/relogger.idl b/include/relogger.idl
new file mode 100644
index 00000000000..60e04512ee0
--- /dev/null
+++ b/include/relogger.idl
@@ -0,0 +1,184 @@
+/*
+ * Copyright 2021 Jacek Caban for CodeWeavers
+ *
+ * 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
+ */
+
+import "unknwn.idl";
+import "oaidl.idl";
+import "ocidl.idl";
+
+#ifndef __WIDL__
+#define threading(model)
+#endif
+
+typedef struct _EVENT_DESCRIPTOR
+{
+ USHORT Id;
+ UCHAR Version;
+ UCHAR Channel;
+ UCHAR Level;
+ UCHAR Opcode;
+ USHORT Task;
+ ULONGLONG Keyword;
+} EVENT_DESCRIPTOR, *PEVENT_DESCRIPTOR;
+typedef const EVENT_DESCRIPTOR *PCEVENT_DESCRIPTOR;
+
+typedef struct _EVENT_HEADER
+{
+ USHORT Size;
+ USHORT HeaderType;
+ USHORT Flags;
+ USHORT EventProperty;
+ ULONG ThreadId;
+ ULONG ProcessId;
+ LARGE_INTEGER TimeStamp;
+ GUID ProviderId;
+ EVENT_DESCRIPTOR EventDescriptor;
+ union {
+ struct {
+ ULONG KernelTime;
+ ULONG UserTime;
+ } DUMMYSTRUCTNAME;
+ ULONG64 ProcessorTime;
+ } DUMMYUNIONNAME;
+ GUID ActivityId;
+} EVENT_HEADER, *PEVENT_HEADER;
+
+typedef struct _ETW_BUFFER_CONTEXT
+{
+ union {
+ struct {
+ UCHAR ProcessorNumber;
+ UCHAR Alignment;
+ } DUMMYSTRUCTNAME;
+ USHORT ProcessorIndex;
+ } DUMMYUNIONNAME;
+ USHORT LoggerId;
+} ETW_BUFFER_CONTEXT, *PETW_BUFFER_CONTEXT;
+
+typedef struct _EVENT_HEADER_EXTENDED_DATA_ITEM
+{
+ USHORT Reserved1;
+ USHORT ExtType;
+ USHORT Linkage;
+ USHORT DataSize;
+ ULONGLONG DataPtr;
+} EVENT_HEADER_EXTENDED_DATA_ITEM, *PEVENT_HEADER_EXTENDED_DATA_ITEM;
+
+typedef struct _EVENT_RECORD
+{
+ EVENT_HEADER EventHeader;
+ ETW_BUFFER_CONTEXT BufferContext;
+ USHORT ExtendedDataCount;
+ USHORT UserDataLength;
+ EVENT_HEADER_EXTENDED_DATA_ITEM *ExtendedData;
+ void *UserData;
+ void *UserContext;
+} EVENT_RECORD, *PEVENT_RECORD;
+
+typedef ULONG64 TRACEHANDLE, *PTRACEHANDLE;
+
+[
+ object,
+ uuid(8cc97f40-9028-4ff3-9b62-7d1f79ca7bcb),
+ local
+]
+interface ITraceEvent : IUnknown
+{
+ HRESULT Clone([out, retval] ITraceEvent **NewEvent);
+
+ HRESULT GetUserContext([out, retval] void **UserContext);
+
+ HRESULT GetEventRecord([out, retval] PEVENT_RECORD *EventRecord);
+
+ HRESULT SetPayload([in, size_is(PayloadSize)] BYTE *Payload,
+ [in] ULONG PayloadSize);
+
+ HRESULT SetEventDescriptor([in] PCEVENT_DESCRIPTOR EventDescriptor);
+
+ HRESULT SetProcessId([in] ULONG ProcessId);
+
+ HRESULT SetProcessorIndex([in] ULONG ProcessorIndex);
+
+ HRESULT SetThreadId([in] ULONG ThreadId);
+
+ HRESULT SetThreadTimes([in] ULONG KernelTime,
+ [in] ULONG UserTime);
+
+ HRESULT SetActivityId([in] LPCGUID ActivityId);
+
+ HRESULT SetTimeStamp([in] LARGE_INTEGER *TimeStamp);
+
+ HRESULT SetProviderId([in] LPCGUID ProviderId);
+}
+
+interface ITraceRelogger;
+
+[
+ object,
+ uuid(3ed25501-593f-43e9-8f38-3ab46f5a4a52)
+]
+interface ITraceEventCallback : IUnknown
+{
+ HRESULT OnBeginProcessTrace([in] ITraceEvent *HeaderEvent,
+ [in] ITraceRelogger *Relogger);
+
+ HRESULT OnFinalizeProcessTrace([in] ITraceRelogger *Relogger);
+
+ HRESULT OnEvent([in] ITraceEvent *Event,
+ [in] ITraceRelogger *Relogger);
+}
+
+[
+ object,
+ uuid(f754ad43-3bcc-4286-8009-9c5da214e84e),
+ local
+]
+interface ITraceRelogger : IUnknown
+{
+ HRESULT AddLogfileTraceStream([in] BSTR LogfileName,
+ [in] void *UserContext,
+ [out, retval] TRACEHANDLE *TraceHandle);
+
+ HRESULT AddRealtimeTraceStream([in] BSTR LoggerName,
+ [in] void *UserContext,
+ [out, retval] TRACEHANDLE *TraceHandle);
+
+ HRESULT RegisterCallback([in] ITraceEventCallback *Callback);
+
+ HRESULT Inject([in] ITraceEvent *Event);
+
+ HRESULT CreateEventInstance([in] TRACEHANDLE TraceHandle,
+ [in] ULONG Flags,
+ [out, retval] ITraceEvent **Event);
+
+ HRESULT ProcessTrace();
+
+ HRESULT SetOutputFilename([in] BSTR LogfileName);
+
+ HRESULT SetCompressionMode([in] BOOLEAN CompressionMode);
+
+ HRESULT Cancel();
+}
+
+[
+ uuid(7b40792d-05ff-44c4-9058-f440c71f17d4),
+ threading(both)
+]
+coclass CTraceRelogger
+{
+ [default] interface ITraceRelogger;
+}
More information about the wine-cvs
mailing list