master
   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__
  23typedef interface IActiveScriptProfilerControl IActiveScriptProfilerControl;
  24#ifdef __cplusplus
  25interface IActiveScriptProfilerControl;
  26#endif /* __cplusplus */
  27#endif
  28
  29#ifndef __IActiveScriptProfilerControl2_FWD_DEFINED__
  30#define __IActiveScriptProfilerControl2_FWD_DEFINED__
  31typedef interface IActiveScriptProfilerControl2 IActiveScriptProfilerControl2;
  32#ifdef __cplusplus
  33interface IActiveScriptProfilerControl2;
  34#endif /* __cplusplus */
  35#endif
  36
  37#ifndef __IActiveScriptProfilerHeapEnum_FWD_DEFINED__
  38#define __IActiveScriptProfilerHeapEnum_FWD_DEFINED__
  39typedef interface IActiveScriptProfilerHeapEnum IActiveScriptProfilerHeapEnum;
  40#ifdef __cplusplus
  41interface IActiveScriptProfilerHeapEnum;
  42#endif /* __cplusplus */
  43#endif
  44
  45#ifndef __IActiveScriptProfilerControl3_FWD_DEFINED__
  46#define __IActiveScriptProfilerControl3_FWD_DEFINED__
  47typedef interface IActiveScriptProfilerControl3 IActiveScriptProfilerControl3;
  48#ifdef __cplusplus
  49interface IActiveScriptProfilerControl3;
  50#endif /* __cplusplus */
  51#endif
  52
  53#ifndef __IActiveScriptProfilerCallback_FWD_DEFINED__
  54#define __IActiveScriptProfilerCallback_FWD_DEFINED__
  55typedef interface IActiveScriptProfilerCallback IActiveScriptProfilerCallback;
  56#ifdef __cplusplus
  57interface IActiveScriptProfilerCallback;
  58#endif /* __cplusplus */
  59#endif
  60
  61#ifndef __IActiveScriptProfilerCallback2_FWD_DEFINED__
  62#define __IActiveScriptProfilerCallback2_FWD_DEFINED__
  63typedef interface IActiveScriptProfilerCallback2 IActiveScriptProfilerCallback2;
  64#ifdef __cplusplus
  65interface IActiveScriptProfilerCallback2;
  66#endif /* __cplusplus */
  67#endif
  68
  69#ifndef __IActiveScriptProfilerCallback3_FWD_DEFINED__
  70#define __IActiveScriptProfilerCallback3_FWD_DEFINED__
  71typedef interface IActiveScriptProfilerCallback3 IActiveScriptProfilerCallback3;
  72#ifdef __cplusplus
  73interface IActiveScriptProfilerCallback3;
  74#endif /* __cplusplus */
  75#endif
  76
  77/* Headers for imported files */
  78
  79#include <unknwn.h>
  80
  81#ifdef __cplusplus
  82extern "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
  94const HRESULT ACTIVPROF_E_PROFILER_PRESENT = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0200);
  95const HRESULT ACTIVPROF_E_PROFILER_ABSENT = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0201);
  96const HRESULT ACTIVPROF_E_UNABLE_TO_APPLY_ACTION = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0202);
  97const 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
 104DEFINE_GUID(IID_IActiveScriptProfilerHeapEnum, 0x32e4694e, 0xd37, 0x419b, 0xb9, 0x3d, 0xfa, 0x20, 0xde, 0xd6, 0xe8, 0xea);
 105DEFINE_GUID(IID_IActiveScriptProfilerControl3, 0xb403015, 0xf381, 0x4023, 0xa5, 0xd0, 0x6f, 0xed, 0x7, 0x6d, 0xe7, 0x16);
 106#endif
 107
 108typedef 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
 115typedef 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
 123typedef LONG PROFILER_TOKEN;
 124
 125/*****************************************************************************
 126 * IActiveScriptProfilerControl interface
 127 */
 128#ifndef __IActiveScriptProfilerControl_INTERFACE_DEFINED__
 129#define __IActiveScriptProfilerControl_INTERFACE_DEFINED__
 130
 131DEFINE_GUID(IID_IActiveScriptProfilerControl, 0x784b5ff0, 0x69b0, 0x47d1, 0xa7,0xdc, 0x25,0x18,0xf4,0x23,0x0e,0x90);
 132#if defined(__cplusplus) && !defined(CINTERFACE)
 133MIDL_INTERFACE("784b5ff0-69b0-47d1-a7dc-2518f4230e90")
 134IActiveScriptProfilerControl : 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
 152typedef 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
 185interface 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 ***/
 201static inline HRESULT IActiveScriptProfilerControl_QueryInterface(IActiveScriptProfilerControl* This,REFIID riid,void **ppvObject) {
 202    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 203}
 204static inline ULONG IActiveScriptProfilerControl_AddRef(IActiveScriptProfilerControl* This) {
 205    return This->lpVtbl->AddRef(This);
 206}
 207static inline ULONG IActiveScriptProfilerControl_Release(IActiveScriptProfilerControl* This) {
 208    return This->lpVtbl->Release(This);
 209}
 210/*** IActiveScriptProfilerControl methods ***/
 211static inline HRESULT IActiveScriptProfilerControl_StartProfiling(IActiveScriptProfilerControl* This,REFCLSID clsidProfilerObject,DWORD dwEventMask,DWORD dwContext) {
 212    return This->lpVtbl->StartProfiling(This,clsidProfilerObject,dwEventMask,dwContext);
 213}
 214static inline HRESULT IActiveScriptProfilerControl_SetProfilerEventMask(IActiveScriptProfilerControl* This,DWORD dwEventMask) {
 215    return This->lpVtbl->SetProfilerEventMask(This,dwEventMask);
 216}
 217static 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
 235DEFINE_GUID(IID_IActiveScriptProfilerControl2, 0x47810165, 0x498f, 0x40be, 0x94,0xf1, 0x65,0x35,0x57,0xe9,0xe7,0xda);
 236#if defined(__cplusplus) && !defined(CINTERFACE)
 237MIDL_INTERFACE("47810165-498f-40be-94f1-653557e9e7da")
 238IActiveScriptProfilerControl2 : 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
 251typedef 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
 291interface 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 ***/
 310static inline HRESULT IActiveScriptProfilerControl2_QueryInterface(IActiveScriptProfilerControl2* This,REFIID riid,void **ppvObject) {
 311    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 312}
 313static inline ULONG IActiveScriptProfilerControl2_AddRef(IActiveScriptProfilerControl2* This) {
 314    return This->lpVtbl->AddRef(This);
 315}
 316static inline ULONG IActiveScriptProfilerControl2_Release(IActiveScriptProfilerControl2* This) {
 317    return This->lpVtbl->Release(This);
 318}
 319/*** IActiveScriptProfilerControl methods ***/
 320static inline HRESULT IActiveScriptProfilerControl2_StartProfiling(IActiveScriptProfilerControl2* This,REFCLSID clsidProfilerObject,DWORD dwEventMask,DWORD dwContext) {
 321    return This->lpVtbl->StartProfiling(This,clsidProfilerObject,dwEventMask,dwContext);
 322}
 323static inline HRESULT IActiveScriptProfilerControl2_SetProfilerEventMask(IActiveScriptProfilerControl2* This,DWORD dwEventMask) {
 324    return This->lpVtbl->SetProfilerEventMask(This,dwEventMask);
 325}
 326static inline HRESULT IActiveScriptProfilerControl2_StopProfiling(IActiveScriptProfilerControl2* This,HRESULT hrShutdownReason) {
 327    return This->lpVtbl->StopProfiling(This,hrShutdownReason);
 328}
 329/*** IActiveScriptProfilerControl2 methods ***/
 330static inline HRESULT IActiveScriptProfilerControl2_CompleteProfilerStart(IActiveScriptProfilerControl2* This) {
 331    return This->lpVtbl->CompleteProfilerStart(This);
 332}
 333static 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
 345typedef DWORD_PTR PROFILER_HEAP_OBJECT_ID;
 346typedef UINT PROFILER_HEAP_OBJECT_NAME_ID;
 347typedef void *PROFILER_EXTERNAL_OBJECT_ADDRESS;
 348
 349typedef 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
 365typedef 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
 379typedef struct _PROFILER_HEAP_OBJECT_SCOPE_LIST {
 380    UINT count;
 381    PROFILER_HEAP_OBJECT_ID scopes[1];
 382} PROFILER_HEAP_OBJECT_SCOPE_LIST;
 383
 384typedef 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
 392typedef 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
 404typedef struct _PROFILER_HEAP_OBJECT_RELATIONSHIP_LIST {
 405    UINT count;
 406    PROFILER_HEAP_OBJECT_RELATIONSHIP elements[1];
 407} PROFILER_HEAP_OBJECT_RELATIONSHIP_LIST;
 408
 409typedef 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
 425typedef 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
 443DEFINE_GUID(IID_IActiveScriptProfilerHeapEnum, 0x32e4694e, 0x0d37, 0x419b, 0xb9,0x3d, 0xfa,0x20,0xde,0xd6,0xe8,0xea);
 444#if defined(__cplusplus) && !defined(CINTERFACE)
 445MIDL_INTERFACE("32e4694e-0d37-419b-b93d-fa20ded6e8ea")
 446IActiveScriptProfilerHeapEnum : 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
 471typedef 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
 512interface 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 ***/
 529static inline HRESULT IActiveScriptProfilerHeapEnum_QueryInterface(IActiveScriptProfilerHeapEnum* This,REFIID riid,void **ppvObject) {
 530    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 531}
 532static inline ULONG IActiveScriptProfilerHeapEnum_AddRef(IActiveScriptProfilerHeapEnum* This) {
 533    return This->lpVtbl->AddRef(This);
 534}
 535static inline ULONG IActiveScriptProfilerHeapEnum_Release(IActiveScriptProfilerHeapEnum* This) {
 536    return This->lpVtbl->Release(This);
 537}
 538/*** IActiveScriptProfilerHeapEnum methods ***/
 539static inline HRESULT IActiveScriptProfilerHeapEnum_Next(IActiveScriptProfilerHeapEnum* This,ULONG celt,PROFILER_HEAP_OBJECT **heapObjects,ULONG *pceltFetched) {
 540    return This->lpVtbl->Next(This,celt,heapObjects,pceltFetched);
 541}
 542static 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}
 545static inline HRESULT IActiveScriptProfilerHeapEnum_FreeObjectAndOptionalInfo(IActiveScriptProfilerHeapEnum* This,ULONG celt,PROFILER_HEAP_OBJECT **heapObjects) {
 546    return This->lpVtbl->FreeObjectAndOptionalInfo(This,celt,heapObjects);
 547}
 548static 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
 566DEFINE_GUID(IID_IActiveScriptProfilerControl3, 0x0b403015, 0xf381, 0x4023, 0xa5,0xd0, 0x6f,0xed,0x07,0x6d,0xe7,0x16);
 567#if defined(__cplusplus) && !defined(CINTERFACE)
 568MIDL_INTERFACE("0b403015-f381-4023-a5d0-6fed076de716")
 569IActiveScriptProfilerControl3 : 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
 579typedef 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
 624interface 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 ***/
 645static inline HRESULT IActiveScriptProfilerControl3_QueryInterface(IActiveScriptProfilerControl3* This,REFIID riid,void **ppvObject) {
 646    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 647}
 648static inline ULONG IActiveScriptProfilerControl3_AddRef(IActiveScriptProfilerControl3* This) {
 649    return This->lpVtbl->AddRef(This);
 650}
 651static inline ULONG IActiveScriptProfilerControl3_Release(IActiveScriptProfilerControl3* This) {
 652    return This->lpVtbl->Release(This);
 653}
 654/*** IActiveScriptProfilerControl methods ***/
 655static inline HRESULT IActiveScriptProfilerControl3_StartProfiling(IActiveScriptProfilerControl3* This,REFCLSID clsidProfilerObject,DWORD dwEventMask,DWORD dwContext) {
 656    return This->lpVtbl->StartProfiling(This,clsidProfilerObject,dwEventMask,dwContext);
 657}
 658static inline HRESULT IActiveScriptProfilerControl3_SetProfilerEventMask(IActiveScriptProfilerControl3* This,DWORD dwEventMask) {
 659    return This->lpVtbl->SetProfilerEventMask(This,dwEventMask);
 660}
 661static inline HRESULT IActiveScriptProfilerControl3_StopProfiling(IActiveScriptProfilerControl3* This,HRESULT hrShutdownReason) {
 662    return This->lpVtbl->StopProfiling(This,hrShutdownReason);
 663}
 664/*** IActiveScriptProfilerControl2 methods ***/
 665static inline HRESULT IActiveScriptProfilerControl3_CompleteProfilerStart(IActiveScriptProfilerControl3* This) {
 666    return This->lpVtbl->CompleteProfilerStart(This);
 667}
 668static inline HRESULT IActiveScriptProfilerControl3_PrepareProfilerStop(IActiveScriptProfilerControl3* This) {
 669    return This->lpVtbl->PrepareProfilerStop(This);
 670}
 671/*** IActiveScriptProfilerControl3 methods ***/
 672static 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
 690DEFINE_GUID(IID_IActiveScriptProfilerCallback, 0x740eca23, 0x7d9d, 0x42e5, 0xba,0x9d, 0xf8,0xb2,0x4b,0x1c,0x7a,0x9b);
 691#if defined(__cplusplus) && !defined(CINTERFACE)
 692MIDL_INTERFACE("740eca23-7d9d-42e5-ba9d-f8b24b1c7a9b")
 693IActiveScriptProfilerCallback : 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
 726typedef 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
 777interface 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 ***/
 796static inline HRESULT IActiveScriptProfilerCallback_QueryInterface(IActiveScriptProfilerCallback* This,REFIID riid,void **ppvObject) {
 797    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 798}
 799static inline ULONG IActiveScriptProfilerCallback_AddRef(IActiveScriptProfilerCallback* This) {
 800    return This->lpVtbl->AddRef(This);
 801}
 802static inline ULONG IActiveScriptProfilerCallback_Release(IActiveScriptProfilerCallback* This) {
 803    return This->lpVtbl->Release(This);
 804}
 805/*** IActiveScriptProfilerCallback methods ***/
 806static inline HRESULT IActiveScriptProfilerCallback_Initialize(IActiveScriptProfilerCallback* This,DWORD dwContext) {
 807    return This->lpVtbl->Initialize(This,dwContext);
 808}
 809static inline HRESULT IActiveScriptProfilerCallback_Shutdown(IActiveScriptProfilerCallback* This,HRESULT hrReason) {
 810    return This->lpVtbl->Shutdown(This,hrReason);
 811}
 812static 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}
 815static 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}
 818static inline HRESULT IActiveScriptProfilerCallback_OnFunctionEnter(IActiveScriptProfilerCallback* This,PROFILER_TOKEN scriptId,PROFILER_TOKEN functionId) {
 819    return This->lpVtbl->OnFunctionEnter(This,scriptId,functionId);
 820}
 821static 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
 839DEFINE_GUID(IID_IActiveScriptProfilerCallback2, 0x31b7f8ad, 0xa637, 0x409c, 0xb2,0x2f, 0x04,0x09,0x95,0xb6,0x10,0x3d);
 840#if defined(__cplusplus) && !defined(CINTERFACE)
 841MIDL_INTERFACE("31b7f8ad-a637-409c-b22f-040995b6103d")
 842IActiveScriptProfilerCallback2 : 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
 857typedef 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
 919interface 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 ***/
 941static inline HRESULT IActiveScriptProfilerCallback2_QueryInterface(IActiveScriptProfilerCallback2* This,REFIID riid,void **ppvObject) {
 942    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 943}
 944static inline ULONG IActiveScriptProfilerCallback2_AddRef(IActiveScriptProfilerCallback2* This) {
 945    return This->lpVtbl->AddRef(This);
 946}
 947static inline ULONG IActiveScriptProfilerCallback2_Release(IActiveScriptProfilerCallback2* This) {
 948    return This->lpVtbl->Release(This);
 949}
 950/*** IActiveScriptProfilerCallback methods ***/
 951static inline HRESULT IActiveScriptProfilerCallback2_Initialize(IActiveScriptProfilerCallback2* This,DWORD dwContext) {
 952    return This->lpVtbl->Initialize(This,dwContext);
 953}
 954static inline HRESULT IActiveScriptProfilerCallback2_Shutdown(IActiveScriptProfilerCallback2* This,HRESULT hrReason) {
 955    return This->lpVtbl->Shutdown(This,hrReason);
 956}
 957static 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}
 960static 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}
 963static inline HRESULT IActiveScriptProfilerCallback2_OnFunctionEnter(IActiveScriptProfilerCallback2* This,PROFILER_TOKEN scriptId,PROFILER_TOKEN functionId) {
 964    return This->lpVtbl->OnFunctionEnter(This,scriptId,functionId);
 965}
 966static inline HRESULT IActiveScriptProfilerCallback2_OnFunctionExit(IActiveScriptProfilerCallback2* This,PROFILER_TOKEN scriptId,PROFILER_TOKEN functionId) {
 967    return This->lpVtbl->OnFunctionExit(This,scriptId,functionId);
 968}
 969/*** IActiveScriptProfilerCallback2 methods ***/
 970static inline HRESULT IActiveScriptProfilerCallback2_OnFunctionEnterByName(IActiveScriptProfilerCallback2* This,const WCHAR *pwszFunctionName,PROFILER_SCRIPT_TYPE type) {
 971    return This->lpVtbl->OnFunctionEnterByName(This,pwszFunctionName,type);
 972}
 973static 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
 991DEFINE_GUID(IID_IActiveScriptProfilerCallback3, 0x6ac5ad25, 0x2037, 0x4687, 0x91,0xdf, 0xb5,0x99,0x79,0xd9,0x3d,0x73);
 992#if defined(__cplusplus) && !defined(CINTERFACE)
 993MIDL_INTERFACE("6ac5ad25-2037-4687-91df-b59979d93d73")
 994IActiveScriptProfilerCallback3 : 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
1004typedef 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
1071interface 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 ***/
1095static inline HRESULT IActiveScriptProfilerCallback3_QueryInterface(IActiveScriptProfilerCallback3* This,REFIID riid,void **ppvObject) {
1096    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1097}
1098static inline ULONG IActiveScriptProfilerCallback3_AddRef(IActiveScriptProfilerCallback3* This) {
1099    return This->lpVtbl->AddRef(This);
1100}
1101static inline ULONG IActiveScriptProfilerCallback3_Release(IActiveScriptProfilerCallback3* This) {
1102    return This->lpVtbl->Release(This);
1103}
1104/*** IActiveScriptProfilerCallback methods ***/
1105static inline HRESULT IActiveScriptProfilerCallback3_Initialize(IActiveScriptProfilerCallback3* This,DWORD dwContext) {
1106    return This->lpVtbl->Initialize(This,dwContext);
1107}
1108static inline HRESULT IActiveScriptProfilerCallback3_Shutdown(IActiveScriptProfilerCallback3* This,HRESULT hrReason) {
1109    return This->lpVtbl->Shutdown(This,hrReason);
1110}
1111static 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}
1114static 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}
1117static inline HRESULT IActiveScriptProfilerCallback3_OnFunctionEnter(IActiveScriptProfilerCallback3* This,PROFILER_TOKEN scriptId,PROFILER_TOKEN functionId) {
1118    return This->lpVtbl->OnFunctionEnter(This,scriptId,functionId);
1119}
1120static inline HRESULT IActiveScriptProfilerCallback3_OnFunctionExit(IActiveScriptProfilerCallback3* This,PROFILER_TOKEN scriptId,PROFILER_TOKEN functionId) {
1121    return This->lpVtbl->OnFunctionExit(This,scriptId,functionId);
1122}
1123/*** IActiveScriptProfilerCallback2 methods ***/
1124static inline HRESULT IActiveScriptProfilerCallback3_OnFunctionEnterByName(IActiveScriptProfilerCallback3* This,const WCHAR *pwszFunctionName,PROFILER_SCRIPT_TYPE type) {
1125    return This->lpVtbl->OnFunctionEnterByName(This,pwszFunctionName,type);
1126}
1127static 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 ***/
1131static 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__ */