1 /*** Autogenerated by WIDL 1.6 from include/activprof.idl - Do not edit ***/
2 
3 #ifndef __REQUIRED_RPCNDR_H_VERSION__
4 #define __REQUIRED_RPCNDR_H_VERSION__ 475
5 #endif
6 
7 #include <rpc.h>
8 #include <rpcndr.h>
9 
10 #ifndef COM_NO_WINDOWS_H
11 #include <windows.h>
12 #include <ole2.h>
13 #endif
14 
15 #ifndef __activprof_h__
16 #define __activprof_h__
17 
18 /* Forward declarations */
19 
20 #ifndef __IActiveScriptProfilerControl_FWD_DEFINED__
21 #define __IActiveScriptProfilerControl_FWD_DEFINED__
22 typedef interface IActiveScriptProfilerControl IActiveScriptProfilerControl;
23 #endif
24 
25 #ifndef __IActiveScriptProfilerControl2_FWD_DEFINED__
26 #define __IActiveScriptProfilerControl2_FWD_DEFINED__
27 typedef interface IActiveScriptProfilerControl2 IActiveScriptProfilerControl2;
28 #endif
29 
30 #ifndef __IActiveScriptProfilerHeapEnum_FWD_DEFINED__
31 #define __IActiveScriptProfilerHeapEnum_FWD_DEFINED__
32 typedef interface IActiveScriptProfilerHeapEnum IActiveScriptProfilerHeapEnum;
33 #endif
34 
35 #ifndef __IActiveScriptProfilerControl3_FWD_DEFINED__
36 #define __IActiveScriptProfilerControl3_FWD_DEFINED__
37 typedef interface IActiveScriptProfilerControl3 IActiveScriptProfilerControl3;
38 #endif
39 
40 #ifndef __IActiveScriptProfilerCallback_FWD_DEFINED__
41 #define __IActiveScriptProfilerCallback_FWD_DEFINED__
42 typedef interface IActiveScriptProfilerCallback IActiveScriptProfilerCallback;
43 #endif
44 
45 #ifndef __IActiveScriptProfilerCallback2_FWD_DEFINED__
46 #define __IActiveScriptProfilerCallback2_FWD_DEFINED__
47 typedef interface IActiveScriptProfilerCallback2 IActiveScriptProfilerCallback2;
48 #endif
49 
50 #ifndef __IActiveScriptProfilerCallback3_FWD_DEFINED__
51 #define __IActiveScriptProfilerCallback3_FWD_DEFINED__
52 typedef interface IActiveScriptProfilerCallback3 IActiveScriptProfilerCallback3;
53 #endif
54 
55 /* Headers for imported files */
56 
57 #include <unknwn.h>
58 
59 #ifdef __cplusplus
60 extern "C" {
61 #endif
62 
63 /**
64  * This file is part of the mingw-w64 runtime package.
65  * No warranty is given; refer to the file DISCLAIMER within this package.
66  */
67 
68 #include <winapifamily.h>
69 
70 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
71 
72 const HRESULT ACTIVPROF_E_PROFILER_PRESENT = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0200);
73 const HRESULT ACTIVPROF_E_PROFILER_ABSENT = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0201);
74 const HRESULT ACTIVPROF_E_UNABLE_TO_APPLY_ACTION = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0202);
75 const ULONG PROFILER_HEAP_OBJECT_NAME_ID_UNAVAILABLE=(ULONG)-1;
76 
77 #ifndef __ActivProf_h
78 #define __ActivProf_h
79 
80 
81 #ifndef _NO_SCRIPT_GUIDS
82 DEFINE_GUID(IID_IActiveScriptProfilerHeapEnum, 0x32e4694e, 0xd37, 0x419b, 0xb9, 0x3d, 0xfa, 0x20, 0xde, 0xd6, 0xe8, 0xea);
83 DEFINE_GUID(IID_IActiveScriptProfilerControl3, 0xb403015, 0xf381, 0x4023, 0xa5, 0xd0, 0x6f, 0xed, 0x7, 0x6d, 0xe7, 0x16);
84 #endif
85 
86 typedef enum __WIDL_activprof_generated_name_00000002 {
87     PROFILER_SCRIPT_TYPE_USER = 0,
88     PROFILER_SCRIPT_TYPE_DYNAMIC = 1,
89     PROFILER_SCRIPT_TYPE_NATIVE = 2,
90     PROFILER_SCRIPT_TYPE_DOM = 3
91 } PROFILER_SCRIPT_TYPE;
92 
93 typedef enum __WIDL_activprof_generated_name_00000003 {
94     PROFILER_EVENT_MASK_TRACE_SCRIPT_FUNCTION_CALL = 0x1,
95     PROFILER_EVENT_MASK_TRACE_NATIVE_FUNCTION_CALL = 0x2,
96     PROFILER_EVENT_MASK_TRACE_DOM_FUNCTION_CALL = 0x4,
97     PROFILER_EVENT_MASK_TRACE_ALL = PROFILER_EVENT_MASK_TRACE_SCRIPT_FUNCTION_CALL | PROFILER_EVENT_MASK_TRACE_NATIVE_FUNCTION_CALL,
98     PROFILER_EVENT_MASK_TRACE_ALL_WITH_DOM = PROFILER_EVENT_MASK_TRACE_ALL | PROFILER_EVENT_MASK_TRACE_DOM_FUNCTION_CALL
99 } PROFILER_EVENT_MASK;
100 
101 typedef LONG PROFILER_TOKEN;
102 
103 /*****************************************************************************
104  * IActiveScriptProfilerControl interface
105  */
106 #ifndef __IActiveScriptProfilerControl_INTERFACE_DEFINED__
107 #define __IActiveScriptProfilerControl_INTERFACE_DEFINED__
108 
109 DEFINE_GUID(IID_IActiveScriptProfilerControl, 0x784b5ff0, 0x69b0, 0x47d1, 0xa7,0xdc, 0x25,0x18,0xf4,0x23,0x0e,0x90);
110 #if defined(__cplusplus) && !defined(CINTERFACE)
111 MIDL_INTERFACE("784b5ff0-69b0-47d1-a7dc-2518f4230e90")
112 IActiveScriptProfilerControl : public IUnknown
113 {
114     virtual HRESULT STDMETHODCALLTYPE StartProfiling(
115         REFCLSID clsidProfilerObject,
116         DWORD dwEventMask,
117         DWORD dwContext) = 0;
118 
119     virtual HRESULT STDMETHODCALLTYPE SetProfilerEventMask(
120         DWORD dwEventMask) = 0;
121 
122     virtual HRESULT STDMETHODCALLTYPE StopProfiling(
123         HRESULT hrShutdownReason) = 0;
124 
125 };
126 #ifdef __CRT_UUID_DECL
127 __CRT_UUID_DECL(IActiveScriptProfilerControl, 0x784b5ff0, 0x69b0, 0x47d1, 0xa7,0xdc, 0x25,0x18,0xf4,0x23,0x0e,0x90)
128 #endif
129 #else
130 typedef struct IActiveScriptProfilerControlVtbl {
131     BEGIN_INTERFACE
132 
133     /*** IUnknown methods ***/
134     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
135         IActiveScriptProfilerControl* This,
136         REFIID riid,
137         void **ppvObject);
138 
139     ULONG (STDMETHODCALLTYPE *AddRef)(
140         IActiveScriptProfilerControl* This);
141 
142     ULONG (STDMETHODCALLTYPE *Release)(
143         IActiveScriptProfilerControl* This);
144 
145     /*** IActiveScriptProfilerControl methods ***/
146     HRESULT (STDMETHODCALLTYPE *StartProfiling)(
147         IActiveScriptProfilerControl* This,
148         REFCLSID clsidProfilerObject,
149         DWORD dwEventMask,
150         DWORD dwContext);
151 
152     HRESULT (STDMETHODCALLTYPE *SetProfilerEventMask)(
153         IActiveScriptProfilerControl* This,
154         DWORD dwEventMask);
155 
156     HRESULT (STDMETHODCALLTYPE *StopProfiling)(
157         IActiveScriptProfilerControl* This,
158         HRESULT hrShutdownReason);
159 
160     END_INTERFACE
161 } IActiveScriptProfilerControlVtbl;
162 interface IActiveScriptProfilerControl {
163     CONST_VTBL IActiveScriptProfilerControlVtbl* lpVtbl;
164 };
165 
166 #ifdef COBJMACROS
167 #ifndef WIDL_C_INLINE_WRAPPERS
168 /*** IUnknown methods ***/
169 #define IActiveScriptProfilerControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
170 #define IActiveScriptProfilerControl_AddRef(This) (This)->lpVtbl->AddRef(This)
171 #define IActiveScriptProfilerControl_Release(This) (This)->lpVtbl->Release(This)
172 /*** IActiveScriptProfilerControl methods ***/
173 #define IActiveScriptProfilerControl_StartProfiling(This,clsidProfilerObject,dwEventMask,dwContext) (This)->lpVtbl->StartProfiling(This,clsidProfilerObject,dwEventMask,dwContext)
174 #define IActiveScriptProfilerControl_SetProfilerEventMask(This,dwEventMask) (This)->lpVtbl->SetProfilerEventMask(This,dwEventMask)
175 #define IActiveScriptProfilerControl_StopProfiling(This,hrShutdownReason) (This)->lpVtbl->StopProfiling(This,hrShutdownReason)
176 #else
177 /*** IUnknown methods ***/
178 static FORCEINLINE HRESULT IActiveScriptProfilerControl_QueryInterface(IActiveScriptProfilerControl* This,REFIID riid,void **ppvObject) {
179     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
180 }
181 static FORCEINLINE ULONG IActiveScriptProfilerControl_AddRef(IActiveScriptProfilerControl* This) {
182     return This->lpVtbl->AddRef(This);
183 }
184 static FORCEINLINE ULONG IActiveScriptProfilerControl_Release(IActiveScriptProfilerControl* This) {
185     return This->lpVtbl->Release(This);
186 }
187 /*** IActiveScriptProfilerControl methods ***/
188 static FORCEINLINE HRESULT IActiveScriptProfilerControl_StartProfiling(IActiveScriptProfilerControl* This,REFCLSID clsidProfilerObject,DWORD dwEventMask,DWORD dwContext) {
189     return This->lpVtbl->StartProfiling(This,clsidProfilerObject,dwEventMask,dwContext);
190 }
191 static FORCEINLINE HRESULT IActiveScriptProfilerControl_SetProfilerEventMask(IActiveScriptProfilerControl* This,DWORD dwEventMask) {
192     return This->lpVtbl->SetProfilerEventMask(This,dwEventMask);
193 }
194 static FORCEINLINE HRESULT IActiveScriptProfilerControl_StopProfiling(IActiveScriptProfilerControl* This,HRESULT hrShutdownReason) {
195     return This->lpVtbl->StopProfiling(This,hrShutdownReason);
196 }
197 #endif
198 #endif
199 
200 #endif
201 
202 HRESULT STDMETHODCALLTYPE IActiveScriptProfilerControl_StartProfiling_Proxy(
203     IActiveScriptProfilerControl* This,
204     REFCLSID clsidProfilerObject,
205     DWORD dwEventMask,
206     DWORD dwContext);
207 void __RPC_STUB IActiveScriptProfilerControl_StartProfiling_Stub(
208     IRpcStubBuffer* This,
209     IRpcChannelBuffer* pRpcChannelBuffer,
210     PRPC_MESSAGE pRpcMessage,
211     DWORD* pdwStubPhase);
212 HRESULT STDMETHODCALLTYPE IActiveScriptProfilerControl_SetProfilerEventMask_Proxy(
213     IActiveScriptProfilerControl* This,
214     DWORD dwEventMask);
215 void __RPC_STUB IActiveScriptProfilerControl_SetProfilerEventMask_Stub(
216     IRpcStubBuffer* This,
217     IRpcChannelBuffer* pRpcChannelBuffer,
218     PRPC_MESSAGE pRpcMessage,
219     DWORD* pdwStubPhase);
220 HRESULT STDMETHODCALLTYPE IActiveScriptProfilerControl_StopProfiling_Proxy(
221     IActiveScriptProfilerControl* This,
222     HRESULT hrShutdownReason);
223 void __RPC_STUB IActiveScriptProfilerControl_StopProfiling_Stub(
224     IRpcStubBuffer* This,
225     IRpcChannelBuffer* pRpcChannelBuffer,
226     PRPC_MESSAGE pRpcMessage,
227     DWORD* pdwStubPhase);
228 
229 #endif  /* __IActiveScriptProfilerControl_INTERFACE_DEFINED__ */
230 
231 
232 /*****************************************************************************
233  * IActiveScriptProfilerControl2 interface
234  */
235 #ifndef __IActiveScriptProfilerControl2_INTERFACE_DEFINED__
236 #define __IActiveScriptProfilerControl2_INTERFACE_DEFINED__
237 
238 DEFINE_GUID(IID_IActiveScriptProfilerControl2, 0x47810165, 0x498f, 0x40be, 0x94,0xf1, 0x65,0x35,0x57,0xe9,0xe7,0xda);
239 #if defined(__cplusplus) && !defined(CINTERFACE)
240 MIDL_INTERFACE("47810165-498f-40be-94f1-653557e9e7da")
241 IActiveScriptProfilerControl2 : public IActiveScriptProfilerControl
242 {
243     virtual HRESULT STDMETHODCALLTYPE CompleteProfilerStart(
244         ) = 0;
245 
246     virtual HRESULT STDMETHODCALLTYPE PrepareProfilerStop(
247         ) = 0;
248 
249 };
250 #ifdef __CRT_UUID_DECL
251 __CRT_UUID_DECL(IActiveScriptProfilerControl2, 0x47810165, 0x498f, 0x40be, 0x94,0xf1, 0x65,0x35,0x57,0xe9,0xe7,0xda)
252 #endif
253 #else
254 typedef struct IActiveScriptProfilerControl2Vtbl {
255     BEGIN_INTERFACE
256 
257     /*** IUnknown methods ***/
258     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
259         IActiveScriptProfilerControl2* This,
260         REFIID riid,
261         void **ppvObject);
262 
263     ULONG (STDMETHODCALLTYPE *AddRef)(
264         IActiveScriptProfilerControl2* This);
265 
266     ULONG (STDMETHODCALLTYPE *Release)(
267         IActiveScriptProfilerControl2* This);
268 
269     /*** IActiveScriptProfilerControl methods ***/
270     HRESULT (STDMETHODCALLTYPE *StartProfiling)(
271         IActiveScriptProfilerControl2* This,
272         REFCLSID clsidProfilerObject,
273         DWORD dwEventMask,
274         DWORD dwContext);
275 
276     HRESULT (STDMETHODCALLTYPE *SetProfilerEventMask)(
277         IActiveScriptProfilerControl2* This,
278         DWORD dwEventMask);
279 
280     HRESULT (STDMETHODCALLTYPE *StopProfiling)(
281         IActiveScriptProfilerControl2* This,
282         HRESULT hrShutdownReason);
283 
284     /*** IActiveScriptProfilerControl2 methods ***/
285     HRESULT (STDMETHODCALLTYPE *CompleteProfilerStart)(
286         IActiveScriptProfilerControl2* This);
287 
288     HRESULT (STDMETHODCALLTYPE *PrepareProfilerStop)(
289         IActiveScriptProfilerControl2* This);
290 
291     END_INTERFACE
292 } IActiveScriptProfilerControl2Vtbl;
293 interface IActiveScriptProfilerControl2 {
294     CONST_VTBL IActiveScriptProfilerControl2Vtbl* lpVtbl;
295 };
296 
297 #ifdef COBJMACROS
298 #ifndef WIDL_C_INLINE_WRAPPERS
299 /*** IUnknown methods ***/
300 #define IActiveScriptProfilerControl2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
301 #define IActiveScriptProfilerControl2_AddRef(This) (This)->lpVtbl->AddRef(This)
302 #define IActiveScriptProfilerControl2_Release(This) (This)->lpVtbl->Release(This)
303 /*** IActiveScriptProfilerControl methods ***/
304 #define IActiveScriptProfilerControl2_StartProfiling(This,clsidProfilerObject,dwEventMask,dwContext) (This)->lpVtbl->StartProfiling(This,clsidProfilerObject,dwEventMask,dwContext)
305 #define IActiveScriptProfilerControl2_SetProfilerEventMask(This,dwEventMask) (This)->lpVtbl->SetProfilerEventMask(This,dwEventMask)
306 #define IActiveScriptProfilerControl2_StopProfiling(This,hrShutdownReason) (This)->lpVtbl->StopProfiling(This,hrShutdownReason)
307 /*** IActiveScriptProfilerControl2 methods ***/
308 #define IActiveScriptProfilerControl2_CompleteProfilerStart(This) (This)->lpVtbl->CompleteProfilerStart(This)
309 #define IActiveScriptProfilerControl2_PrepareProfilerStop(This) (This)->lpVtbl->PrepareProfilerStop(This)
310 #else
311 /*** IUnknown methods ***/
312 static FORCEINLINE HRESULT IActiveScriptProfilerControl2_QueryInterface(IActiveScriptProfilerControl2* This,REFIID riid,void **ppvObject) {
313     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
314 }
315 static FORCEINLINE ULONG IActiveScriptProfilerControl2_AddRef(IActiveScriptProfilerControl2* This) {
316     return This->lpVtbl->AddRef(This);
317 }
318 static FORCEINLINE ULONG IActiveScriptProfilerControl2_Release(IActiveScriptProfilerControl2* This) {
319     return This->lpVtbl->Release(This);
320 }
321 /*** IActiveScriptProfilerControl methods ***/
322 static FORCEINLINE HRESULT IActiveScriptProfilerControl2_StartProfiling(IActiveScriptProfilerControl2* This,REFCLSID clsidProfilerObject,DWORD dwEventMask,DWORD dwContext) {
323     return This->lpVtbl->StartProfiling(This,clsidProfilerObject,dwEventMask,dwContext);
324 }
325 static FORCEINLINE HRESULT IActiveScriptProfilerControl2_SetProfilerEventMask(IActiveScriptProfilerControl2* This,DWORD dwEventMask) {
326     return This->lpVtbl->SetProfilerEventMask(This,dwEventMask);
327 }
328 static FORCEINLINE HRESULT IActiveScriptProfilerControl2_StopProfiling(IActiveScriptProfilerControl2* This,HRESULT hrShutdownReason) {
329     return This->lpVtbl->StopProfiling(This,hrShutdownReason);
330 }
331 /*** IActiveScriptProfilerControl2 methods ***/
332 static FORCEINLINE HRESULT IActiveScriptProfilerControl2_CompleteProfilerStart(IActiveScriptProfilerControl2* This) {
333     return This->lpVtbl->CompleteProfilerStart(This);
334 }
335 static FORCEINLINE HRESULT IActiveScriptProfilerControl2_PrepareProfilerStop(IActiveScriptProfilerControl2* This) {
336     return This->lpVtbl->PrepareProfilerStop(This);
337 }
338 #endif
339 #endif
340 
341 #endif
342 
343 HRESULT STDMETHODCALLTYPE IActiveScriptProfilerControl2_CompleteProfilerStart_Proxy(
344     IActiveScriptProfilerControl2* This);
345 void __RPC_STUB IActiveScriptProfilerControl2_CompleteProfilerStart_Stub(
346     IRpcStubBuffer* This,
347     IRpcChannelBuffer* pRpcChannelBuffer,
348     PRPC_MESSAGE pRpcMessage,
349     DWORD* pdwStubPhase);
350 HRESULT STDMETHODCALLTYPE IActiveScriptProfilerControl2_PrepareProfilerStop_Proxy(
351     IActiveScriptProfilerControl2* This);
352 void __RPC_STUB IActiveScriptProfilerControl2_PrepareProfilerStop_Stub(
353     IRpcStubBuffer* This,
354     IRpcChannelBuffer* pRpcChannelBuffer,
355     PRPC_MESSAGE pRpcMessage,
356     DWORD* pdwStubPhase);
357 
358 #endif  /* __IActiveScriptProfilerControl2_INTERFACE_DEFINED__ */
359 
360 
361 typedef DWORD_PTR PROFILER_HEAP_OBJECT_ID;
362 typedef UINT PROFILER_HEAP_OBJECT_NAME_ID;
363 typedef void *PROFILER_EXTERNAL_OBJECT_ADDRESS;
364 
365 typedef enum __WIDL_activprof_generated_name_00000004 {
366     PROFILER_HEAP_OBJECT_FLAGS_NEW_OBJECT = 0x1,
367     PROFILER_HEAP_OBJECT_FLAGS_IS_ROOT = 0x2,
368     PROFILER_HEAP_OBJECT_FLAGS_SITE_CLOSED = 0x4,
369     PROFILER_HEAP_OBJECT_FLAGS_EXTERNAL = 0x8,
370     PROFILER_HEAP_OBJECT_FLAGS_EXTERNAL_UNKNOWN = 0x10,
371     PROFILER_HEAP_OBJECT_FLAGS_EXTERNAL_DISPATCH = 0x20,
372     PROFILER_HEAP_OBJECT_FLAGS_SIZE_APPROXIMATE = 0x40,
373     PROFILER_HEAP_OBJECT_FLAGS_SIZE_UNAVAILABLE = 0x80,
374     PROFILER_HEAP_OBJECT_FLAGS_NEW_STATE_UNAVAILABLE = 0x100,
375     PROFILER_HEAP_OBJECT_FLAGS_WINRT_INSTANCE = 0x200,
376     PROFILER_HEAP_OBJECT_FLAGS_WINRT_RUNTIMECLASS = 0x400,
377     PROFILER_HEAP_OBJECT_FLAGS_WINRT_DELEGATE = 0x800,
378     PROFILER_HEAP_OBJECT_FLAGS_WINRT_NAMESPACE = 0x1000
379 } PROFILER_HEAP_OBJECT_FLAGS;
380 
381 typedef enum __WIDL_activprof_generated_name_00000005 {
382     PROFILER_HEAP_OBJECT_OPTIONAL_INFO_PROTOTYPE = 0x1,
383     PROFILER_HEAP_OBJECT_OPTIONAL_INFO_FUNCTION_NAME = 0x2,
384     PROFILER_HEAP_OBJECT_OPTIONAL_INFO_SCOPE_LIST = 0x3,
385     PROFILER_HEAP_OBJECT_OPTIONAL_INFO_INTERNAL_PROPERTY = 0x4,
386     PROFILER_HEAP_OBJECT_OPTIONAL_INFO_NAME_PROPERTIES = 0x5,
387     PROFILER_HEAP_OBJECT_OPTIONAL_INFO_INDEX_PROPERTIES = 0x6,
388     PROFILER_HEAP_OBJECT_OPTIONAL_INFO_ELEMENT_ATTRIBUTES_SIZE = 0x7,
389     PROFILER_HEAP_OBJECT_OPTIONAL_INFO_ELEMENT_TEXT_CHILDREN_SIZE = 0x8,
390     PROFILER_HEAP_OBJECT_OPTIONAL_INFO_RELATIONSHIPS = 0x9,
391     PROFILER_HEAP_OBJECT_OPTIONAL_INFO_WINRTEVENTS = 0xa,
392     PROFILER_HEAP_OBJECT_OPTIONAL_INFO_MAX_VALUE = PROFILER_HEAP_OBJECT_OPTIONAL_INFO_WINRTEVENTS
393 } PROFILER_HEAP_OBJECT_OPTIONAL_INFO_TYPE;
394 
395 typedef struct _PROFILER_HEAP_OBJECT_SCOPE_LIST {
396     UINT count;
397     PROFILER_HEAP_OBJECT_ID scopes[1];
398 } PROFILER_HEAP_OBJECT_SCOPE_LIST;
399 
400 typedef enum __WIDL_activprof_generated_name_00000006 {
401     PROFILER_PROPERTY_TYPE_NUMBER = 0x1,
402     PROFILER_PROPERTY_TYPE_STRING = 0x2,
403     PROFILER_PROPERTY_TYPE_HEAP_OBJECT = 0x3,
404     PROFILER_PROPERTY_TYPE_EXTERNAL_OBJECT = 0x4,
405     PROFILER_PROPERTY_TYPE_BSTR = 0x5
406 } PROFILER_RELATIONSHIP_INFO;
407 
408 typedef struct _PROFILER_HEAP_OBJECT_RELATIONSHIP {
409     PROFILER_HEAP_OBJECT_NAME_ID relationshipId;
410     PROFILER_RELATIONSHIP_INFO relationshipInfo;
411     __C89_NAMELESS union {
412         double numberValue;
413         LPCWSTR stringValue;
414         BSTR bstrValue;
415         PROFILER_HEAP_OBJECT_ID objectId;
416         PROFILER_EXTERNAL_OBJECT_ADDRESS externalObjectAddress;
417     } __C89_NAMELESSUNIONNAME;
418 } PROFILER_HEAP_OBJECT_RELATIONSHIP;
419 
420 typedef struct _PROFILER_HEAP_OBJECT_RELATIONSHIP_LIST {
421     UINT count;
422     PROFILER_HEAP_OBJECT_RELATIONSHIP elements[1];
423 } PROFILER_HEAP_OBJECT_RELATIONSHIP_LIST;
424 
425 typedef struct _PROFILER_HEAP_OBJECT_OPTIONAL_INFO {
426     PROFILER_HEAP_OBJECT_OPTIONAL_INFO_TYPE infoType;
427     __C89_NAMELESS union {
428         PROFILER_HEAP_OBJECT_ID prototype;
429         LPCWSTR functionName;
430         UINT elementAttributesSize;
431         UINT elementTextChildrenSize;
432         PROFILER_HEAP_OBJECT_SCOPE_LIST *scopeList;
433         PROFILER_HEAP_OBJECT_RELATIONSHIP *internalProperty;
434         PROFILER_HEAP_OBJECT_RELATIONSHIP_LIST *namePropertyList;
435         PROFILER_HEAP_OBJECT_RELATIONSHIP_LIST *indexPropertyList;
436         PROFILER_HEAP_OBJECT_RELATIONSHIP_LIST *relationshipList;
437         PROFILER_HEAP_OBJECT_RELATIONSHIP_LIST *eventList;
438     } __C89_NAMELESSUNIONNAME;
439 } PROFILER_HEAP_OBJECT_OPTIONAL_INFO;
440 
441 typedef struct _PROFILER_HEAP_OBJECT {
442     UINT size;
443     __C89_NAMELESS union {
444         PROFILER_HEAP_OBJECT_ID objectId;
445         PROFILER_EXTERNAL_OBJECT_ADDRESS externalObjectAddress;
446     } __C89_NAMELESSUNIONNAME;
447     PROFILER_HEAP_OBJECT_NAME_ID typeNameId;
448     ULONG flags;
449     USHORT unused;
450     USHORT optionalInfoCount;
451 } PROFILER_HEAP_OBJECT;
452 
453 /*****************************************************************************
454  * IActiveScriptProfilerHeapEnum interface
455  */
456 #ifndef __IActiveScriptProfilerHeapEnum_INTERFACE_DEFINED__
457 #define __IActiveScriptProfilerHeapEnum_INTERFACE_DEFINED__
458 
459 DEFINE_GUID(IID_IActiveScriptProfilerHeapEnum, 0x32e4694e, 0x0d37, 0x419b, 0xb9,0x3d, 0xfa,0x20,0xde,0xd6,0xe8,0xea);
460 #if defined(__cplusplus) && !defined(CINTERFACE)
461 MIDL_INTERFACE("32e4694e-0d37-419b-b93d-fa20ded6e8ea")
462 IActiveScriptProfilerHeapEnum : public IUnknown
463 {
464     virtual HRESULT STDMETHODCALLTYPE Next(
465         ULONG celt,
466         PROFILER_HEAP_OBJECT **heapObjects,
467         ULONG *pceltFetched) = 0;
468 
469     virtual HRESULT STDMETHODCALLTYPE GetOptionalInfo(
470         PROFILER_HEAP_OBJECT *heapObject,
471         ULONG celt,
472         PROFILER_HEAP_OBJECT_OPTIONAL_INFO *optionalInfo) = 0;
473 
474     virtual HRESULT STDMETHODCALLTYPE FreeObjectAndOptionalInfo(
475         ULONG celt,
476         PROFILER_HEAP_OBJECT **heapObjects) = 0;
477 
478     virtual HRESULT STDMETHODCALLTYPE GetNameIdMap(
479         LPCWSTR * pNameList[],
480         UINT *pcelt) = 0;
481 
482 };
483 #ifdef __CRT_UUID_DECL
484 __CRT_UUID_DECL(IActiveScriptProfilerHeapEnum, 0x32e4694e, 0x0d37, 0x419b, 0xb9,0x3d, 0xfa,0x20,0xde,0xd6,0xe8,0xea)
485 #endif
486 #else
487 typedef struct IActiveScriptProfilerHeapEnumVtbl {
488     BEGIN_INTERFACE
489 
490     /*** IUnknown methods ***/
491     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
492         IActiveScriptProfilerHeapEnum* This,
493         REFIID riid,
494         void **ppvObject);
495 
496     ULONG (STDMETHODCALLTYPE *AddRef)(
497         IActiveScriptProfilerHeapEnum* This);
498 
499     ULONG (STDMETHODCALLTYPE *Release)(
500         IActiveScriptProfilerHeapEnum* This);
501 
502     /*** IActiveScriptProfilerHeapEnum methods ***/
503     HRESULT (STDMETHODCALLTYPE *Next)(
504         IActiveScriptProfilerHeapEnum* This,
505         ULONG celt,
506         PROFILER_HEAP_OBJECT **heapObjects,
507         ULONG *pceltFetched);
508 
509     HRESULT (STDMETHODCALLTYPE *GetOptionalInfo)(
510         IActiveScriptProfilerHeapEnum* This,
511         PROFILER_HEAP_OBJECT *heapObject,
512         ULONG celt,
513         PROFILER_HEAP_OBJECT_OPTIONAL_INFO *optionalInfo);
514 
515     HRESULT (STDMETHODCALLTYPE *FreeObjectAndOptionalInfo)(
516         IActiveScriptProfilerHeapEnum* This,
517         ULONG celt,
518         PROFILER_HEAP_OBJECT **heapObjects);
519 
520     HRESULT (STDMETHODCALLTYPE *GetNameIdMap)(
521         IActiveScriptProfilerHeapEnum* This,
522         LPCWSTR * pNameList[],
523         UINT *pcelt);
524 
525     END_INTERFACE
526 } IActiveScriptProfilerHeapEnumVtbl;
527 interface IActiveScriptProfilerHeapEnum {
528     CONST_VTBL IActiveScriptProfilerHeapEnumVtbl* lpVtbl;
529 };
530 
531 #ifdef COBJMACROS
532 #ifndef WIDL_C_INLINE_WRAPPERS
533 /*** IUnknown methods ***/
534 #define IActiveScriptProfilerHeapEnum_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
535 #define IActiveScriptProfilerHeapEnum_AddRef(This) (This)->lpVtbl->AddRef(This)
536 #define IActiveScriptProfilerHeapEnum_Release(This) (This)->lpVtbl->Release(This)
537 /*** IActiveScriptProfilerHeapEnum methods ***/
538 #define IActiveScriptProfilerHeapEnum_Next(This,celt,heapObjects,pceltFetched) (This)->lpVtbl->Next(This,celt,heapObjects,pceltFetched)
539 #define IActiveScriptProfilerHeapEnum_GetOptionalInfo(This,heapObject,celt,optionalInfo) (This)->lpVtbl->GetOptionalInfo(This,heapObject,celt,optionalInfo)
540 #define IActiveScriptProfilerHeapEnum_FreeObjectAndOptionalInfo(This,celt,heapObjects) (This)->lpVtbl->FreeObjectAndOptionalInfo(This,celt,heapObjects)
541 #define IActiveScriptProfilerHeapEnum_GetNameIdMap(This,pNameList,pcelt) (This)->lpVtbl->GetNameIdMap(This,pNameList,pcelt)
542 #else
543 /*** IUnknown methods ***/
544 static FORCEINLINE HRESULT IActiveScriptProfilerHeapEnum_QueryInterface(IActiveScriptProfilerHeapEnum* This,REFIID riid,void **ppvObject) {
545     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
546 }
547 static FORCEINLINE ULONG IActiveScriptProfilerHeapEnum_AddRef(IActiveScriptProfilerHeapEnum* This) {
548     return This->lpVtbl->AddRef(This);
549 }
550 static FORCEINLINE ULONG IActiveScriptProfilerHeapEnum_Release(IActiveScriptProfilerHeapEnum* This) {
551     return This->lpVtbl->Release(This);
552 }
553 /*** IActiveScriptProfilerHeapEnum methods ***/
554 static FORCEINLINE HRESULT IActiveScriptProfilerHeapEnum_Next(IActiveScriptProfilerHeapEnum* This,ULONG celt,PROFILER_HEAP_OBJECT **heapObjects,ULONG *pceltFetched) {
555     return This->lpVtbl->Next(This,celt,heapObjects,pceltFetched);
556 }
557 static FORCEINLINE HRESULT IActiveScriptProfilerHeapEnum_GetOptionalInfo(IActiveScriptProfilerHeapEnum* This,PROFILER_HEAP_OBJECT *heapObject,ULONG celt,PROFILER_HEAP_OBJECT_OPTIONAL_INFO *optionalInfo) {
558     return This->lpVtbl->GetOptionalInfo(This,heapObject,celt,optionalInfo);
559 }
560 static FORCEINLINE HRESULT IActiveScriptProfilerHeapEnum_FreeObjectAndOptionalInfo(IActiveScriptProfilerHeapEnum* This,ULONG celt,PROFILER_HEAP_OBJECT **heapObjects) {
561     return This->lpVtbl->FreeObjectAndOptionalInfo(This,celt,heapObjects);
562 }
563 static FORCEINLINE HRESULT IActiveScriptProfilerHeapEnum_GetNameIdMap(IActiveScriptProfilerHeapEnum* This,LPCWSTR * pNameList[],UINT *pcelt) {
564     return This->lpVtbl->GetNameIdMap(This,pNameList,pcelt);
565 }
566 #endif
567 #endif
568 
569 #endif
570 
571 HRESULT STDMETHODCALLTYPE IActiveScriptProfilerHeapEnum_Next_Proxy(
572     IActiveScriptProfilerHeapEnum* This,
573     ULONG celt,
574     PROFILER_HEAP_OBJECT **heapObjects,
575     ULONG *pceltFetched);
576 void __RPC_STUB IActiveScriptProfilerHeapEnum_Next_Stub(
577     IRpcStubBuffer* This,
578     IRpcChannelBuffer* pRpcChannelBuffer,
579     PRPC_MESSAGE pRpcMessage,
580     DWORD* pdwStubPhase);
581 HRESULT STDMETHODCALLTYPE IActiveScriptProfilerHeapEnum_GetOptionalInfo_Proxy(
582     IActiveScriptProfilerHeapEnum* This,
583     PROFILER_HEAP_OBJECT *heapObject,
584     ULONG celt,
585     PROFILER_HEAP_OBJECT_OPTIONAL_INFO *optionalInfo);
586 void __RPC_STUB IActiveScriptProfilerHeapEnum_GetOptionalInfo_Stub(
587     IRpcStubBuffer* This,
588     IRpcChannelBuffer* pRpcChannelBuffer,
589     PRPC_MESSAGE pRpcMessage,
590     DWORD* pdwStubPhase);
591 HRESULT STDMETHODCALLTYPE IActiveScriptProfilerHeapEnum_FreeObjectAndOptionalInfo_Proxy(
592     IActiveScriptProfilerHeapEnum* This,
593     ULONG celt,
594     PROFILER_HEAP_OBJECT **heapObjects);
595 void __RPC_STUB IActiveScriptProfilerHeapEnum_FreeObjectAndOptionalInfo_Stub(
596     IRpcStubBuffer* This,
597     IRpcChannelBuffer* pRpcChannelBuffer,
598     PRPC_MESSAGE pRpcMessage,
599     DWORD* pdwStubPhase);
600 HRESULT STDMETHODCALLTYPE IActiveScriptProfilerHeapEnum_GetNameIdMap_Proxy(
601     IActiveScriptProfilerHeapEnum* This,
602     LPCWSTR * pNameList[],
603     UINT *pcelt);
604 void __RPC_STUB IActiveScriptProfilerHeapEnum_GetNameIdMap_Stub(
605     IRpcStubBuffer* This,
606     IRpcChannelBuffer* pRpcChannelBuffer,
607     PRPC_MESSAGE pRpcMessage,
608     DWORD* pdwStubPhase);
609 
610 #endif  /* __IActiveScriptProfilerHeapEnum_INTERFACE_DEFINED__ */
611 
612 
613 /*****************************************************************************
614  * IActiveScriptProfilerControl3 interface
615  */
616 #ifndef __IActiveScriptProfilerControl3_INTERFACE_DEFINED__
617 #define __IActiveScriptProfilerControl3_INTERFACE_DEFINED__
618 
619 DEFINE_GUID(IID_IActiveScriptProfilerControl3, 0x0b403015, 0xf381, 0x4023, 0xa5,0xd0, 0x6f,0xed,0x07,0x6d,0xe7,0x16);
620 #if defined(__cplusplus) && !defined(CINTERFACE)
621 MIDL_INTERFACE("0b403015-f381-4023-a5d0-6fed076de716")
622 IActiveScriptProfilerControl3 : public IActiveScriptProfilerControl2
623 {
624     virtual HRESULT STDMETHODCALLTYPE EnumHeap(
625         IActiveScriptProfilerHeapEnum **ppEnum) = 0;
626 
627 };
628 #ifdef __CRT_UUID_DECL
629 __CRT_UUID_DECL(IActiveScriptProfilerControl3, 0x0b403015, 0xf381, 0x4023, 0xa5,0xd0, 0x6f,0xed,0x07,0x6d,0xe7,0x16)
630 #endif
631 #else
632 typedef struct IActiveScriptProfilerControl3Vtbl {
633     BEGIN_INTERFACE
634 
635     /*** IUnknown methods ***/
636     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
637         IActiveScriptProfilerControl3* This,
638         REFIID riid,
639         void **ppvObject);
640 
641     ULONG (STDMETHODCALLTYPE *AddRef)(
642         IActiveScriptProfilerControl3* This);
643 
644     ULONG (STDMETHODCALLTYPE *Release)(
645         IActiveScriptProfilerControl3* This);
646 
647     /*** IActiveScriptProfilerControl methods ***/
648     HRESULT (STDMETHODCALLTYPE *StartProfiling)(
649         IActiveScriptProfilerControl3* This,
650         REFCLSID clsidProfilerObject,
651         DWORD dwEventMask,
652         DWORD dwContext);
653 
654     HRESULT (STDMETHODCALLTYPE *SetProfilerEventMask)(
655         IActiveScriptProfilerControl3* This,
656         DWORD dwEventMask);
657 
658     HRESULT (STDMETHODCALLTYPE *StopProfiling)(
659         IActiveScriptProfilerControl3* This,
660         HRESULT hrShutdownReason);
661 
662     /*** IActiveScriptProfilerControl2 methods ***/
663     HRESULT (STDMETHODCALLTYPE *CompleteProfilerStart)(
664         IActiveScriptProfilerControl3* This);
665 
666     HRESULT (STDMETHODCALLTYPE *PrepareProfilerStop)(
667         IActiveScriptProfilerControl3* This);
668 
669     /*** IActiveScriptProfilerControl3 methods ***/
670     HRESULT (STDMETHODCALLTYPE *EnumHeap)(
671         IActiveScriptProfilerControl3* This,
672         IActiveScriptProfilerHeapEnum **ppEnum);
673 
674     END_INTERFACE
675 } IActiveScriptProfilerControl3Vtbl;
676 interface IActiveScriptProfilerControl3 {
677     CONST_VTBL IActiveScriptProfilerControl3Vtbl* lpVtbl;
678 };
679 
680 #ifdef COBJMACROS
681 #ifndef WIDL_C_INLINE_WRAPPERS
682 /*** IUnknown methods ***/
683 #define IActiveScriptProfilerControl3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
684 #define IActiveScriptProfilerControl3_AddRef(This) (This)->lpVtbl->AddRef(This)
685 #define IActiveScriptProfilerControl3_Release(This) (This)->lpVtbl->Release(This)
686 /*** IActiveScriptProfilerControl methods ***/
687 #define IActiveScriptProfilerControl3_StartProfiling(This,clsidProfilerObject,dwEventMask,dwContext) (This)->lpVtbl->StartProfiling(This,clsidProfilerObject,dwEventMask,dwContext)
688 #define IActiveScriptProfilerControl3_SetProfilerEventMask(This,dwEventMask) (This)->lpVtbl->SetProfilerEventMask(This,dwEventMask)
689 #define IActiveScriptProfilerControl3_StopProfiling(This,hrShutdownReason) (This)->lpVtbl->StopProfiling(This,hrShutdownReason)
690 /*** IActiveScriptProfilerControl2 methods ***/
691 #define IActiveScriptProfilerControl3_CompleteProfilerStart(This) (This)->lpVtbl->CompleteProfilerStart(This)
692 #define IActiveScriptProfilerControl3_PrepareProfilerStop(This) (This)->lpVtbl->PrepareProfilerStop(This)
693 /*** IActiveScriptProfilerControl3 methods ***/
694 #define IActiveScriptProfilerControl3_EnumHeap(This,ppEnum) (This)->lpVtbl->EnumHeap(This,ppEnum)
695 #else
696 /*** IUnknown methods ***/
697 static FORCEINLINE HRESULT IActiveScriptProfilerControl3_QueryInterface(IActiveScriptProfilerControl3* This,REFIID riid,void **ppvObject) {
698     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
699 }
700 static FORCEINLINE ULONG IActiveScriptProfilerControl3_AddRef(IActiveScriptProfilerControl3* This) {
701     return This->lpVtbl->AddRef(This);
702 }
703 static FORCEINLINE ULONG IActiveScriptProfilerControl3_Release(IActiveScriptProfilerControl3* This) {
704     return This->lpVtbl->Release(This);
705 }
706 /*** IActiveScriptProfilerControl methods ***/
707 static FORCEINLINE HRESULT IActiveScriptProfilerControl3_StartProfiling(IActiveScriptProfilerControl3* This,REFCLSID clsidProfilerObject,DWORD dwEventMask,DWORD dwContext) {
708     return This->lpVtbl->StartProfiling(This,clsidProfilerObject,dwEventMask,dwContext);
709 }
710 static FORCEINLINE HRESULT IActiveScriptProfilerControl3_SetProfilerEventMask(IActiveScriptProfilerControl3* This,DWORD dwEventMask) {
711     return This->lpVtbl->SetProfilerEventMask(This,dwEventMask);
712 }
713 static FORCEINLINE HRESULT IActiveScriptProfilerControl3_StopProfiling(IActiveScriptProfilerControl3* This,HRESULT hrShutdownReason) {
714     return This->lpVtbl->StopProfiling(This,hrShutdownReason);
715 }
716 /*** IActiveScriptProfilerControl2 methods ***/
717 static FORCEINLINE HRESULT IActiveScriptProfilerControl3_CompleteProfilerStart(IActiveScriptProfilerControl3* This) {
718     return This->lpVtbl->CompleteProfilerStart(This);
719 }
720 static FORCEINLINE HRESULT IActiveScriptProfilerControl3_PrepareProfilerStop(IActiveScriptProfilerControl3* This) {
721     return This->lpVtbl->PrepareProfilerStop(This);
722 }
723 /*** IActiveScriptProfilerControl3 methods ***/
724 static FORCEINLINE HRESULT IActiveScriptProfilerControl3_EnumHeap(IActiveScriptProfilerControl3* This,IActiveScriptProfilerHeapEnum **ppEnum) {
725     return This->lpVtbl->EnumHeap(This,ppEnum);
726 }
727 #endif
728 #endif
729 
730 #endif
731 
732 HRESULT STDMETHODCALLTYPE IActiveScriptProfilerControl3_EnumHeap_Proxy(
733     IActiveScriptProfilerControl3* This,
734     IActiveScriptProfilerHeapEnum **ppEnum);
735 void __RPC_STUB IActiveScriptProfilerControl3_EnumHeap_Stub(
736     IRpcStubBuffer* This,
737     IRpcChannelBuffer* pRpcChannelBuffer,
738     PRPC_MESSAGE pRpcMessage,
739     DWORD* pdwStubPhase);
740 
741 #endif  /* __IActiveScriptProfilerControl3_INTERFACE_DEFINED__ */
742 
743 
744 /*****************************************************************************
745  * IActiveScriptProfilerCallback interface
746  */
747 #ifndef __IActiveScriptProfilerCallback_INTERFACE_DEFINED__
748 #define __IActiveScriptProfilerCallback_INTERFACE_DEFINED__
749 
750 DEFINE_GUID(IID_IActiveScriptProfilerCallback, 0x740eca23, 0x7d9d, 0x42e5, 0xba,0x9d, 0xf8,0xb2,0x4b,0x1c,0x7a,0x9b);
751 #if defined(__cplusplus) && !defined(CINTERFACE)
752 MIDL_INTERFACE("740eca23-7d9d-42e5-ba9d-f8b24b1c7a9b")
753 IActiveScriptProfilerCallback : public IUnknown
754 {
755     virtual HRESULT STDMETHODCALLTYPE Initialize(
756         DWORD dwContext) = 0;
757 
758     virtual HRESULT STDMETHODCALLTYPE Shutdown(
759         HRESULT hrReason) = 0;
760 
761     virtual HRESULT STDMETHODCALLTYPE ScriptCompiled(
762         PROFILER_TOKEN scriptId,
763         PROFILER_SCRIPT_TYPE type,
764         IUnknown *pIDebugDocumentContext) = 0;
765 
766     virtual HRESULT STDMETHODCALLTYPE FunctionCompiled(
767         PROFILER_TOKEN functionId,
768         PROFILER_TOKEN scriptId,
769         const WCHAR *pwszFunctionName,
770         const WCHAR *pwszFunctionNameHint,
771         IUnknown *pIDebugDocumentContext) = 0;
772 
773     virtual HRESULT STDMETHODCALLTYPE OnFunctionEnter(
774         PROFILER_TOKEN scriptId,
775         PROFILER_TOKEN functionId) = 0;
776 
777     virtual HRESULT STDMETHODCALLTYPE OnFunctionExit(
778         PROFILER_TOKEN scriptId,
779         PROFILER_TOKEN functionId) = 0;
780 
781 };
782 #ifdef __CRT_UUID_DECL
783 __CRT_UUID_DECL(IActiveScriptProfilerCallback, 0x740eca23, 0x7d9d, 0x42e5, 0xba,0x9d, 0xf8,0xb2,0x4b,0x1c,0x7a,0x9b)
784 #endif
785 #else
786 typedef struct IActiveScriptProfilerCallbackVtbl {
787     BEGIN_INTERFACE
788 
789     /*** IUnknown methods ***/
790     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
791         IActiveScriptProfilerCallback* This,
792         REFIID riid,
793         void **ppvObject);
794 
795     ULONG (STDMETHODCALLTYPE *AddRef)(
796         IActiveScriptProfilerCallback* This);
797 
798     ULONG (STDMETHODCALLTYPE *Release)(
799         IActiveScriptProfilerCallback* This);
800 
801     /*** IActiveScriptProfilerCallback methods ***/
802     HRESULT (STDMETHODCALLTYPE *Initialize)(
803         IActiveScriptProfilerCallback* This,
804         DWORD dwContext);
805 
806     HRESULT (STDMETHODCALLTYPE *Shutdown)(
807         IActiveScriptProfilerCallback* This,
808         HRESULT hrReason);
809 
810     HRESULT (STDMETHODCALLTYPE *ScriptCompiled)(
811         IActiveScriptProfilerCallback* This,
812         PROFILER_TOKEN scriptId,
813         PROFILER_SCRIPT_TYPE type,
814         IUnknown *pIDebugDocumentContext);
815 
816     HRESULT (STDMETHODCALLTYPE *FunctionCompiled)(
817         IActiveScriptProfilerCallback* This,
818         PROFILER_TOKEN functionId,
819         PROFILER_TOKEN scriptId,
820         const WCHAR *pwszFunctionName,
821         const WCHAR *pwszFunctionNameHint,
822         IUnknown *pIDebugDocumentContext);
823 
824     HRESULT (STDMETHODCALLTYPE *OnFunctionEnter)(
825         IActiveScriptProfilerCallback* This,
826         PROFILER_TOKEN scriptId,
827         PROFILER_TOKEN functionId);
828 
829     HRESULT (STDMETHODCALLTYPE *OnFunctionExit)(
830         IActiveScriptProfilerCallback* This,
831         PROFILER_TOKEN scriptId,
832         PROFILER_TOKEN functionId);
833 
834     END_INTERFACE
835 } IActiveScriptProfilerCallbackVtbl;
836 interface IActiveScriptProfilerCallback {
837     CONST_VTBL IActiveScriptProfilerCallbackVtbl* lpVtbl;
838 };
839 
840 #ifdef COBJMACROS
841 #ifndef WIDL_C_INLINE_WRAPPERS
842 /*** IUnknown methods ***/
843 #define IActiveScriptProfilerCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
844 #define IActiveScriptProfilerCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
845 #define IActiveScriptProfilerCallback_Release(This) (This)->lpVtbl->Release(This)
846 /*** IActiveScriptProfilerCallback methods ***/
847 #define IActiveScriptProfilerCallback_Initialize(This,dwContext) (This)->lpVtbl->Initialize(This,dwContext)
848 #define IActiveScriptProfilerCallback_Shutdown(This,hrReason) (This)->lpVtbl->Shutdown(This,hrReason)
849 #define IActiveScriptProfilerCallback_ScriptCompiled(This,scriptId,type,pIDebugDocumentContext) (This)->lpVtbl->ScriptCompiled(This,scriptId,type,pIDebugDocumentContext)
850 #define IActiveScriptProfilerCallback_FunctionCompiled(This,functionId,scriptId,pwszFunctionName,pwszFunctionNameHint,pIDebugDocumentContext) (This)->lpVtbl->FunctionCompiled(This,functionId,scriptId,pwszFunctionName,pwszFunctionNameHint,pIDebugDocumentContext)
851 #define IActiveScriptProfilerCallback_OnFunctionEnter(This,scriptId,functionId) (This)->lpVtbl->OnFunctionEnter(This,scriptId,functionId)
852 #define IActiveScriptProfilerCallback_OnFunctionExit(This,scriptId,functionId) (This)->lpVtbl->OnFunctionExit(This,scriptId,functionId)
853 #else
854 /*** IUnknown methods ***/
855 static FORCEINLINE HRESULT IActiveScriptProfilerCallback_QueryInterface(IActiveScriptProfilerCallback* This,REFIID riid,void **ppvObject) {
856     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
857 }
858 static FORCEINLINE ULONG IActiveScriptProfilerCallback_AddRef(IActiveScriptProfilerCallback* This) {
859     return This->lpVtbl->AddRef(This);
860 }
861 static FORCEINLINE ULONG IActiveScriptProfilerCallback_Release(IActiveScriptProfilerCallback* This) {
862     return This->lpVtbl->Release(This);
863 }
864 /*** IActiveScriptProfilerCallback methods ***/
865 static FORCEINLINE HRESULT IActiveScriptProfilerCallback_Initialize(IActiveScriptProfilerCallback* This,DWORD dwContext) {
866     return This->lpVtbl->Initialize(This,dwContext);
867 }
868 static FORCEINLINE HRESULT IActiveScriptProfilerCallback_Shutdown(IActiveScriptProfilerCallback* This,HRESULT hrReason) {
869     return This->lpVtbl->Shutdown(This,hrReason);
870 }
871 static FORCEINLINE HRESULT IActiveScriptProfilerCallback_ScriptCompiled(IActiveScriptProfilerCallback* This,PROFILER_TOKEN scriptId,PROFILER_SCRIPT_TYPE type,IUnknown *pIDebugDocumentContext) {
872     return This->lpVtbl->ScriptCompiled(This,scriptId,type,pIDebugDocumentContext);
873 }
874 static FORCEINLINE HRESULT IActiveScriptProfilerCallback_FunctionCompiled(IActiveScriptProfilerCallback* This,PROFILER_TOKEN functionId,PROFILER_TOKEN scriptId,const WCHAR *pwszFunctionName,const WCHAR *pwszFunctionNameHint,IUnknown *pIDebugDocumentContext) {
875     return This->lpVtbl->FunctionCompiled(This,functionId,scriptId,pwszFunctionName,pwszFunctionNameHint,pIDebugDocumentContext);
876 }
877 static FORCEINLINE HRESULT IActiveScriptProfilerCallback_OnFunctionEnter(IActiveScriptProfilerCallback* This,PROFILER_TOKEN scriptId,PROFILER_TOKEN functionId) {
878     return This->lpVtbl->OnFunctionEnter(This,scriptId,functionId);
879 }
880 static FORCEINLINE HRESULT IActiveScriptProfilerCallback_OnFunctionExit(IActiveScriptProfilerCallback* This,PROFILER_TOKEN scriptId,PROFILER_TOKEN functionId) {
881     return This->lpVtbl->OnFunctionExit(This,scriptId,functionId);
882 }
883 #endif
884 #endif
885 
886 #endif
887 
888 HRESULT STDMETHODCALLTYPE IActiveScriptProfilerCallback_Initialize_Proxy(
889     IActiveScriptProfilerCallback* This,
890     DWORD dwContext);
891 void __RPC_STUB IActiveScriptProfilerCallback_Initialize_Stub(
892     IRpcStubBuffer* This,
893     IRpcChannelBuffer* pRpcChannelBuffer,
894     PRPC_MESSAGE pRpcMessage,
895     DWORD* pdwStubPhase);
896 HRESULT STDMETHODCALLTYPE IActiveScriptProfilerCallback_Shutdown_Proxy(
897     IActiveScriptProfilerCallback* This,
898     HRESULT hrReason);
899 void __RPC_STUB IActiveScriptProfilerCallback_Shutdown_Stub(
900     IRpcStubBuffer* This,
901     IRpcChannelBuffer* pRpcChannelBuffer,
902     PRPC_MESSAGE pRpcMessage,
903     DWORD* pdwStubPhase);
904 HRESULT STDMETHODCALLTYPE IActiveScriptProfilerCallback_ScriptCompiled_Proxy(
905     IActiveScriptProfilerCallback* This,
906     PROFILER_TOKEN scriptId,
907     PROFILER_SCRIPT_TYPE type,
908     IUnknown *pIDebugDocumentContext);
909 void __RPC_STUB IActiveScriptProfilerCallback_ScriptCompiled_Stub(
910     IRpcStubBuffer* This,
911     IRpcChannelBuffer* pRpcChannelBuffer,
912     PRPC_MESSAGE pRpcMessage,
913     DWORD* pdwStubPhase);
914 HRESULT STDMETHODCALLTYPE IActiveScriptProfilerCallback_FunctionCompiled_Proxy(
915     IActiveScriptProfilerCallback* This,
916     PROFILER_TOKEN functionId,
917     PROFILER_TOKEN scriptId,
918     const WCHAR *pwszFunctionName,
919     const WCHAR *pwszFunctionNameHint,
920     IUnknown *pIDebugDocumentContext);
921 void __RPC_STUB IActiveScriptProfilerCallback_FunctionCompiled_Stub(
922     IRpcStubBuffer* This,
923     IRpcChannelBuffer* pRpcChannelBuffer,
924     PRPC_MESSAGE pRpcMessage,
925     DWORD* pdwStubPhase);
926 HRESULT STDMETHODCALLTYPE IActiveScriptProfilerCallback_OnFunctionEnter_Proxy(
927     IActiveScriptProfilerCallback* This,
928     PROFILER_TOKEN scriptId,
929     PROFILER_TOKEN functionId);
930 void __RPC_STUB IActiveScriptProfilerCallback_OnFunctionEnter_Stub(
931     IRpcStubBuffer* This,
932     IRpcChannelBuffer* pRpcChannelBuffer,
933     PRPC_MESSAGE pRpcMessage,
934     DWORD* pdwStubPhase);
935 HRESULT STDMETHODCALLTYPE IActiveScriptProfilerCallback_OnFunctionExit_Proxy(
936     IActiveScriptProfilerCallback* This,
937     PROFILER_TOKEN scriptId,
938     PROFILER_TOKEN functionId);
939 void __RPC_STUB IActiveScriptProfilerCallback_OnFunctionExit_Stub(
940     IRpcStubBuffer* This,
941     IRpcChannelBuffer* pRpcChannelBuffer,
942     PRPC_MESSAGE pRpcMessage,
943     DWORD* pdwStubPhase);
944 
945 #endif  /* __IActiveScriptProfilerCallback_INTERFACE_DEFINED__ */
946 
947 
948 /*****************************************************************************
949  * IActiveScriptProfilerCallback2 interface
950  */
951 #ifndef __IActiveScriptProfilerCallback2_INTERFACE_DEFINED__
952 #define __IActiveScriptProfilerCallback2_INTERFACE_DEFINED__
953 
954 DEFINE_GUID(IID_IActiveScriptProfilerCallback2, 0x31b7f8ad, 0xa637, 0x409c, 0xb2,0x2f, 0x04,0x09,0x95,0xb6,0x10,0x3d);
955 #if defined(__cplusplus) && !defined(CINTERFACE)
956 MIDL_INTERFACE("31b7f8ad-a637-409c-b22f-040995b6103d")
957 IActiveScriptProfilerCallback2 : public IActiveScriptProfilerCallback
958 {
959     virtual HRESULT STDMETHODCALLTYPE OnFunctionEnterByName(
960         const WCHAR *pwszFunctionName,
961         PROFILER_SCRIPT_TYPE type) = 0;
962 
963     virtual HRESULT STDMETHODCALLTYPE OnFunctionExitByName(
964         const WCHAR *pwszFunctionName,
965         PROFILER_SCRIPT_TYPE type) = 0;
966 
967 };
968 #ifdef __CRT_UUID_DECL
969 __CRT_UUID_DECL(IActiveScriptProfilerCallback2, 0x31b7f8ad, 0xa637, 0x409c, 0xb2,0x2f, 0x04,0x09,0x95,0xb6,0x10,0x3d)
970 #endif
971 #else
972 typedef struct IActiveScriptProfilerCallback2Vtbl {
973     BEGIN_INTERFACE
974 
975     /*** IUnknown methods ***/
976     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
977         IActiveScriptProfilerCallback2* This,
978         REFIID riid,
979         void **ppvObject);
980 
981     ULONG (STDMETHODCALLTYPE *AddRef)(
982         IActiveScriptProfilerCallback2* This);
983 
984     ULONG (STDMETHODCALLTYPE *Release)(
985         IActiveScriptProfilerCallback2* This);
986 
987     /*** IActiveScriptProfilerCallback methods ***/
988     HRESULT (STDMETHODCALLTYPE *Initialize)(
989         IActiveScriptProfilerCallback2* This,
990         DWORD dwContext);
991 
992     HRESULT (STDMETHODCALLTYPE *Shutdown)(
993         IActiveScriptProfilerCallback2* This,
994         HRESULT hrReason);
995 
996     HRESULT (STDMETHODCALLTYPE *ScriptCompiled)(
997         IActiveScriptProfilerCallback2* This,
998         PROFILER_TOKEN scriptId,
999         PROFILER_SCRIPT_TYPE type,
1000         IUnknown *pIDebugDocumentContext);
1001 
1002     HRESULT (STDMETHODCALLTYPE *FunctionCompiled)(
1003         IActiveScriptProfilerCallback2* This,
1004         PROFILER_TOKEN functionId,
1005         PROFILER_TOKEN scriptId,
1006         const WCHAR *pwszFunctionName,
1007         const WCHAR *pwszFunctionNameHint,
1008         IUnknown *pIDebugDocumentContext);
1009 
1010     HRESULT (STDMETHODCALLTYPE *OnFunctionEnter)(
1011         IActiveScriptProfilerCallback2* This,
1012         PROFILER_TOKEN scriptId,
1013         PROFILER_TOKEN functionId);
1014 
1015     HRESULT (STDMETHODCALLTYPE *OnFunctionExit)(
1016         IActiveScriptProfilerCallback2* This,
1017         PROFILER_TOKEN scriptId,
1018         PROFILER_TOKEN functionId);
1019 
1020     /*** IActiveScriptProfilerCallback2 methods ***/
1021     HRESULT (STDMETHODCALLTYPE *OnFunctionEnterByName)(
1022         IActiveScriptProfilerCallback2* This,
1023         const WCHAR *pwszFunctionName,
1024         PROFILER_SCRIPT_TYPE type);
1025 
1026     HRESULT (STDMETHODCALLTYPE *OnFunctionExitByName)(
1027         IActiveScriptProfilerCallback2* This,
1028         const WCHAR *pwszFunctionName,
1029         PROFILER_SCRIPT_TYPE type);
1030 
1031     END_INTERFACE
1032 } IActiveScriptProfilerCallback2Vtbl;
1033 interface IActiveScriptProfilerCallback2 {
1034     CONST_VTBL IActiveScriptProfilerCallback2Vtbl* lpVtbl;
1035 };
1036 
1037 #ifdef COBJMACROS
1038 #ifndef WIDL_C_INLINE_WRAPPERS
1039 /*** IUnknown methods ***/
1040 #define IActiveScriptProfilerCallback2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1041 #define IActiveScriptProfilerCallback2_AddRef(This) (This)->lpVtbl->AddRef(This)
1042 #define IActiveScriptProfilerCallback2_Release(This) (This)->lpVtbl->Release(This)
1043 /*** IActiveScriptProfilerCallback methods ***/
1044 #define IActiveScriptProfilerCallback2_Initialize(This,dwContext) (This)->lpVtbl->Initialize(This,dwContext)
1045 #define IActiveScriptProfilerCallback2_Shutdown(This,hrReason) (This)->lpVtbl->Shutdown(This,hrReason)
1046 #define IActiveScriptProfilerCallback2_ScriptCompiled(This,scriptId,type,pIDebugDocumentContext) (This)->lpVtbl->ScriptCompiled(This,scriptId,type,pIDebugDocumentContext)
1047 #define IActiveScriptProfilerCallback2_FunctionCompiled(This,functionId,scriptId,pwszFunctionName,pwszFunctionNameHint,pIDebugDocumentContext) (This)->lpVtbl->FunctionCompiled(This,functionId,scriptId,pwszFunctionName,pwszFunctionNameHint,pIDebugDocumentContext)
1048 #define IActiveScriptProfilerCallback2_OnFunctionEnter(This,scriptId,functionId) (This)->lpVtbl->OnFunctionEnter(This,scriptId,functionId)
1049 #define IActiveScriptProfilerCallback2_OnFunctionExit(This,scriptId,functionId) (This)->lpVtbl->OnFunctionExit(This,scriptId,functionId)
1050 /*** IActiveScriptProfilerCallback2 methods ***/
1051 #define IActiveScriptProfilerCallback2_OnFunctionEnterByName(This,pwszFunctionName,type) (This)->lpVtbl->OnFunctionEnterByName(This,pwszFunctionName,type)
1052 #define IActiveScriptProfilerCallback2_OnFunctionExitByName(This,pwszFunctionName,type) (This)->lpVtbl->OnFunctionExitByName(This,pwszFunctionName,type)
1053 #else
1054 /*** IUnknown methods ***/
1055 static FORCEINLINE HRESULT IActiveScriptProfilerCallback2_QueryInterface(IActiveScriptProfilerCallback2* This,REFIID riid,void **ppvObject) {
1056     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1057 }
1058 static FORCEINLINE ULONG IActiveScriptProfilerCallback2_AddRef(IActiveScriptProfilerCallback2* This) {
1059     return This->lpVtbl->AddRef(This);
1060 }
1061 static FORCEINLINE ULONG IActiveScriptProfilerCallback2_Release(IActiveScriptProfilerCallback2* This) {
1062     return This->lpVtbl->Release(This);
1063 }
1064 /*** IActiveScriptProfilerCallback methods ***/
1065 static FORCEINLINE HRESULT IActiveScriptProfilerCallback2_Initialize(IActiveScriptProfilerCallback2* This,DWORD dwContext) {
1066     return This->lpVtbl->Initialize(This,dwContext);
1067 }
1068 static FORCEINLINE HRESULT IActiveScriptProfilerCallback2_Shutdown(IActiveScriptProfilerCallback2* This,HRESULT hrReason) {
1069     return This->lpVtbl->Shutdown(This,hrReason);
1070 }
1071 static FORCEINLINE HRESULT IActiveScriptProfilerCallback2_ScriptCompiled(IActiveScriptProfilerCallback2* This,PROFILER_TOKEN scriptId,PROFILER_SCRIPT_TYPE type,IUnknown *pIDebugDocumentContext) {
1072     return This->lpVtbl->ScriptCompiled(This,scriptId,type,pIDebugDocumentContext);
1073 }
1074 static FORCEINLINE HRESULT IActiveScriptProfilerCallback2_FunctionCompiled(IActiveScriptProfilerCallback2* This,PROFILER_TOKEN functionId,PROFILER_TOKEN scriptId,const WCHAR *pwszFunctionName,const WCHAR *pwszFunctionNameHint,IUnknown *pIDebugDocumentContext) {
1075     return This->lpVtbl->FunctionCompiled(This,functionId,scriptId,pwszFunctionName,pwszFunctionNameHint,pIDebugDocumentContext);
1076 }
1077 static FORCEINLINE HRESULT IActiveScriptProfilerCallback2_OnFunctionEnter(IActiveScriptProfilerCallback2* This,PROFILER_TOKEN scriptId,PROFILER_TOKEN functionId) {
1078     return This->lpVtbl->OnFunctionEnter(This,scriptId,functionId);
1079 }
1080 static FORCEINLINE HRESULT IActiveScriptProfilerCallback2_OnFunctionExit(IActiveScriptProfilerCallback2* This,PROFILER_TOKEN scriptId,PROFILER_TOKEN functionId) {
1081     return This->lpVtbl->OnFunctionExit(This,scriptId,functionId);
1082 }
1083 /*** IActiveScriptProfilerCallback2 methods ***/
1084 static FORCEINLINE HRESULT IActiveScriptProfilerCallback2_OnFunctionEnterByName(IActiveScriptProfilerCallback2* This,const WCHAR *pwszFunctionName,PROFILER_SCRIPT_TYPE type) {
1085     return This->lpVtbl->OnFunctionEnterByName(This,pwszFunctionName,type);
1086 }
1087 static FORCEINLINE HRESULT IActiveScriptProfilerCallback2_OnFunctionExitByName(IActiveScriptProfilerCallback2* This,const WCHAR *pwszFunctionName,PROFILER_SCRIPT_TYPE type) {
1088     return This->lpVtbl->OnFunctionExitByName(This,pwszFunctionName,type);
1089 }
1090 #endif
1091 #endif
1092 
1093 #endif
1094 
1095 HRESULT STDMETHODCALLTYPE IActiveScriptProfilerCallback2_OnFunctionEnterByName_Proxy(
1096     IActiveScriptProfilerCallback2* This,
1097     const WCHAR *pwszFunctionName,
1098     PROFILER_SCRIPT_TYPE type);
1099 void __RPC_STUB IActiveScriptProfilerCallback2_OnFunctionEnterByName_Stub(
1100     IRpcStubBuffer* This,
1101     IRpcChannelBuffer* pRpcChannelBuffer,
1102     PRPC_MESSAGE pRpcMessage,
1103     DWORD* pdwStubPhase);
1104 HRESULT STDMETHODCALLTYPE IActiveScriptProfilerCallback2_OnFunctionExitByName_Proxy(
1105     IActiveScriptProfilerCallback2* This,
1106     const WCHAR *pwszFunctionName,
1107     PROFILER_SCRIPT_TYPE type);
1108 void __RPC_STUB IActiveScriptProfilerCallback2_OnFunctionExitByName_Stub(
1109     IRpcStubBuffer* This,
1110     IRpcChannelBuffer* pRpcChannelBuffer,
1111     PRPC_MESSAGE pRpcMessage,
1112     DWORD* pdwStubPhase);
1113 
1114 #endif  /* __IActiveScriptProfilerCallback2_INTERFACE_DEFINED__ */
1115 
1116 
1117 /*****************************************************************************
1118  * IActiveScriptProfilerCallback3 interface
1119  */
1120 #ifndef __IActiveScriptProfilerCallback3_INTERFACE_DEFINED__
1121 #define __IActiveScriptProfilerCallback3_INTERFACE_DEFINED__
1122 
1123 DEFINE_GUID(IID_IActiveScriptProfilerCallback3, 0x6ac5ad25, 0x2037, 0x4687, 0x91,0xdf, 0xb5,0x99,0x79,0xd9,0x3d,0x73);
1124 #if defined(__cplusplus) && !defined(CINTERFACE)
1125 MIDL_INTERFACE("6ac5ad25-2037-4687-91df-b59979d93d73")
1126 IActiveScriptProfilerCallback3 : public IActiveScriptProfilerCallback2
1127 {
1128     virtual HRESULT STDMETHODCALLTYPE SetWebWorkerId(
1129         DWORD webWorkerId) = 0;
1130 
1131 };
1132 #ifdef __CRT_UUID_DECL
1133 __CRT_UUID_DECL(IActiveScriptProfilerCallback3, 0x6ac5ad25, 0x2037, 0x4687, 0x91,0xdf, 0xb5,0x99,0x79,0xd9,0x3d,0x73)
1134 #endif
1135 #else
1136 typedef struct IActiveScriptProfilerCallback3Vtbl {
1137     BEGIN_INTERFACE
1138 
1139     /*** IUnknown methods ***/
1140     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1141         IActiveScriptProfilerCallback3* This,
1142         REFIID riid,
1143         void **ppvObject);
1144 
1145     ULONG (STDMETHODCALLTYPE *AddRef)(
1146         IActiveScriptProfilerCallback3* This);
1147 
1148     ULONG (STDMETHODCALLTYPE *Release)(
1149         IActiveScriptProfilerCallback3* This);
1150 
1151     /*** IActiveScriptProfilerCallback methods ***/
1152     HRESULT (STDMETHODCALLTYPE *Initialize)(
1153         IActiveScriptProfilerCallback3* This,
1154         DWORD dwContext);
1155 
1156     HRESULT (STDMETHODCALLTYPE *Shutdown)(
1157         IActiveScriptProfilerCallback3* This,
1158         HRESULT hrReason);
1159 
1160     HRESULT (STDMETHODCALLTYPE *ScriptCompiled)(
1161         IActiveScriptProfilerCallback3* This,
1162         PROFILER_TOKEN scriptId,
1163         PROFILER_SCRIPT_TYPE type,
1164         IUnknown *pIDebugDocumentContext);
1165 
1166     HRESULT (STDMETHODCALLTYPE *FunctionCompiled)(
1167         IActiveScriptProfilerCallback3* This,
1168         PROFILER_TOKEN functionId,
1169         PROFILER_TOKEN scriptId,
1170         const WCHAR *pwszFunctionName,
1171         const WCHAR *pwszFunctionNameHint,
1172         IUnknown *pIDebugDocumentContext);
1173 
1174     HRESULT (STDMETHODCALLTYPE *OnFunctionEnter)(
1175         IActiveScriptProfilerCallback3* This,
1176         PROFILER_TOKEN scriptId,
1177         PROFILER_TOKEN functionId);
1178 
1179     HRESULT (STDMETHODCALLTYPE *OnFunctionExit)(
1180         IActiveScriptProfilerCallback3* This,
1181         PROFILER_TOKEN scriptId,
1182         PROFILER_TOKEN functionId);
1183 
1184     /*** IActiveScriptProfilerCallback2 methods ***/
1185     HRESULT (STDMETHODCALLTYPE *OnFunctionEnterByName)(
1186         IActiveScriptProfilerCallback3* This,
1187         const WCHAR *pwszFunctionName,
1188         PROFILER_SCRIPT_TYPE type);
1189 
1190     HRESULT (STDMETHODCALLTYPE *OnFunctionExitByName)(
1191         IActiveScriptProfilerCallback3* This,
1192         const WCHAR *pwszFunctionName,
1193         PROFILER_SCRIPT_TYPE type);
1194 
1195     /*** IActiveScriptProfilerCallback3 methods ***/
1196     HRESULT (STDMETHODCALLTYPE *SetWebWorkerId)(
1197         IActiveScriptProfilerCallback3* This,
1198         DWORD webWorkerId);
1199 
1200     END_INTERFACE
1201 } IActiveScriptProfilerCallback3Vtbl;
1202 interface IActiveScriptProfilerCallback3 {
1203     CONST_VTBL IActiveScriptProfilerCallback3Vtbl* lpVtbl;
1204 };
1205 
1206 #ifdef COBJMACROS
1207 #ifndef WIDL_C_INLINE_WRAPPERS
1208 /*** IUnknown methods ***/
1209 #define IActiveScriptProfilerCallback3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1210 #define IActiveScriptProfilerCallback3_AddRef(This) (This)->lpVtbl->AddRef(This)
1211 #define IActiveScriptProfilerCallback3_Release(This) (This)->lpVtbl->Release(This)
1212 /*** IActiveScriptProfilerCallback methods ***/
1213 #define IActiveScriptProfilerCallback3_Initialize(This,dwContext) (This)->lpVtbl->Initialize(This,dwContext)
1214 #define IActiveScriptProfilerCallback3_Shutdown(This,hrReason) (This)->lpVtbl->Shutdown(This,hrReason)
1215 #define IActiveScriptProfilerCallback3_ScriptCompiled(This,scriptId,type,pIDebugDocumentContext) (This)->lpVtbl->ScriptCompiled(This,scriptId,type,pIDebugDocumentContext)
1216 #define IActiveScriptProfilerCallback3_FunctionCompiled(This,functionId,scriptId,pwszFunctionName,pwszFunctionNameHint,pIDebugDocumentContext) (This)->lpVtbl->FunctionCompiled(This,functionId,scriptId,pwszFunctionName,pwszFunctionNameHint,pIDebugDocumentContext)
1217 #define IActiveScriptProfilerCallback3_OnFunctionEnter(This,scriptId,functionId) (This)->lpVtbl->OnFunctionEnter(This,scriptId,functionId)
1218 #define IActiveScriptProfilerCallback3_OnFunctionExit(This,scriptId,functionId) (This)->lpVtbl->OnFunctionExit(This,scriptId,functionId)
1219 /*** IActiveScriptProfilerCallback2 methods ***/
1220 #define IActiveScriptProfilerCallback3_OnFunctionEnterByName(This,pwszFunctionName,type) (This)->lpVtbl->OnFunctionEnterByName(This,pwszFunctionName,type)
1221 #define IActiveScriptProfilerCallback3_OnFunctionExitByName(This,pwszFunctionName,type) (This)->lpVtbl->OnFunctionExitByName(This,pwszFunctionName,type)
1222 /*** IActiveScriptProfilerCallback3 methods ***/
1223 #define IActiveScriptProfilerCallback3_SetWebWorkerId(This,webWorkerId) (This)->lpVtbl->SetWebWorkerId(This,webWorkerId)
1224 #else
1225 /*** IUnknown methods ***/
1226 static FORCEINLINE HRESULT IActiveScriptProfilerCallback3_QueryInterface(IActiveScriptProfilerCallback3* This,REFIID riid,void **ppvObject) {
1227     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1228 }
1229 static FORCEINLINE ULONG IActiveScriptProfilerCallback3_AddRef(IActiveScriptProfilerCallback3* This) {
1230     return This->lpVtbl->AddRef(This);
1231 }
1232 static FORCEINLINE ULONG IActiveScriptProfilerCallback3_Release(IActiveScriptProfilerCallback3* This) {
1233     return This->lpVtbl->Release(This);
1234 }
1235 /*** IActiveScriptProfilerCallback methods ***/
1236 static FORCEINLINE HRESULT IActiveScriptProfilerCallback3_Initialize(IActiveScriptProfilerCallback3* This,DWORD dwContext) {
1237     return This->lpVtbl->Initialize(This,dwContext);
1238 }
1239 static FORCEINLINE HRESULT IActiveScriptProfilerCallback3_Shutdown(IActiveScriptProfilerCallback3* This,HRESULT hrReason) {
1240     return This->lpVtbl->Shutdown(This,hrReason);
1241 }
1242 static FORCEINLINE HRESULT IActiveScriptProfilerCallback3_ScriptCompiled(IActiveScriptProfilerCallback3* This,PROFILER_TOKEN scriptId,PROFILER_SCRIPT_TYPE type,IUnknown *pIDebugDocumentContext) {
1243     return This->lpVtbl->ScriptCompiled(This,scriptId,type,pIDebugDocumentContext);
1244 }
1245 static FORCEINLINE HRESULT IActiveScriptProfilerCallback3_FunctionCompiled(IActiveScriptProfilerCallback3* This,PROFILER_TOKEN functionId,PROFILER_TOKEN scriptId,const WCHAR *pwszFunctionName,const WCHAR *pwszFunctionNameHint,IUnknown *pIDebugDocumentContext) {
1246     return This->lpVtbl->FunctionCompiled(This,functionId,scriptId,pwszFunctionName,pwszFunctionNameHint,pIDebugDocumentContext);
1247 }
1248 static FORCEINLINE HRESULT IActiveScriptProfilerCallback3_OnFunctionEnter(IActiveScriptProfilerCallback3* This,PROFILER_TOKEN scriptId,PROFILER_TOKEN functionId) {
1249     return This->lpVtbl->OnFunctionEnter(This,scriptId,functionId);
1250 }
1251 static FORCEINLINE HRESULT IActiveScriptProfilerCallback3_OnFunctionExit(IActiveScriptProfilerCallback3* This,PROFILER_TOKEN scriptId,PROFILER_TOKEN functionId) {
1252     return This->lpVtbl->OnFunctionExit(This,scriptId,functionId);
1253 }
1254 /*** IActiveScriptProfilerCallback2 methods ***/
1255 static FORCEINLINE HRESULT IActiveScriptProfilerCallback3_OnFunctionEnterByName(IActiveScriptProfilerCallback3* This,const WCHAR *pwszFunctionName,PROFILER_SCRIPT_TYPE type) {
1256     return This->lpVtbl->OnFunctionEnterByName(This,pwszFunctionName,type);
1257 }
1258 static FORCEINLINE HRESULT IActiveScriptProfilerCallback3_OnFunctionExitByName(IActiveScriptProfilerCallback3* This,const WCHAR *pwszFunctionName,PROFILER_SCRIPT_TYPE type) {
1259     return This->lpVtbl->OnFunctionExitByName(This,pwszFunctionName,type);
1260 }
1261 /*** IActiveScriptProfilerCallback3 methods ***/
1262 static FORCEINLINE HRESULT IActiveScriptProfilerCallback3_SetWebWorkerId(IActiveScriptProfilerCallback3* This,DWORD webWorkerId) {
1263     return This->lpVtbl->SetWebWorkerId(This,webWorkerId);
1264 }
1265 #endif
1266 #endif
1267 
1268 #endif
1269 
1270 HRESULT STDMETHODCALLTYPE IActiveScriptProfilerCallback3_SetWebWorkerId_Proxy(
1271     IActiveScriptProfilerCallback3* This,
1272     DWORD webWorkerId);
1273 void __RPC_STUB IActiveScriptProfilerCallback3_SetWebWorkerId_Stub(
1274     IRpcStubBuffer* This,
1275     IRpcChannelBuffer* pRpcChannelBuffer,
1276     PRPC_MESSAGE pRpcMessage,
1277     DWORD* pdwStubPhase);
1278 
1279 #endif  /* __IActiveScriptProfilerCallback3_INTERFACE_DEFINED__ */
1280 
1281 #endif
1282 
1283 #endif
1284 /* Begin additional prototypes for all interfaces */
1285 
1286 
1287 /* End additional prototypes */
1288 
1289 #ifdef __cplusplus
1290 }
1291 #endif
1292 
1293 #endif /* __activprof_h__ */
1294