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