zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

activprof.h (49901B) - Raw


      1 /*** Autogenerated by WIDL 10.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 inline HRESULT IActiveScriptProfilerControl_QueryInterface(IActiveScriptProfilerControl* This,REFIID riid,void **ppvObject) {
    202     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    203 }
    204 static inline ULONG IActiveScriptProfilerControl_AddRef(IActiveScriptProfilerControl* This) {
    205     return This->lpVtbl->AddRef(This);
    206 }
    207 static inline ULONG IActiveScriptProfilerControl_Release(IActiveScriptProfilerControl* This) {
    208     return This->lpVtbl->Release(This);
    209 }
    210 /*** IActiveScriptProfilerControl methods ***/
    211 static inline HRESULT IActiveScriptProfilerControl_StartProfiling(IActiveScriptProfilerControl* This,REFCLSID clsidProfilerObject,DWORD dwEventMask,DWORD dwContext) {
    212     return This->lpVtbl->StartProfiling(This,clsidProfilerObject,dwEventMask,dwContext);
    213 }
    214 static inline HRESULT IActiveScriptProfilerControl_SetProfilerEventMask(IActiveScriptProfilerControl* This,DWORD dwEventMask) {
    215     return This->lpVtbl->SetProfilerEventMask(This,dwEventMask);
    216 }
    217 static inline 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 inline HRESULT IActiveScriptProfilerControl2_QueryInterface(IActiveScriptProfilerControl2* This,REFIID riid,void **ppvObject) {
    311     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    312 }
    313 static inline ULONG IActiveScriptProfilerControl2_AddRef(IActiveScriptProfilerControl2* This) {
    314     return This->lpVtbl->AddRef(This);
    315 }
    316 static inline ULONG IActiveScriptProfilerControl2_Release(IActiveScriptProfilerControl2* This) {
    317     return This->lpVtbl->Release(This);
    318 }
    319 /*** IActiveScriptProfilerControl methods ***/
    320 static inline HRESULT IActiveScriptProfilerControl2_StartProfiling(IActiveScriptProfilerControl2* This,REFCLSID clsidProfilerObject,DWORD dwEventMask,DWORD dwContext) {
    321     return This->lpVtbl->StartProfiling(This,clsidProfilerObject,dwEventMask,dwContext);
    322 }
    323 static inline HRESULT IActiveScriptProfilerControl2_SetProfilerEventMask(IActiveScriptProfilerControl2* This,DWORD dwEventMask) {
    324     return This->lpVtbl->SetProfilerEventMask(This,dwEventMask);
    325 }
    326 static inline HRESULT IActiveScriptProfilerControl2_StopProfiling(IActiveScriptProfilerControl2* This,HRESULT hrShutdownReason) {
    327     return This->lpVtbl->StopProfiling(This,hrShutdownReason);
    328 }
    329 /*** IActiveScriptProfilerControl2 methods ***/
    330 static inline HRESULT IActiveScriptProfilerControl2_CompleteProfilerStart(IActiveScriptProfilerControl2* This) {
    331     return This->lpVtbl->CompleteProfilerStart(This);
    332 }
    333 static inline 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 inline HRESULT IActiveScriptProfilerHeapEnum_QueryInterface(IActiveScriptProfilerHeapEnum* This,REFIID riid,void **ppvObject) {
    530     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    531 }
    532 static inline ULONG IActiveScriptProfilerHeapEnum_AddRef(IActiveScriptProfilerHeapEnum* This) {
    533     return This->lpVtbl->AddRef(This);
    534 }
    535 static inline ULONG IActiveScriptProfilerHeapEnum_Release(IActiveScriptProfilerHeapEnum* This) {
    536     return This->lpVtbl->Release(This);
    537 }
    538 /*** IActiveScriptProfilerHeapEnum methods ***/
    539 static inline 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 inline 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 inline HRESULT IActiveScriptProfilerHeapEnum_FreeObjectAndOptionalInfo(IActiveScriptProfilerHeapEnum* This,ULONG celt,PROFILER_HEAP_OBJECT **heapObjects) {
    546     return This->lpVtbl->FreeObjectAndOptionalInfo(This,celt,heapObjects);
    547 }
    548 static inline 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 inline HRESULT IActiveScriptProfilerControl3_QueryInterface(IActiveScriptProfilerControl3* This,REFIID riid,void **ppvObject) {
    646     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    647 }
    648 static inline ULONG IActiveScriptProfilerControl3_AddRef(IActiveScriptProfilerControl3* This) {
    649     return This->lpVtbl->AddRef(This);
    650 }
    651 static inline ULONG IActiveScriptProfilerControl3_Release(IActiveScriptProfilerControl3* This) {
    652     return This->lpVtbl->Release(This);
    653 }
    654 /*** IActiveScriptProfilerControl methods ***/
    655 static inline HRESULT IActiveScriptProfilerControl3_StartProfiling(IActiveScriptProfilerControl3* This,REFCLSID clsidProfilerObject,DWORD dwEventMask,DWORD dwContext) {
    656     return This->lpVtbl->StartProfiling(This,clsidProfilerObject,dwEventMask,dwContext);
    657 }
    658 static inline HRESULT IActiveScriptProfilerControl3_SetProfilerEventMask(IActiveScriptProfilerControl3* This,DWORD dwEventMask) {
    659     return This->lpVtbl->SetProfilerEventMask(This,dwEventMask);
    660 }
    661 static inline HRESULT IActiveScriptProfilerControl3_StopProfiling(IActiveScriptProfilerControl3* This,HRESULT hrShutdownReason) {
    662     return This->lpVtbl->StopProfiling(This,hrShutdownReason);
    663 }
    664 /*** IActiveScriptProfilerControl2 methods ***/
    665 static inline HRESULT IActiveScriptProfilerControl3_CompleteProfilerStart(IActiveScriptProfilerControl3* This) {
    666     return This->lpVtbl->CompleteProfilerStart(This);
    667 }
    668 static inline HRESULT IActiveScriptProfilerControl3_PrepareProfilerStop(IActiveScriptProfilerControl3* This) {
    669     return This->lpVtbl->PrepareProfilerStop(This);
    670 }
    671 /*** IActiveScriptProfilerControl3 methods ***/
    672 static inline 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 inline HRESULT IActiveScriptProfilerCallback_QueryInterface(IActiveScriptProfilerCallback* This,REFIID riid,void **ppvObject) {
    797     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    798 }
    799 static inline ULONG IActiveScriptProfilerCallback_AddRef(IActiveScriptProfilerCallback* This) {
    800     return This->lpVtbl->AddRef(This);
    801 }
    802 static inline ULONG IActiveScriptProfilerCallback_Release(IActiveScriptProfilerCallback* This) {
    803     return This->lpVtbl->Release(This);
    804 }
    805 /*** IActiveScriptProfilerCallback methods ***/
    806 static inline HRESULT IActiveScriptProfilerCallback_Initialize(IActiveScriptProfilerCallback* This,DWORD dwContext) {
    807     return This->lpVtbl->Initialize(This,dwContext);
    808 }
    809 static inline HRESULT IActiveScriptProfilerCallback_Shutdown(IActiveScriptProfilerCallback* This,HRESULT hrReason) {
    810     return This->lpVtbl->Shutdown(This,hrReason);
    811 }
    812 static inline 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 inline 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 inline HRESULT IActiveScriptProfilerCallback_OnFunctionEnter(IActiveScriptProfilerCallback* This,PROFILER_TOKEN scriptId,PROFILER_TOKEN functionId) {
    819     return This->lpVtbl->OnFunctionEnter(This,scriptId,functionId);
    820 }
    821 static inline 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 inline HRESULT IActiveScriptProfilerCallback2_QueryInterface(IActiveScriptProfilerCallback2* This,REFIID riid,void **ppvObject) {
    942     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    943 }
    944 static inline ULONG IActiveScriptProfilerCallback2_AddRef(IActiveScriptProfilerCallback2* This) {
    945     return This->lpVtbl->AddRef(This);
    946 }
    947 static inline ULONG IActiveScriptProfilerCallback2_Release(IActiveScriptProfilerCallback2* This) {
    948     return This->lpVtbl->Release(This);
    949 }
    950 /*** IActiveScriptProfilerCallback methods ***/
    951 static inline HRESULT IActiveScriptProfilerCallback2_Initialize(IActiveScriptProfilerCallback2* This,DWORD dwContext) {
    952     return This->lpVtbl->Initialize(This,dwContext);
    953 }
    954 static inline HRESULT IActiveScriptProfilerCallback2_Shutdown(IActiveScriptProfilerCallback2* This,HRESULT hrReason) {
    955     return This->lpVtbl->Shutdown(This,hrReason);
    956 }
    957 static inline 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 inline 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 inline HRESULT IActiveScriptProfilerCallback2_OnFunctionEnter(IActiveScriptProfilerCallback2* This,PROFILER_TOKEN scriptId,PROFILER_TOKEN functionId) {
    964     return This->lpVtbl->OnFunctionEnter(This,scriptId,functionId);
    965 }
    966 static inline 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 inline HRESULT IActiveScriptProfilerCallback2_OnFunctionEnterByName(IActiveScriptProfilerCallback2* This,const WCHAR *pwszFunctionName,PROFILER_SCRIPT_TYPE type) {
    971     return This->lpVtbl->OnFunctionEnterByName(This,pwszFunctionName,type);
    972 }
    973 static inline 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 inline HRESULT IActiveScriptProfilerCallback3_QueryInterface(IActiveScriptProfilerCallback3* This,REFIID riid,void **ppvObject) {
   1096     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1097 }
   1098 static inline ULONG IActiveScriptProfilerCallback3_AddRef(IActiveScriptProfilerCallback3* This) {
   1099     return This->lpVtbl->AddRef(This);
   1100 }
   1101 static inline ULONG IActiveScriptProfilerCallback3_Release(IActiveScriptProfilerCallback3* This) {
   1102     return This->lpVtbl->Release(This);
   1103 }
   1104 /*** IActiveScriptProfilerCallback methods ***/
   1105 static inline HRESULT IActiveScriptProfilerCallback3_Initialize(IActiveScriptProfilerCallback3* This,DWORD dwContext) {
   1106     return This->lpVtbl->Initialize(This,dwContext);
   1107 }
   1108 static inline HRESULT IActiveScriptProfilerCallback3_Shutdown(IActiveScriptProfilerCallback3* This,HRESULT hrReason) {
   1109     return This->lpVtbl->Shutdown(This,hrReason);
   1110 }
   1111 static inline 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 inline 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 inline HRESULT IActiveScriptProfilerCallback3_OnFunctionEnter(IActiveScriptProfilerCallback3* This,PROFILER_TOKEN scriptId,PROFILER_TOKEN functionId) {
   1118     return This->lpVtbl->OnFunctionEnter(This,scriptId,functionId);
   1119 }
   1120 static inline 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 inline HRESULT IActiveScriptProfilerCallback3_OnFunctionEnterByName(IActiveScriptProfilerCallback3* This,const WCHAR *pwszFunctionName,PROFILER_SCRIPT_TYPE type) {
   1125     return This->lpVtbl->OnFunctionEnterByName(This,pwszFunctionName,type);
   1126 }
   1127 static inline 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 inline 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__ */