master
  1/*** Autogenerated by WIDL 10.4 from include/relogger.idl - Do not edit ***/
  2
  3#ifdef _WIN32
  4#ifndef __REQUIRED_RPCNDR_H_VERSION__
  5#define __REQUIRED_RPCNDR_H_VERSION__ 475
  6#endif
  7#include <rpc.h>
  8#include <rpcndr.h>
  9#endif
 10
 11#ifndef COM_NO_WINDOWS_H
 12#include <windows.h>
 13#include <ole2.h>
 14#endif
 15
 16#ifndef __relogger_h__
 17#define __relogger_h__
 18
 19/* Forward declarations */
 20
 21#ifndef __ITraceEvent_FWD_DEFINED__
 22#define __ITraceEvent_FWD_DEFINED__
 23typedef interface ITraceEvent ITraceEvent;
 24#ifdef __cplusplus
 25interface ITraceEvent;
 26#endif /* __cplusplus */
 27#endif
 28
 29#ifndef __ITraceEventCallback_FWD_DEFINED__
 30#define __ITraceEventCallback_FWD_DEFINED__
 31typedef interface ITraceEventCallback ITraceEventCallback;
 32#ifdef __cplusplus
 33interface ITraceEventCallback;
 34#endif /* __cplusplus */
 35#endif
 36
 37#ifndef __ITraceRelogger_FWD_DEFINED__
 38#define __ITraceRelogger_FWD_DEFINED__
 39typedef interface ITraceRelogger ITraceRelogger;
 40#ifdef __cplusplus
 41interface ITraceRelogger;
 42#endif /* __cplusplus */
 43#endif
 44
 45#ifndef __CTraceRelogger_FWD_DEFINED__
 46#define __CTraceRelogger_FWD_DEFINED__
 47#ifdef __cplusplus
 48typedef class CTraceRelogger CTraceRelogger;
 49#else
 50typedef struct CTraceRelogger CTraceRelogger;
 51#endif /* defined __cplusplus */
 52#endif /* defined __CTraceRelogger_FWD_DEFINED__ */
 53
 54/* Headers for imported files */
 55
 56#include <unknwn.h>
 57#include <oaidl.h>
 58#include <ocidl.h>
 59
 60#ifdef __cplusplus
 61extern "C" {
 62#endif
 63
 64typedef struct _EVENT_DESCRIPTOR {
 65    USHORT Id;
 66    UCHAR Version;
 67    UCHAR Channel;
 68    UCHAR Level;
 69    UCHAR Opcode;
 70    USHORT Task;
 71    ULONGLONG Keyword;
 72} EVENT_DESCRIPTOR;
 73typedef struct _EVENT_DESCRIPTOR *PEVENT_DESCRIPTOR;
 74typedef const EVENT_DESCRIPTOR *PCEVENT_DESCRIPTOR;
 75typedef struct _EVENT_HEADER {
 76    USHORT Size;
 77    USHORT HeaderType;
 78    USHORT Flags;
 79    USHORT EventProperty;
 80    ULONG ThreadId;
 81    ULONG ProcessId;
 82    LARGE_INTEGER TimeStamp;
 83    GUID ProviderId;
 84    EVENT_DESCRIPTOR EventDescriptor;
 85    union {
 86        struct {
 87            ULONG KernelTime;
 88            ULONG UserTime;
 89        } DUMMYSTRUCTNAME;
 90        ULONG64 ProcessorTime;
 91    } DUMMYUNIONNAME;
 92    GUID ActivityId;
 93} EVENT_HEADER;
 94typedef struct _EVENT_HEADER *PEVENT_HEADER;
 95typedef struct _ETW_BUFFER_CONTEXT {
 96    union {
 97        struct {
 98            UCHAR ProcessorNumber;
 99            UCHAR Alignment;
100        } DUMMYSTRUCTNAME;
101        USHORT ProcessorIndex;
102    } DUMMYUNIONNAME;
103    USHORT LoggerId;
104} ETW_BUFFER_CONTEXT;
105typedef struct _ETW_BUFFER_CONTEXT *PETW_BUFFER_CONTEXT;
106typedef struct _EVENT_HEADER_EXTENDED_DATA_ITEM {
107    USHORT Reserved1;
108    USHORT ExtType;
109    USHORT Linkage;
110    USHORT DataSize;
111    ULONGLONG DataPtr;
112} EVENT_HEADER_EXTENDED_DATA_ITEM;
113typedef struct _EVENT_HEADER_EXTENDED_DATA_ITEM *PEVENT_HEADER_EXTENDED_DATA_ITEM;
114typedef struct _EVENT_RECORD {
115    EVENT_HEADER EventHeader;
116    ETW_BUFFER_CONTEXT BufferContext;
117    USHORT ExtendedDataCount;
118    USHORT UserDataLength;
119    EVENT_HEADER_EXTENDED_DATA_ITEM *ExtendedData;
120    void *UserData;
121    void *UserContext;
122} EVENT_RECORD;
123typedef struct _EVENT_RECORD *PEVENT_RECORD;
124typedef ULONG64 TRACEHANDLE;
125typedef ULONG64 *PTRACEHANDLE;
126/*****************************************************************************
127 * ITraceEvent interface
128 */
129#ifndef __ITraceEvent_INTERFACE_DEFINED__
130#define __ITraceEvent_INTERFACE_DEFINED__
131
132DEFINE_GUID(IID_ITraceEvent, 0x8cc97f40, 0x9028, 0x4ff3, 0x9b,0x62, 0x7d,0x1f,0x79,0xca,0x7b,0xcb);
133#if defined(__cplusplus) && !defined(CINTERFACE)
134MIDL_INTERFACE("8cc97f40-9028-4ff3-9b62-7d1f79ca7bcb")
135ITraceEvent : public IUnknown
136{
137    virtual HRESULT STDMETHODCALLTYPE Clone(
138        ITraceEvent **NewEvent) = 0;
139
140    virtual HRESULT STDMETHODCALLTYPE GetUserContext(
141        void **UserContext) = 0;
142
143    virtual HRESULT STDMETHODCALLTYPE GetEventRecord(
144        PEVENT_RECORD *EventRecord) = 0;
145
146    virtual HRESULT STDMETHODCALLTYPE SetPayload(
147        BYTE *Payload,
148        ULONG PayloadSize) = 0;
149
150    virtual HRESULT STDMETHODCALLTYPE SetEventDescriptor(
151        PCEVENT_DESCRIPTOR EventDescriptor) = 0;
152
153    virtual HRESULT STDMETHODCALLTYPE SetProcessId(
154        ULONG ProcessId) = 0;
155
156    virtual HRESULT STDMETHODCALLTYPE SetProcessorIndex(
157        ULONG ProcessorIndex) = 0;
158
159    virtual HRESULT STDMETHODCALLTYPE SetThreadId(
160        ULONG ThreadId) = 0;
161
162    virtual HRESULT STDMETHODCALLTYPE SetThreadTimes(
163        ULONG KernelTime,
164        ULONG UserTime) = 0;
165
166    virtual HRESULT STDMETHODCALLTYPE SetActivityId(
167        LPCGUID ActivityId) = 0;
168
169    virtual HRESULT STDMETHODCALLTYPE SetTimeStamp(
170        LARGE_INTEGER *TimeStamp) = 0;
171
172    virtual HRESULT STDMETHODCALLTYPE SetProviderId(
173        LPCGUID ProviderId) = 0;
174
175};
176#ifdef __CRT_UUID_DECL
177__CRT_UUID_DECL(ITraceEvent, 0x8cc97f40, 0x9028, 0x4ff3, 0x9b,0x62, 0x7d,0x1f,0x79,0xca,0x7b,0xcb)
178#endif
179#else
180typedef struct ITraceEventVtbl {
181    BEGIN_INTERFACE
182
183    /*** IUnknown methods ***/
184    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
185        ITraceEvent *This,
186        REFIID riid,
187        void **ppvObject);
188
189    ULONG (STDMETHODCALLTYPE *AddRef)(
190        ITraceEvent *This);
191
192    ULONG (STDMETHODCALLTYPE *Release)(
193        ITraceEvent *This);
194
195    /*** ITraceEvent methods ***/
196    HRESULT (STDMETHODCALLTYPE *Clone)(
197        ITraceEvent *This,
198        ITraceEvent **NewEvent);
199
200    HRESULT (STDMETHODCALLTYPE *GetUserContext)(
201        ITraceEvent *This,
202        void **UserContext);
203
204    HRESULT (STDMETHODCALLTYPE *GetEventRecord)(
205        ITraceEvent *This,
206        PEVENT_RECORD *EventRecord);
207
208    HRESULT (STDMETHODCALLTYPE *SetPayload)(
209        ITraceEvent *This,
210        BYTE *Payload,
211        ULONG PayloadSize);
212
213    HRESULT (STDMETHODCALLTYPE *SetEventDescriptor)(
214        ITraceEvent *This,
215        PCEVENT_DESCRIPTOR EventDescriptor);
216
217    HRESULT (STDMETHODCALLTYPE *SetProcessId)(
218        ITraceEvent *This,
219        ULONG ProcessId);
220
221    HRESULT (STDMETHODCALLTYPE *SetProcessorIndex)(
222        ITraceEvent *This,
223        ULONG ProcessorIndex);
224
225    HRESULT (STDMETHODCALLTYPE *SetThreadId)(
226        ITraceEvent *This,
227        ULONG ThreadId);
228
229    HRESULT (STDMETHODCALLTYPE *SetThreadTimes)(
230        ITraceEvent *This,
231        ULONG KernelTime,
232        ULONG UserTime);
233
234    HRESULT (STDMETHODCALLTYPE *SetActivityId)(
235        ITraceEvent *This,
236        LPCGUID ActivityId);
237
238    HRESULT (STDMETHODCALLTYPE *SetTimeStamp)(
239        ITraceEvent *This,
240        LARGE_INTEGER *TimeStamp);
241
242    HRESULT (STDMETHODCALLTYPE *SetProviderId)(
243        ITraceEvent *This,
244        LPCGUID ProviderId);
245
246    END_INTERFACE
247} ITraceEventVtbl;
248
249interface ITraceEvent {
250    CONST_VTBL ITraceEventVtbl* lpVtbl;
251};
252
253#ifdef COBJMACROS
254#ifndef WIDL_C_INLINE_WRAPPERS
255/*** IUnknown methods ***/
256#define ITraceEvent_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
257#define ITraceEvent_AddRef(This) (This)->lpVtbl->AddRef(This)
258#define ITraceEvent_Release(This) (This)->lpVtbl->Release(This)
259/*** ITraceEvent methods ***/
260#define ITraceEvent_Clone(This,NewEvent) (This)->lpVtbl->Clone(This,NewEvent)
261#define ITraceEvent_GetUserContext(This,UserContext) (This)->lpVtbl->GetUserContext(This,UserContext)
262#define ITraceEvent_GetEventRecord(This,EventRecord) (This)->lpVtbl->GetEventRecord(This,EventRecord)
263#define ITraceEvent_SetPayload(This,Payload,PayloadSize) (This)->lpVtbl->SetPayload(This,Payload,PayloadSize)
264#define ITraceEvent_SetEventDescriptor(This,EventDescriptor) (This)->lpVtbl->SetEventDescriptor(This,EventDescriptor)
265#define ITraceEvent_SetProcessId(This,ProcessId) (This)->lpVtbl->SetProcessId(This,ProcessId)
266#define ITraceEvent_SetProcessorIndex(This,ProcessorIndex) (This)->lpVtbl->SetProcessorIndex(This,ProcessorIndex)
267#define ITraceEvent_SetThreadId(This,ThreadId) (This)->lpVtbl->SetThreadId(This,ThreadId)
268#define ITraceEvent_SetThreadTimes(This,KernelTime,UserTime) (This)->lpVtbl->SetThreadTimes(This,KernelTime,UserTime)
269#define ITraceEvent_SetActivityId(This,ActivityId) (This)->lpVtbl->SetActivityId(This,ActivityId)
270#define ITraceEvent_SetTimeStamp(This,TimeStamp) (This)->lpVtbl->SetTimeStamp(This,TimeStamp)
271#define ITraceEvent_SetProviderId(This,ProviderId) (This)->lpVtbl->SetProviderId(This,ProviderId)
272#else
273/*** IUnknown methods ***/
274static inline HRESULT ITraceEvent_QueryInterface(ITraceEvent* This,REFIID riid,void **ppvObject) {
275    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
276}
277static inline ULONG ITraceEvent_AddRef(ITraceEvent* This) {
278    return This->lpVtbl->AddRef(This);
279}
280static inline ULONG ITraceEvent_Release(ITraceEvent* This) {
281    return This->lpVtbl->Release(This);
282}
283/*** ITraceEvent methods ***/
284static inline HRESULT ITraceEvent_Clone(ITraceEvent* This,ITraceEvent **NewEvent) {
285    return This->lpVtbl->Clone(This,NewEvent);
286}
287static inline HRESULT ITraceEvent_GetUserContext(ITraceEvent* This,void **UserContext) {
288    return This->lpVtbl->GetUserContext(This,UserContext);
289}
290static inline HRESULT ITraceEvent_GetEventRecord(ITraceEvent* This,PEVENT_RECORD *EventRecord) {
291    return This->lpVtbl->GetEventRecord(This,EventRecord);
292}
293static inline HRESULT ITraceEvent_SetPayload(ITraceEvent* This,BYTE *Payload,ULONG PayloadSize) {
294    return This->lpVtbl->SetPayload(This,Payload,PayloadSize);
295}
296static inline HRESULT ITraceEvent_SetEventDescriptor(ITraceEvent* This,PCEVENT_DESCRIPTOR EventDescriptor) {
297    return This->lpVtbl->SetEventDescriptor(This,EventDescriptor);
298}
299static inline HRESULT ITraceEvent_SetProcessId(ITraceEvent* This,ULONG ProcessId) {
300    return This->lpVtbl->SetProcessId(This,ProcessId);
301}
302static inline HRESULT ITraceEvent_SetProcessorIndex(ITraceEvent* This,ULONG ProcessorIndex) {
303    return This->lpVtbl->SetProcessorIndex(This,ProcessorIndex);
304}
305static inline HRESULT ITraceEvent_SetThreadId(ITraceEvent* This,ULONG ThreadId) {
306    return This->lpVtbl->SetThreadId(This,ThreadId);
307}
308static inline HRESULT ITraceEvent_SetThreadTimes(ITraceEvent* This,ULONG KernelTime,ULONG UserTime) {
309    return This->lpVtbl->SetThreadTimes(This,KernelTime,UserTime);
310}
311static inline HRESULT ITraceEvent_SetActivityId(ITraceEvent* This,LPCGUID ActivityId) {
312    return This->lpVtbl->SetActivityId(This,ActivityId);
313}
314static inline HRESULT ITraceEvent_SetTimeStamp(ITraceEvent* This,LARGE_INTEGER *TimeStamp) {
315    return This->lpVtbl->SetTimeStamp(This,TimeStamp);
316}
317static inline HRESULT ITraceEvent_SetProviderId(ITraceEvent* This,LPCGUID ProviderId) {
318    return This->lpVtbl->SetProviderId(This,ProviderId);
319}
320#endif
321#endif
322
323#endif
324
325
326#endif  /* __ITraceEvent_INTERFACE_DEFINED__ */
327
328#ifndef __ITraceRelogger_FWD_DEFINED__
329#define __ITraceRelogger_FWD_DEFINED__
330typedef interface ITraceRelogger ITraceRelogger;
331#ifdef __cplusplus
332interface ITraceRelogger;
333#endif /* __cplusplus */
334#endif
335
336/*****************************************************************************
337 * ITraceEventCallback interface
338 */
339#ifndef __ITraceEventCallback_INTERFACE_DEFINED__
340#define __ITraceEventCallback_INTERFACE_DEFINED__
341
342DEFINE_GUID(IID_ITraceEventCallback, 0x3ed25501, 0x593f, 0x43e9, 0x8f,0x38, 0x3a,0xb4,0x6f,0x5a,0x4a,0x52);
343#if defined(__cplusplus) && !defined(CINTERFACE)
344MIDL_INTERFACE("3ed25501-593f-43e9-8f38-3ab46f5a4a52")
345ITraceEventCallback : public IUnknown
346{
347    virtual HRESULT STDMETHODCALLTYPE OnBeginProcessTrace(
348        ITraceEvent *HeaderEvent,
349        ITraceRelogger *Relogger) = 0;
350
351    virtual HRESULT STDMETHODCALLTYPE OnFinalizeProcessTrace(
352        ITraceRelogger *Relogger) = 0;
353
354    virtual HRESULT STDMETHODCALLTYPE OnEvent(
355        ITraceEvent *Event,
356        ITraceRelogger *Relogger) = 0;
357
358};
359#ifdef __CRT_UUID_DECL
360__CRT_UUID_DECL(ITraceEventCallback, 0x3ed25501, 0x593f, 0x43e9, 0x8f,0x38, 0x3a,0xb4,0x6f,0x5a,0x4a,0x52)
361#endif
362#else
363typedef struct ITraceEventCallbackVtbl {
364    BEGIN_INTERFACE
365
366    /*** IUnknown methods ***/
367    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
368        ITraceEventCallback *This,
369        REFIID riid,
370        void **ppvObject);
371
372    ULONG (STDMETHODCALLTYPE *AddRef)(
373        ITraceEventCallback *This);
374
375    ULONG (STDMETHODCALLTYPE *Release)(
376        ITraceEventCallback *This);
377
378    /*** ITraceEventCallback methods ***/
379    HRESULT (STDMETHODCALLTYPE *OnBeginProcessTrace)(
380        ITraceEventCallback *This,
381        ITraceEvent *HeaderEvent,
382        ITraceRelogger *Relogger);
383
384    HRESULT (STDMETHODCALLTYPE *OnFinalizeProcessTrace)(
385        ITraceEventCallback *This,
386        ITraceRelogger *Relogger);
387
388    HRESULT (STDMETHODCALLTYPE *OnEvent)(
389        ITraceEventCallback *This,
390        ITraceEvent *Event,
391        ITraceRelogger *Relogger);
392
393    END_INTERFACE
394} ITraceEventCallbackVtbl;
395
396interface ITraceEventCallback {
397    CONST_VTBL ITraceEventCallbackVtbl* lpVtbl;
398};
399
400#ifdef COBJMACROS
401#ifndef WIDL_C_INLINE_WRAPPERS
402/*** IUnknown methods ***/
403#define ITraceEventCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
404#define ITraceEventCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
405#define ITraceEventCallback_Release(This) (This)->lpVtbl->Release(This)
406/*** ITraceEventCallback methods ***/
407#define ITraceEventCallback_OnBeginProcessTrace(This,HeaderEvent,Relogger) (This)->lpVtbl->OnBeginProcessTrace(This,HeaderEvent,Relogger)
408#define ITraceEventCallback_OnFinalizeProcessTrace(This,Relogger) (This)->lpVtbl->OnFinalizeProcessTrace(This,Relogger)
409#define ITraceEventCallback_OnEvent(This,Event,Relogger) (This)->lpVtbl->OnEvent(This,Event,Relogger)
410#else
411/*** IUnknown methods ***/
412static inline HRESULT ITraceEventCallback_QueryInterface(ITraceEventCallback* This,REFIID riid,void **ppvObject) {
413    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
414}
415static inline ULONG ITraceEventCallback_AddRef(ITraceEventCallback* This) {
416    return This->lpVtbl->AddRef(This);
417}
418static inline ULONG ITraceEventCallback_Release(ITraceEventCallback* This) {
419    return This->lpVtbl->Release(This);
420}
421/*** ITraceEventCallback methods ***/
422static inline HRESULT ITraceEventCallback_OnBeginProcessTrace(ITraceEventCallback* This,ITraceEvent *HeaderEvent,ITraceRelogger *Relogger) {
423    return This->lpVtbl->OnBeginProcessTrace(This,HeaderEvent,Relogger);
424}
425static inline HRESULT ITraceEventCallback_OnFinalizeProcessTrace(ITraceEventCallback* This,ITraceRelogger *Relogger) {
426    return This->lpVtbl->OnFinalizeProcessTrace(This,Relogger);
427}
428static inline HRESULT ITraceEventCallback_OnEvent(ITraceEventCallback* This,ITraceEvent *Event,ITraceRelogger *Relogger) {
429    return This->lpVtbl->OnEvent(This,Event,Relogger);
430}
431#endif
432#endif
433
434#endif
435
436
437#endif  /* __ITraceEventCallback_INTERFACE_DEFINED__ */
438
439/*****************************************************************************
440 * ITraceRelogger interface
441 */
442#ifndef __ITraceRelogger_INTERFACE_DEFINED__
443#define __ITraceRelogger_INTERFACE_DEFINED__
444
445DEFINE_GUID(IID_ITraceRelogger, 0xf754ad43, 0x3bcc, 0x4286, 0x80,0x09, 0x9c,0x5d,0xa2,0x14,0xe8,0x4e);
446#if defined(__cplusplus) && !defined(CINTERFACE)
447MIDL_INTERFACE("f754ad43-3bcc-4286-8009-9c5da214e84e")
448ITraceRelogger : public IUnknown
449{
450    virtual HRESULT STDMETHODCALLTYPE AddLogfileTraceStream(
451        BSTR LogfileName,
452        void *UserContext,
453        TRACEHANDLE *TraceHandle) = 0;
454
455    virtual HRESULT STDMETHODCALLTYPE AddRealtimeTraceStream(
456        BSTR LoggerName,
457        void *UserContext,
458        TRACEHANDLE *TraceHandle) = 0;
459
460    virtual HRESULT STDMETHODCALLTYPE RegisterCallback(
461        ITraceEventCallback *Callback) = 0;
462
463    virtual HRESULT STDMETHODCALLTYPE Inject(
464        ITraceEvent *Event) = 0;
465
466    virtual HRESULT STDMETHODCALLTYPE CreateEventInstance(
467        TRACEHANDLE TraceHandle,
468        ULONG Flags,
469        ITraceEvent **Event) = 0;
470
471    virtual HRESULT STDMETHODCALLTYPE ProcessTrace(
472        ) = 0;
473
474    virtual HRESULT STDMETHODCALLTYPE SetOutputFilename(
475        BSTR LogfileName) = 0;
476
477    virtual HRESULT STDMETHODCALLTYPE SetCompressionMode(
478        BOOLEAN CompressionMode) = 0;
479
480    virtual HRESULT STDMETHODCALLTYPE Cancel(
481        ) = 0;
482
483};
484#ifdef __CRT_UUID_DECL
485__CRT_UUID_DECL(ITraceRelogger, 0xf754ad43, 0x3bcc, 0x4286, 0x80,0x09, 0x9c,0x5d,0xa2,0x14,0xe8,0x4e)
486#endif
487#else
488typedef struct ITraceReloggerVtbl {
489    BEGIN_INTERFACE
490
491    /*** IUnknown methods ***/
492    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
493        ITraceRelogger *This,
494        REFIID riid,
495        void **ppvObject);
496
497    ULONG (STDMETHODCALLTYPE *AddRef)(
498        ITraceRelogger *This);
499
500    ULONG (STDMETHODCALLTYPE *Release)(
501        ITraceRelogger *This);
502
503    /*** ITraceRelogger methods ***/
504    HRESULT (STDMETHODCALLTYPE *AddLogfileTraceStream)(
505        ITraceRelogger *This,
506        BSTR LogfileName,
507        void *UserContext,
508        TRACEHANDLE *TraceHandle);
509
510    HRESULT (STDMETHODCALLTYPE *AddRealtimeTraceStream)(
511        ITraceRelogger *This,
512        BSTR LoggerName,
513        void *UserContext,
514        TRACEHANDLE *TraceHandle);
515
516    HRESULT (STDMETHODCALLTYPE *RegisterCallback)(
517        ITraceRelogger *This,
518        ITraceEventCallback *Callback);
519
520    HRESULT (STDMETHODCALLTYPE *Inject)(
521        ITraceRelogger *This,
522        ITraceEvent *Event);
523
524    HRESULT (STDMETHODCALLTYPE *CreateEventInstance)(
525        ITraceRelogger *This,
526        TRACEHANDLE TraceHandle,
527        ULONG Flags,
528        ITraceEvent **Event);
529
530    HRESULT (STDMETHODCALLTYPE *ProcessTrace)(
531        ITraceRelogger *This);
532
533    HRESULT (STDMETHODCALLTYPE *SetOutputFilename)(
534        ITraceRelogger *This,
535        BSTR LogfileName);
536
537    HRESULT (STDMETHODCALLTYPE *SetCompressionMode)(
538        ITraceRelogger *This,
539        BOOLEAN CompressionMode);
540
541    HRESULT (STDMETHODCALLTYPE *Cancel)(
542        ITraceRelogger *This);
543
544    END_INTERFACE
545} ITraceReloggerVtbl;
546
547interface ITraceRelogger {
548    CONST_VTBL ITraceReloggerVtbl* lpVtbl;
549};
550
551#ifdef COBJMACROS
552#ifndef WIDL_C_INLINE_WRAPPERS
553/*** IUnknown methods ***/
554#define ITraceRelogger_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
555#define ITraceRelogger_AddRef(This) (This)->lpVtbl->AddRef(This)
556#define ITraceRelogger_Release(This) (This)->lpVtbl->Release(This)
557/*** ITraceRelogger methods ***/
558#define ITraceRelogger_AddLogfileTraceStream(This,LogfileName,UserContext,TraceHandle) (This)->lpVtbl->AddLogfileTraceStream(This,LogfileName,UserContext,TraceHandle)
559#define ITraceRelogger_AddRealtimeTraceStream(This,LoggerName,UserContext,TraceHandle) (This)->lpVtbl->AddRealtimeTraceStream(This,LoggerName,UserContext,TraceHandle)
560#define ITraceRelogger_RegisterCallback(This,Callback) (This)->lpVtbl->RegisterCallback(This,Callback)
561#define ITraceRelogger_Inject(This,Event) (This)->lpVtbl->Inject(This,Event)
562#define ITraceRelogger_CreateEventInstance(This,TraceHandle,Flags,Event) (This)->lpVtbl->CreateEventInstance(This,TraceHandle,Flags,Event)
563#define ITraceRelogger_ProcessTrace(This) (This)->lpVtbl->ProcessTrace(This)
564#define ITraceRelogger_SetOutputFilename(This,LogfileName) (This)->lpVtbl->SetOutputFilename(This,LogfileName)
565#define ITraceRelogger_SetCompressionMode(This,CompressionMode) (This)->lpVtbl->SetCompressionMode(This,CompressionMode)
566#define ITraceRelogger_Cancel(This) (This)->lpVtbl->Cancel(This)
567#else
568/*** IUnknown methods ***/
569static inline HRESULT ITraceRelogger_QueryInterface(ITraceRelogger* This,REFIID riid,void **ppvObject) {
570    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
571}
572static inline ULONG ITraceRelogger_AddRef(ITraceRelogger* This) {
573    return This->lpVtbl->AddRef(This);
574}
575static inline ULONG ITraceRelogger_Release(ITraceRelogger* This) {
576    return This->lpVtbl->Release(This);
577}
578/*** ITraceRelogger methods ***/
579static inline HRESULT ITraceRelogger_AddLogfileTraceStream(ITraceRelogger* This,BSTR LogfileName,void *UserContext,TRACEHANDLE *TraceHandle) {
580    return This->lpVtbl->AddLogfileTraceStream(This,LogfileName,UserContext,TraceHandle);
581}
582static inline HRESULT ITraceRelogger_AddRealtimeTraceStream(ITraceRelogger* This,BSTR LoggerName,void *UserContext,TRACEHANDLE *TraceHandle) {
583    return This->lpVtbl->AddRealtimeTraceStream(This,LoggerName,UserContext,TraceHandle);
584}
585static inline HRESULT ITraceRelogger_RegisterCallback(ITraceRelogger* This,ITraceEventCallback *Callback) {
586    return This->lpVtbl->RegisterCallback(This,Callback);
587}
588static inline HRESULT ITraceRelogger_Inject(ITraceRelogger* This,ITraceEvent *Event) {
589    return This->lpVtbl->Inject(This,Event);
590}
591static inline HRESULT ITraceRelogger_CreateEventInstance(ITraceRelogger* This,TRACEHANDLE TraceHandle,ULONG Flags,ITraceEvent **Event) {
592    return This->lpVtbl->CreateEventInstance(This,TraceHandle,Flags,Event);
593}
594static inline HRESULT ITraceRelogger_ProcessTrace(ITraceRelogger* This) {
595    return This->lpVtbl->ProcessTrace(This);
596}
597static inline HRESULT ITraceRelogger_SetOutputFilename(ITraceRelogger* This,BSTR LogfileName) {
598    return This->lpVtbl->SetOutputFilename(This,LogfileName);
599}
600static inline HRESULT ITraceRelogger_SetCompressionMode(ITraceRelogger* This,BOOLEAN CompressionMode) {
601    return This->lpVtbl->SetCompressionMode(This,CompressionMode);
602}
603static inline HRESULT ITraceRelogger_Cancel(ITraceRelogger* This) {
604    return This->lpVtbl->Cancel(This);
605}
606#endif
607#endif
608
609#endif
610
611
612#endif  /* __ITraceRelogger_INTERFACE_DEFINED__ */
613
614/*****************************************************************************
615 * CTraceRelogger coclass
616 */
617
618DEFINE_GUID(CLSID_CTraceRelogger, 0x7b40792d, 0x05ff, 0x44c4, 0x90,0x58, 0xf4,0x40,0xc7,0x1f,0x17,0xd4);
619
620#ifdef __cplusplus
621class DECLSPEC_UUID("7b40792d-05ff-44c4-9058-f440c71f17d4") CTraceRelogger;
622#ifdef __CRT_UUID_DECL
623__CRT_UUID_DECL(CTraceRelogger, 0x7b40792d, 0x05ff, 0x44c4, 0x90,0x58, 0xf4,0x40,0xc7,0x1f,0x17,0xd4)
624#endif
625#endif
626
627/* Begin additional prototypes for all interfaces */
628
629
630/* End additional prototypes */
631
632#ifdef __cplusplus
633}
634#endif
635
636#endif /* __relogger_h__ */