headers: Import relogger.idl and windowscontracts.idl from Wine. Signed-off-by: Jacek Caban <jacek@codeweavers.com>
diff --git a/mingw-w64-headers/Makefile.am b/mingw-w64-headers/Makefile.am index dedf305..2ddd726 100644 --- a/mingw-w64-headers/Makefile.am +++ b/mingw-w64-headers/Makefile.am
@@ -225,6 +225,7 @@ include/mmstream.idl \ include/qedit.idl \ include/qnetwork.idl \ + include/relogger.idl \ include/vmr9.idl \ include/wincodec.idl \ include/wincodecsdk.idl \ @@ -246,6 +247,7 @@ include/windows.storage.streams.idl \ include/windows.system.idl \ include/windows.system.threading.idl \ + include/windowscontracts.idl \ include/wmcodecdsp.idl \ include/wmdrmsdk.idl \ include/wpcapi.idl \
diff --git a/mingw-w64-headers/Makefile.in b/mingw-w64-headers/Makefile.in index 7221351..d1ad190 100644 --- a/mingw-w64-headers/Makefile.in +++ b/mingw-w64-headers/Makefile.in
@@ -527,6 +527,7 @@ @HAVE_WIDL_TRUE@ include/mmstream.idl \ @HAVE_WIDL_TRUE@ include/qedit.idl \ @HAVE_WIDL_TRUE@ include/qnetwork.idl \ +@HAVE_WIDL_TRUE@ include/relogger.idl \ @HAVE_WIDL_TRUE@ include/vmr9.idl \ @HAVE_WIDL_TRUE@ include/wincodec.idl \ @HAVE_WIDL_TRUE@ include/wincodecsdk.idl \ @@ -548,6 +549,7 @@ @HAVE_WIDL_TRUE@ include/windows.storage.streams.idl \ @HAVE_WIDL_TRUE@ include/windows.system.idl \ @HAVE_WIDL_TRUE@ include/windows.system.threading.idl \ +@HAVE_WIDL_TRUE@ include/windowscontracts.idl \ @HAVE_WIDL_TRUE@ include/wmcodecdsp.idl \ @HAVE_WIDL_TRUE@ include/wmdrmsdk.idl \ @HAVE_WIDL_TRUE@ include/wpcapi.idl \
diff --git a/mingw-w64-headers/include/relogger.h b/mingw-w64-headers/include/relogger.h new file mode 100644 index 0000000..1f38414 --- /dev/null +++ b/mingw-w64-headers/include/relogger.h
@@ -0,0 +1,636 @@ +/*** Autogenerated by WIDL 6.2 from include/relogger.idl - Do not edit ***/ + +#ifdef _WIN32 +#ifndef __REQUIRED_RPCNDR_H_VERSION__ +#define __REQUIRED_RPCNDR_H_VERSION__ 475 +#endif +#include <rpc.h> +#include <rpcndr.h> +#endif + +#ifndef COM_NO_WINDOWS_H +#include <windows.h> +#include <ole2.h> +#endif + +#ifndef __relogger_h__ +#define __relogger_h__ + +/* Forward declarations */ + +#ifndef __ITraceEvent_FWD_DEFINED__ +#define __ITraceEvent_FWD_DEFINED__ +typedef interface ITraceEvent ITraceEvent; +#ifdef __cplusplus +interface ITraceEvent; +#endif /* __cplusplus */ +#endif + +#ifndef __ITraceEventCallback_FWD_DEFINED__ +#define __ITraceEventCallback_FWD_DEFINED__ +typedef interface ITraceEventCallback ITraceEventCallback; +#ifdef __cplusplus +interface ITraceEventCallback; +#endif /* __cplusplus */ +#endif + +#ifndef __ITraceRelogger_FWD_DEFINED__ +#define __ITraceRelogger_FWD_DEFINED__ +typedef interface ITraceRelogger ITraceRelogger; +#ifdef __cplusplus +interface ITraceRelogger; +#endif /* __cplusplus */ +#endif + +#ifndef __CTraceRelogger_FWD_DEFINED__ +#define __CTraceRelogger_FWD_DEFINED__ +#ifdef __cplusplus +typedef class CTraceRelogger CTraceRelogger; +#else +typedef struct CTraceRelogger CTraceRelogger; +#endif /* defined __cplusplus */ +#endif /* defined __CTraceRelogger_FWD_DEFINED__ */ + +/* Headers for imported files */ + +#include <unknwn.h> +#include <oaidl.h> +#include <ocidl.h> + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct _EVENT_DESCRIPTOR { + USHORT Id; + UCHAR Version; + UCHAR Channel; + UCHAR Level; + UCHAR Opcode; + USHORT Task; + ULONGLONG Keyword; +} EVENT_DESCRIPTOR; +typedef struct _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; +typedef struct _EVENT_HEADER *PEVENT_HEADER; +typedef struct _ETW_BUFFER_CONTEXT { + union { + struct { + UCHAR ProcessorNumber; + UCHAR Alignment; + } DUMMYSTRUCTNAME; + USHORT ProcessorIndex; + } DUMMYUNIONNAME; + USHORT LoggerId; +} ETW_BUFFER_CONTEXT; +typedef struct _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; +typedef struct _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; +typedef struct _EVENT_RECORD *PEVENT_RECORD; +typedef ULONG64 TRACEHANDLE; +typedef ULONG64 *PTRACEHANDLE; +/***************************************************************************** + * ITraceEvent interface + */ +#ifndef __ITraceEvent_INTERFACE_DEFINED__ +#define __ITraceEvent_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_ITraceEvent, 0x8cc97f40, 0x9028, 0x4ff3, 0x9b,0x62, 0x7d,0x1f,0x79,0xca,0x7b,0xcb); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("8cc97f40-9028-4ff3-9b62-7d1f79ca7bcb") +ITraceEvent : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE Clone( + ITraceEvent **NewEvent) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetUserContext( + void **UserContext) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetEventRecord( + PEVENT_RECORD *EventRecord) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetPayload( + BYTE *Payload, + ULONG PayloadSize) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetEventDescriptor( + PCEVENT_DESCRIPTOR EventDescriptor) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetProcessId( + ULONG ProcessId) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetProcessorIndex( + ULONG ProcessorIndex) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetThreadId( + ULONG ThreadId) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetThreadTimes( + ULONG KernelTime, + ULONG UserTime) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetActivityId( + LPCGUID ActivityId) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetTimeStamp( + LARGE_INTEGER *TimeStamp) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetProviderId( + LPCGUID ProviderId) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(ITraceEvent, 0x8cc97f40, 0x9028, 0x4ff3, 0x9b,0x62, 0x7d,0x1f,0x79,0xca,0x7b,0xcb) +#endif +#else +typedef struct ITraceEventVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + ITraceEvent *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + ITraceEvent *This); + + ULONG (STDMETHODCALLTYPE *Release)( + ITraceEvent *This); + + /*** ITraceEvent methods ***/ + HRESULT (STDMETHODCALLTYPE *Clone)( + ITraceEvent *This, + ITraceEvent **NewEvent); + + HRESULT (STDMETHODCALLTYPE *GetUserContext)( + ITraceEvent *This, + void **UserContext); + + HRESULT (STDMETHODCALLTYPE *GetEventRecord)( + ITraceEvent *This, + PEVENT_RECORD *EventRecord); + + HRESULT (STDMETHODCALLTYPE *SetPayload)( + ITraceEvent *This, + BYTE *Payload, + ULONG PayloadSize); + + HRESULT (STDMETHODCALLTYPE *SetEventDescriptor)( + ITraceEvent *This, + PCEVENT_DESCRIPTOR EventDescriptor); + + HRESULT (STDMETHODCALLTYPE *SetProcessId)( + ITraceEvent *This, + ULONG ProcessId); + + HRESULT (STDMETHODCALLTYPE *SetProcessorIndex)( + ITraceEvent *This, + ULONG ProcessorIndex); + + HRESULT (STDMETHODCALLTYPE *SetThreadId)( + ITraceEvent *This, + ULONG ThreadId); + + HRESULT (STDMETHODCALLTYPE *SetThreadTimes)( + ITraceEvent *This, + ULONG KernelTime, + ULONG UserTime); + + HRESULT (STDMETHODCALLTYPE *SetActivityId)( + ITraceEvent *This, + LPCGUID ActivityId); + + HRESULT (STDMETHODCALLTYPE *SetTimeStamp)( + ITraceEvent *This, + LARGE_INTEGER *TimeStamp); + + HRESULT (STDMETHODCALLTYPE *SetProviderId)( + ITraceEvent *This, + LPCGUID ProviderId); + + END_INTERFACE +} ITraceEventVtbl; + +interface ITraceEvent { + CONST_VTBL ITraceEventVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define ITraceEvent_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define ITraceEvent_AddRef(This) (This)->lpVtbl->AddRef(This) +#define ITraceEvent_Release(This) (This)->lpVtbl->Release(This) +/*** ITraceEvent methods ***/ +#define ITraceEvent_Clone(This,NewEvent) (This)->lpVtbl->Clone(This,NewEvent) +#define ITraceEvent_GetUserContext(This,UserContext) (This)->lpVtbl->GetUserContext(This,UserContext) +#define ITraceEvent_GetEventRecord(This,EventRecord) (This)->lpVtbl->GetEventRecord(This,EventRecord) +#define ITraceEvent_SetPayload(This,Payload,PayloadSize) (This)->lpVtbl->SetPayload(This,Payload,PayloadSize) +#define ITraceEvent_SetEventDescriptor(This,EventDescriptor) (This)->lpVtbl->SetEventDescriptor(This,EventDescriptor) +#define ITraceEvent_SetProcessId(This,ProcessId) (This)->lpVtbl->SetProcessId(This,ProcessId) +#define ITraceEvent_SetProcessorIndex(This,ProcessorIndex) (This)->lpVtbl->SetProcessorIndex(This,ProcessorIndex) +#define ITraceEvent_SetThreadId(This,ThreadId) (This)->lpVtbl->SetThreadId(This,ThreadId) +#define ITraceEvent_SetThreadTimes(This,KernelTime,UserTime) (This)->lpVtbl->SetThreadTimes(This,KernelTime,UserTime) +#define ITraceEvent_SetActivityId(This,ActivityId) (This)->lpVtbl->SetActivityId(This,ActivityId) +#define ITraceEvent_SetTimeStamp(This,TimeStamp) (This)->lpVtbl->SetTimeStamp(This,TimeStamp) +#define ITraceEvent_SetProviderId(This,ProviderId) (This)->lpVtbl->SetProviderId(This,ProviderId) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT ITraceEvent_QueryInterface(ITraceEvent* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG ITraceEvent_AddRef(ITraceEvent* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG ITraceEvent_Release(ITraceEvent* This) { + return This->lpVtbl->Release(This); +} +/*** ITraceEvent methods ***/ +static FORCEINLINE HRESULT ITraceEvent_Clone(ITraceEvent* This,ITraceEvent **NewEvent) { + return This->lpVtbl->Clone(This,NewEvent); +} +static FORCEINLINE HRESULT ITraceEvent_GetUserContext(ITraceEvent* This,void **UserContext) { + return This->lpVtbl->GetUserContext(This,UserContext); +} +static FORCEINLINE HRESULT ITraceEvent_GetEventRecord(ITraceEvent* This,PEVENT_RECORD *EventRecord) { + return This->lpVtbl->GetEventRecord(This,EventRecord); +} +static FORCEINLINE HRESULT ITraceEvent_SetPayload(ITraceEvent* This,BYTE *Payload,ULONG PayloadSize) { + return This->lpVtbl->SetPayload(This,Payload,PayloadSize); +} +static FORCEINLINE HRESULT ITraceEvent_SetEventDescriptor(ITraceEvent* This,PCEVENT_DESCRIPTOR EventDescriptor) { + return This->lpVtbl->SetEventDescriptor(This,EventDescriptor); +} +static FORCEINLINE HRESULT ITraceEvent_SetProcessId(ITraceEvent* This,ULONG ProcessId) { + return This->lpVtbl->SetProcessId(This,ProcessId); +} +static FORCEINLINE HRESULT ITraceEvent_SetProcessorIndex(ITraceEvent* This,ULONG ProcessorIndex) { + return This->lpVtbl->SetProcessorIndex(This,ProcessorIndex); +} +static FORCEINLINE HRESULT ITraceEvent_SetThreadId(ITraceEvent* This,ULONG ThreadId) { + return This->lpVtbl->SetThreadId(This,ThreadId); +} +static FORCEINLINE HRESULT ITraceEvent_SetThreadTimes(ITraceEvent* This,ULONG KernelTime,ULONG UserTime) { + return This->lpVtbl->SetThreadTimes(This,KernelTime,UserTime); +} +static FORCEINLINE HRESULT ITraceEvent_SetActivityId(ITraceEvent* This,LPCGUID ActivityId) { + return This->lpVtbl->SetActivityId(This,ActivityId); +} +static FORCEINLINE HRESULT ITraceEvent_SetTimeStamp(ITraceEvent* This,LARGE_INTEGER *TimeStamp) { + return This->lpVtbl->SetTimeStamp(This,TimeStamp); +} +static FORCEINLINE HRESULT ITraceEvent_SetProviderId(ITraceEvent* This,LPCGUID ProviderId) { + return This->lpVtbl->SetProviderId(This,ProviderId); +} +#endif +#endif + +#endif + + +#endif /* __ITraceEvent_INTERFACE_DEFINED__ */ + +#ifndef __ITraceRelogger_FWD_DEFINED__ +#define __ITraceRelogger_FWD_DEFINED__ +typedef interface ITraceRelogger ITraceRelogger; +#ifdef __cplusplus +interface ITraceRelogger; +#endif /* __cplusplus */ +#endif + +/***************************************************************************** + * ITraceEventCallback interface + */ +#ifndef __ITraceEventCallback_INTERFACE_DEFINED__ +#define __ITraceEventCallback_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_ITraceEventCallback, 0x3ed25501, 0x593f, 0x43e9, 0x8f,0x38, 0x3a,0xb4,0x6f,0x5a,0x4a,0x52); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("3ed25501-593f-43e9-8f38-3ab46f5a4a52") +ITraceEventCallback : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE OnBeginProcessTrace( + ITraceEvent *HeaderEvent, + ITraceRelogger *Relogger) = 0; + + virtual HRESULT STDMETHODCALLTYPE OnFinalizeProcessTrace( + ITraceRelogger *Relogger) = 0; + + virtual HRESULT STDMETHODCALLTYPE OnEvent( + ITraceEvent *Event, + ITraceRelogger *Relogger) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(ITraceEventCallback, 0x3ed25501, 0x593f, 0x43e9, 0x8f,0x38, 0x3a,0xb4,0x6f,0x5a,0x4a,0x52) +#endif +#else +typedef struct ITraceEventCallbackVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + ITraceEventCallback *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + ITraceEventCallback *This); + + ULONG (STDMETHODCALLTYPE *Release)( + ITraceEventCallback *This); + + /*** ITraceEventCallback methods ***/ + HRESULT (STDMETHODCALLTYPE *OnBeginProcessTrace)( + ITraceEventCallback *This, + ITraceEvent *HeaderEvent, + ITraceRelogger *Relogger); + + HRESULT (STDMETHODCALLTYPE *OnFinalizeProcessTrace)( + ITraceEventCallback *This, + ITraceRelogger *Relogger); + + HRESULT (STDMETHODCALLTYPE *OnEvent)( + ITraceEventCallback *This, + ITraceEvent *Event, + ITraceRelogger *Relogger); + + END_INTERFACE +} ITraceEventCallbackVtbl; + +interface ITraceEventCallback { + CONST_VTBL ITraceEventCallbackVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define ITraceEventCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define ITraceEventCallback_AddRef(This) (This)->lpVtbl->AddRef(This) +#define ITraceEventCallback_Release(This) (This)->lpVtbl->Release(This) +/*** ITraceEventCallback methods ***/ +#define ITraceEventCallback_OnBeginProcessTrace(This,HeaderEvent,Relogger) (This)->lpVtbl->OnBeginProcessTrace(This,HeaderEvent,Relogger) +#define ITraceEventCallback_OnFinalizeProcessTrace(This,Relogger) (This)->lpVtbl->OnFinalizeProcessTrace(This,Relogger) +#define ITraceEventCallback_OnEvent(This,Event,Relogger) (This)->lpVtbl->OnEvent(This,Event,Relogger) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT ITraceEventCallback_QueryInterface(ITraceEventCallback* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG ITraceEventCallback_AddRef(ITraceEventCallback* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG ITraceEventCallback_Release(ITraceEventCallback* This) { + return This->lpVtbl->Release(This); +} +/*** ITraceEventCallback methods ***/ +static FORCEINLINE HRESULT ITraceEventCallback_OnBeginProcessTrace(ITraceEventCallback* This,ITraceEvent *HeaderEvent,ITraceRelogger *Relogger) { + return This->lpVtbl->OnBeginProcessTrace(This,HeaderEvent,Relogger); +} +static FORCEINLINE HRESULT ITraceEventCallback_OnFinalizeProcessTrace(ITraceEventCallback* This,ITraceRelogger *Relogger) { + return This->lpVtbl->OnFinalizeProcessTrace(This,Relogger); +} +static FORCEINLINE HRESULT ITraceEventCallback_OnEvent(ITraceEventCallback* This,ITraceEvent *Event,ITraceRelogger *Relogger) { + return This->lpVtbl->OnEvent(This,Event,Relogger); +} +#endif +#endif + +#endif + + +#endif /* __ITraceEventCallback_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * ITraceRelogger interface + */ +#ifndef __ITraceRelogger_INTERFACE_DEFINED__ +#define __ITraceRelogger_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_ITraceRelogger, 0xf754ad43, 0x3bcc, 0x4286, 0x80,0x09, 0x9c,0x5d,0xa2,0x14,0xe8,0x4e); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("f754ad43-3bcc-4286-8009-9c5da214e84e") +ITraceRelogger : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE AddLogfileTraceStream( + BSTR LogfileName, + void *UserContext, + TRACEHANDLE *TraceHandle) = 0; + + virtual HRESULT STDMETHODCALLTYPE AddRealtimeTraceStream( + BSTR LoggerName, + void *UserContext, + TRACEHANDLE *TraceHandle) = 0; + + virtual HRESULT STDMETHODCALLTYPE RegisterCallback( + ITraceEventCallback *Callback) = 0; + + virtual HRESULT STDMETHODCALLTYPE Inject( + ITraceEvent *Event) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateEventInstance( + TRACEHANDLE TraceHandle, + ULONG Flags, + ITraceEvent **Event) = 0; + + virtual HRESULT STDMETHODCALLTYPE ProcessTrace( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetOutputFilename( + BSTR LogfileName) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetCompressionMode( + BOOLEAN CompressionMode) = 0; + + virtual HRESULT STDMETHODCALLTYPE Cancel( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(ITraceRelogger, 0xf754ad43, 0x3bcc, 0x4286, 0x80,0x09, 0x9c,0x5d,0xa2,0x14,0xe8,0x4e) +#endif +#else +typedef struct ITraceReloggerVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + ITraceRelogger *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + ITraceRelogger *This); + + ULONG (STDMETHODCALLTYPE *Release)( + ITraceRelogger *This); + + /*** ITraceRelogger methods ***/ + HRESULT (STDMETHODCALLTYPE *AddLogfileTraceStream)( + ITraceRelogger *This, + BSTR LogfileName, + void *UserContext, + TRACEHANDLE *TraceHandle); + + HRESULT (STDMETHODCALLTYPE *AddRealtimeTraceStream)( + ITraceRelogger *This, + BSTR LoggerName, + void *UserContext, + TRACEHANDLE *TraceHandle); + + HRESULT (STDMETHODCALLTYPE *RegisterCallback)( + ITraceRelogger *This, + ITraceEventCallback *Callback); + + HRESULT (STDMETHODCALLTYPE *Inject)( + ITraceRelogger *This, + ITraceEvent *Event); + + HRESULT (STDMETHODCALLTYPE *CreateEventInstance)( + ITraceRelogger *This, + TRACEHANDLE TraceHandle, + ULONG Flags, + ITraceEvent **Event); + + HRESULT (STDMETHODCALLTYPE *ProcessTrace)( + ITraceRelogger *This); + + HRESULT (STDMETHODCALLTYPE *SetOutputFilename)( + ITraceRelogger *This, + BSTR LogfileName); + + HRESULT (STDMETHODCALLTYPE *SetCompressionMode)( + ITraceRelogger *This, + BOOLEAN CompressionMode); + + HRESULT (STDMETHODCALLTYPE *Cancel)( + ITraceRelogger *This); + + END_INTERFACE +} ITraceReloggerVtbl; + +interface ITraceRelogger { + CONST_VTBL ITraceReloggerVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define ITraceRelogger_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define ITraceRelogger_AddRef(This) (This)->lpVtbl->AddRef(This) +#define ITraceRelogger_Release(This) (This)->lpVtbl->Release(This) +/*** ITraceRelogger methods ***/ +#define ITraceRelogger_AddLogfileTraceStream(This,LogfileName,UserContext,TraceHandle) (This)->lpVtbl->AddLogfileTraceStream(This,LogfileName,UserContext,TraceHandle) +#define ITraceRelogger_AddRealtimeTraceStream(This,LoggerName,UserContext,TraceHandle) (This)->lpVtbl->AddRealtimeTraceStream(This,LoggerName,UserContext,TraceHandle) +#define ITraceRelogger_RegisterCallback(This,Callback) (This)->lpVtbl->RegisterCallback(This,Callback) +#define ITraceRelogger_Inject(This,Event) (This)->lpVtbl->Inject(This,Event) +#define ITraceRelogger_CreateEventInstance(This,TraceHandle,Flags,Event) (This)->lpVtbl->CreateEventInstance(This,TraceHandle,Flags,Event) +#define ITraceRelogger_ProcessTrace(This) (This)->lpVtbl->ProcessTrace(This) +#define ITraceRelogger_SetOutputFilename(This,LogfileName) (This)->lpVtbl->SetOutputFilename(This,LogfileName) +#define ITraceRelogger_SetCompressionMode(This,CompressionMode) (This)->lpVtbl->SetCompressionMode(This,CompressionMode) +#define ITraceRelogger_Cancel(This) (This)->lpVtbl->Cancel(This) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT ITraceRelogger_QueryInterface(ITraceRelogger* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG ITraceRelogger_AddRef(ITraceRelogger* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG ITraceRelogger_Release(ITraceRelogger* This) { + return This->lpVtbl->Release(This); +} +/*** ITraceRelogger methods ***/ +static FORCEINLINE HRESULT ITraceRelogger_AddLogfileTraceStream(ITraceRelogger* This,BSTR LogfileName,void *UserContext,TRACEHANDLE *TraceHandle) { + return This->lpVtbl->AddLogfileTraceStream(This,LogfileName,UserContext,TraceHandle); +} +static FORCEINLINE HRESULT ITraceRelogger_AddRealtimeTraceStream(ITraceRelogger* This,BSTR LoggerName,void *UserContext,TRACEHANDLE *TraceHandle) { + return This->lpVtbl->AddRealtimeTraceStream(This,LoggerName,UserContext,TraceHandle); +} +static FORCEINLINE HRESULT ITraceRelogger_RegisterCallback(ITraceRelogger* This,ITraceEventCallback *Callback) { + return This->lpVtbl->RegisterCallback(This,Callback); +} +static FORCEINLINE HRESULT ITraceRelogger_Inject(ITraceRelogger* This,ITraceEvent *Event) { + return This->lpVtbl->Inject(This,Event); +} +static FORCEINLINE HRESULT ITraceRelogger_CreateEventInstance(ITraceRelogger* This,TRACEHANDLE TraceHandle,ULONG Flags,ITraceEvent **Event) { + return This->lpVtbl->CreateEventInstance(This,TraceHandle,Flags,Event); +} +static FORCEINLINE HRESULT ITraceRelogger_ProcessTrace(ITraceRelogger* This) { + return This->lpVtbl->ProcessTrace(This); +} +static FORCEINLINE HRESULT ITraceRelogger_SetOutputFilename(ITraceRelogger* This,BSTR LogfileName) { + return This->lpVtbl->SetOutputFilename(This,LogfileName); +} +static FORCEINLINE HRESULT ITraceRelogger_SetCompressionMode(ITraceRelogger* This,BOOLEAN CompressionMode) { + return This->lpVtbl->SetCompressionMode(This,CompressionMode); +} +static FORCEINLINE HRESULT ITraceRelogger_Cancel(ITraceRelogger* This) { + return This->lpVtbl->Cancel(This); +} +#endif +#endif + +#endif + + +#endif /* __ITraceRelogger_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * CTraceRelogger coclass + */ + +DEFINE_GUID(CLSID_CTraceRelogger, 0x7b40792d, 0x05ff, 0x44c4, 0x90,0x58, 0xf4,0x40,0xc7,0x1f,0x17,0xd4); + +#ifdef __cplusplus +class DECLSPEC_UUID("7b40792d-05ff-44c4-9058-f440c71f17d4") CTraceRelogger; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(CTraceRelogger, 0x7b40792d, 0x05ff, 0x44c4, 0x90,0x58, 0xf4,0x40,0xc7,0x1f,0x17,0xd4) +#endif +#endif + +/* Begin additional prototypes for all interfaces */ + + +/* End additional prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif /* __relogger_h__ */
diff --git a/mingw-w64-headers/include/relogger.idl b/mingw-w64-headers/include/relogger.idl new file mode 100644 index 0000000..60e0451 --- /dev/null +++ b/mingw-w64-headers/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; +}
diff --git a/mingw-w64-headers/include/windowscontracts.h b/mingw-w64-headers/include/windowscontracts.h new file mode 100644 index 0000000..4a3f1df --- /dev/null +++ b/mingw-w64-headers/include/windowscontracts.h
@@ -0,0 +1,45 @@ +/*** Autogenerated by WIDL 6.2 from include/windowscontracts.idl - Do not edit ***/ + +#ifdef _WIN32 +#ifndef __REQUIRED_RPCNDR_H_VERSION__ +#define __REQUIRED_RPCNDR_H_VERSION__ 475 +#endif +#include <rpc.h> +#include <rpcndr.h> +#endif + +#ifndef COM_NO_WINDOWS_H +#include <windows.h> +#include <ole2.h> +#endif + +#ifndef __windowscontracts_h__ +#define __windowscontracts_h__ + +/* Forward declarations */ + +/* Headers for imported files */ + + +#ifdef __cplusplus +extern "C" { +#endif + +#if !defined(WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION) +#define WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION 0x40000 +#endif // defined(WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION) + +#if !defined(WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION) +#define WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION 0xa0000 +#endif // defined(WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION) + +/* Begin additional prototypes for all interfaces */ + + +/* End additional prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif /* __windowscontracts_h__ */
diff --git a/mingw-w64-headers/include/windowscontracts.idl b/mingw-w64-headers/include/windowscontracts.idl new file mode 100644 index 0000000..6bcf80a --- /dev/null +++ b/mingw-w64-headers/include/windowscontracts.idl
@@ -0,0 +1,33 @@ +/* + * Copyright 2020 Rémi Bernon 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 + */ + +#ifdef __WIDL__ +#pragma winrt ns_prefix +#endif + +namespace Windows { + namespace Foundation { + [contractversion(4)] + apicontract FoundationContract + {}; + + [contractversion(10)] + apicontract UniversalApiContract + {}; + } +}
diff --git a/mingw-w64-headers/wine-import.sh b/mingw-w64-headers/wine-import.sh index f1859cb..1dd2748 100755 --- a/mingw-w64-headers/wine-import.sh +++ b/mingw-w64-headers/wine-import.sh
@@ -182,6 +182,7 @@ objectarray \ optary \ qedit \ + relogger \ spatialaudioclient \ taskschd \ thumbcache \ @@ -191,6 +192,7 @@ vmr9 \ wincodec \ wincodecsdk \ + windowscontracts \ wmdrmsdk \ wmp \ wmsbuffer \