summaryrefslogtreecommitdiff
path: root/src/pal/prebuilt/inc/xclrdata.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/pal/prebuilt/inc/xclrdata.h')
-rw-r--r--src/pal/prebuilt/inc/xclrdata.h7730
1 files changed, 7730 insertions, 0 deletions
diff --git a/src/pal/prebuilt/inc/xclrdata.h b/src/pal/prebuilt/inc/xclrdata.h
new file mode 100644
index 0000000000..3f46c31319
--- /dev/null
+++ b/src/pal/prebuilt/inc/xclrdata.h
@@ -0,0 +1,7730 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 8.00.0603 */
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __xclrdata_h__
+#define __xclrdata_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __IXCLRDataTarget3_FWD_DEFINED__
+#define __IXCLRDataTarget3_FWD_DEFINED__
+typedef interface IXCLRDataTarget3 IXCLRDataTarget3;
+
+#endif /* __IXCLRDataTarget3_FWD_DEFINED__ */
+
+
+#ifndef __IXCLRLibrarySupport_FWD_DEFINED__
+#define __IXCLRLibrarySupport_FWD_DEFINED__
+typedef interface IXCLRLibrarySupport IXCLRLibrarySupport;
+
+#endif /* __IXCLRLibrarySupport_FWD_DEFINED__ */
+
+
+#ifndef __IXCLRDisassemblySupport_FWD_DEFINED__
+#define __IXCLRDisassemblySupport_FWD_DEFINED__
+typedef interface IXCLRDisassemblySupport IXCLRDisassemblySupport;
+
+#endif /* __IXCLRDisassemblySupport_FWD_DEFINED__ */
+
+
+#ifndef __IXCLRDataDisplay_FWD_DEFINED__
+#define __IXCLRDataDisplay_FWD_DEFINED__
+typedef interface IXCLRDataDisplay IXCLRDataDisplay;
+
+#endif /* __IXCLRDataDisplay_FWD_DEFINED__ */
+
+
+#ifndef __IXCLRDataProcess_FWD_DEFINED__
+#define __IXCLRDataProcess_FWD_DEFINED__
+typedef interface IXCLRDataProcess IXCLRDataProcess;
+
+#endif /* __IXCLRDataProcess_FWD_DEFINED__ */
+
+
+#ifndef __IXCLRDataProcess2_FWD_DEFINED__
+#define __IXCLRDataProcess2_FWD_DEFINED__
+typedef interface IXCLRDataProcess2 IXCLRDataProcess2;
+
+#endif /* __IXCLRDataProcess2_FWD_DEFINED__ */
+
+
+#ifndef __IXCLRDataAppDomain_FWD_DEFINED__
+#define __IXCLRDataAppDomain_FWD_DEFINED__
+typedef interface IXCLRDataAppDomain IXCLRDataAppDomain;
+
+#endif /* __IXCLRDataAppDomain_FWD_DEFINED__ */
+
+
+#ifndef __IXCLRDataAssembly_FWD_DEFINED__
+#define __IXCLRDataAssembly_FWD_DEFINED__
+typedef interface IXCLRDataAssembly IXCLRDataAssembly;
+
+#endif /* __IXCLRDataAssembly_FWD_DEFINED__ */
+
+
+#ifndef __IXCLRDataModule_FWD_DEFINED__
+#define __IXCLRDataModule_FWD_DEFINED__
+typedef interface IXCLRDataModule IXCLRDataModule;
+
+#endif /* __IXCLRDataModule_FWD_DEFINED__ */
+
+
+#ifndef __IXCLRDataModule2_FWD_DEFINED__
+#define __IXCLRDataModule2_FWD_DEFINED__
+typedef interface IXCLRDataModule2 IXCLRDataModule2;
+
+#endif /* __IXCLRDataModule2_FWD_DEFINED__ */
+
+
+#ifndef __IXCLRDataTypeDefinition_FWD_DEFINED__
+#define __IXCLRDataTypeDefinition_FWD_DEFINED__
+typedef interface IXCLRDataTypeDefinition IXCLRDataTypeDefinition;
+
+#endif /* __IXCLRDataTypeDefinition_FWD_DEFINED__ */
+
+
+#ifndef __IXCLRDataTypeInstance_FWD_DEFINED__
+#define __IXCLRDataTypeInstance_FWD_DEFINED__
+typedef interface IXCLRDataTypeInstance IXCLRDataTypeInstance;
+
+#endif /* __IXCLRDataTypeInstance_FWD_DEFINED__ */
+
+
+#ifndef __IXCLRDataMethodDefinition_FWD_DEFINED__
+#define __IXCLRDataMethodDefinition_FWD_DEFINED__
+typedef interface IXCLRDataMethodDefinition IXCLRDataMethodDefinition;
+
+#endif /* __IXCLRDataMethodDefinition_FWD_DEFINED__ */
+
+
+#ifndef __IXCLRDataMethodInstance_FWD_DEFINED__
+#define __IXCLRDataMethodInstance_FWD_DEFINED__
+typedef interface IXCLRDataMethodInstance IXCLRDataMethodInstance;
+
+#endif /* __IXCLRDataMethodInstance_FWD_DEFINED__ */
+
+
+#ifndef __IXCLRDataTask_FWD_DEFINED__
+#define __IXCLRDataTask_FWD_DEFINED__
+typedef interface IXCLRDataTask IXCLRDataTask;
+
+#endif /* __IXCLRDataTask_FWD_DEFINED__ */
+
+
+#ifndef __IXCLRDataStackWalk_FWD_DEFINED__
+#define __IXCLRDataStackWalk_FWD_DEFINED__
+typedef interface IXCLRDataStackWalk IXCLRDataStackWalk;
+
+#endif /* __IXCLRDataStackWalk_FWD_DEFINED__ */
+
+
+#ifndef __IXCLRDataFrame_FWD_DEFINED__
+#define __IXCLRDataFrame_FWD_DEFINED__
+typedef interface IXCLRDataFrame IXCLRDataFrame;
+
+#endif /* __IXCLRDataFrame_FWD_DEFINED__ */
+
+
+#ifndef __IXCLRDataFrame2_FWD_DEFINED__
+#define __IXCLRDataFrame2_FWD_DEFINED__
+typedef interface IXCLRDataFrame2 IXCLRDataFrame2;
+
+#endif /* __IXCLRDataFrame2_FWD_DEFINED__ */
+
+
+#ifndef __IXCLRDataExceptionState_FWD_DEFINED__
+#define __IXCLRDataExceptionState_FWD_DEFINED__
+typedef interface IXCLRDataExceptionState IXCLRDataExceptionState;
+
+#endif /* __IXCLRDataExceptionState_FWD_DEFINED__ */
+
+
+#ifndef __IXCLRDataValue_FWD_DEFINED__
+#define __IXCLRDataValue_FWD_DEFINED__
+typedef interface IXCLRDataValue IXCLRDataValue;
+
+#endif /* __IXCLRDataValue_FWD_DEFINED__ */
+
+
+#ifndef __IXCLRDataExceptionNotification_FWD_DEFINED__
+#define __IXCLRDataExceptionNotification_FWD_DEFINED__
+typedef interface IXCLRDataExceptionNotification IXCLRDataExceptionNotification;
+
+#endif /* __IXCLRDataExceptionNotification_FWD_DEFINED__ */
+
+
+#ifndef __IXCLRDataExceptionNotification2_FWD_DEFINED__
+#define __IXCLRDataExceptionNotification2_FWD_DEFINED__
+typedef interface IXCLRDataExceptionNotification2 IXCLRDataExceptionNotification2;
+
+#endif /* __IXCLRDataExceptionNotification2_FWD_DEFINED__ */
+
+
+#ifndef __IXCLRDataExceptionNotification3_FWD_DEFINED__
+#define __IXCLRDataExceptionNotification3_FWD_DEFINED__
+typedef interface IXCLRDataExceptionNotification3 IXCLRDataExceptionNotification3;
+
+#endif /* __IXCLRDataExceptionNotification3_FWD_DEFINED__ */
+
+
+#ifndef __IXCLRDataExceptionNotification4_FWD_DEFINED__
+#define __IXCLRDataExceptionNotification4_FWD_DEFINED__
+typedef interface IXCLRDataExceptionNotification4 IXCLRDataExceptionNotification4;
+
+#endif /* __IXCLRDataExceptionNotification4_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "clrdata.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+/* interface __MIDL_itf_xclrdata_0000_0000 */
+/* [local] */
+
+#if 0
+typedef UINT32 mdToken;
+
+typedef mdToken mdTypeDef;
+
+typedef mdToken mdMethodDef;
+
+typedef mdToken mdFieldDef;
+
+typedef ULONG CorElementType;
+
+typedef struct _EXCEPTION_RECORD64
+ {
+ DWORD ExceptionCode;
+ DWORD ExceptionFlags;
+ DWORD64 ExceptionRecord;
+ DWORD64 ExceptionAddress;
+ DWORD NumberParameters;
+ DWORD __unusedAlignment;
+ DWORD64 ExceptionInformation[ 15 ];
+ } EXCEPTION_RECORD64;
+
+typedef struct _EXCEPTION_RECORD64 *PEXCEPTION_RECORD64;
+
+#endif
+#pragma warning(push)
+#pragma warning(disable:28718)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma warning(pop)
+typedef /* [public][public][public] */ struct __MIDL___MIDL_itf_xclrdata_0000_0000_0001
+ {
+ CLRDATA_ADDRESS startAddress;
+ CLRDATA_ADDRESS endAddress;
+ } CLRDATA_ADDRESS_RANGE;
+
+typedef ULONG64 CLRDATA_ENUM;
+
+#define CLRDATA_NOTIFY_EXCEPTION 0xe0444143
+typedef /* [public] */
+enum __MIDL___MIDL_itf_xclrdata_0000_0000_0002
+ {
+ CLRDATA_REQUEST_REVISION = 0xe0000000
+ } CLRDataGeneralRequest;
+
+typedef /* [public] */
+enum __MIDL___MIDL_itf_xclrdata_0000_0000_0003
+ {
+ CLRDATA_TYPE_DEFAULT = 0,
+ CLRDATA_TYPE_IS_PRIMITIVE = 0x1,
+ CLRDATA_TYPE_IS_VALUE_TYPE = 0x2,
+ CLRDATA_TYPE_IS_STRING = 0x4,
+ CLRDATA_TYPE_IS_ARRAY = 0x8,
+ CLRDATA_TYPE_IS_REFERENCE = 0x10,
+ CLRDATA_TYPE_IS_POINTER = 0x20,
+ CLRDATA_TYPE_IS_ENUM = 0x40,
+ CLRDATA_TYPE_ALL_KINDS = 0x7f
+ } CLRDataTypeFlag;
+
+typedef /* [public] */
+enum __MIDL___MIDL_itf_xclrdata_0000_0000_0004
+ {
+ CLRDATA_FIELD_DEFAULT = 0,
+ CLRDATA_FIELD_IS_PRIMITIVE = CLRDATA_TYPE_IS_PRIMITIVE,
+ CLRDATA_FIELD_IS_VALUE_TYPE = CLRDATA_TYPE_IS_VALUE_TYPE,
+ CLRDATA_FIELD_IS_STRING = CLRDATA_TYPE_IS_STRING,
+ CLRDATA_FIELD_IS_ARRAY = CLRDATA_TYPE_IS_ARRAY,
+ CLRDATA_FIELD_IS_REFERENCE = CLRDATA_TYPE_IS_REFERENCE,
+ CLRDATA_FIELD_IS_POINTER = CLRDATA_TYPE_IS_POINTER,
+ CLRDATA_FIELD_IS_ENUM = CLRDATA_TYPE_IS_ENUM,
+ CLRDATA_FIELD_ALL_KINDS = CLRDATA_TYPE_ALL_KINDS,
+ CLRDATA_FIELD_IS_INHERITED = 0x80,
+ CLRDATA_FIELD_IS_LITERAL = 0x100,
+ CLRDATA_FIELD_FROM_INSTANCE = 0x200,
+ CLRDATA_FIELD_FROM_TASK_LOCAL = 0x400,
+ CLRDATA_FIELD_FROM_STATIC = 0x800,
+ CLRDATA_FIELD_ALL_LOCATIONS = 0xe00,
+ CLRDATA_FIELD_ALL_FIELDS = 0xeff
+ } CLRDataFieldFlag;
+
+typedef /* [public] */
+enum __MIDL___MIDL_itf_xclrdata_0000_0000_0005
+ {
+ CLRDATA_VALUE_DEFAULT = 0,
+ CLRDATA_VALUE_IS_PRIMITIVE = CLRDATA_TYPE_IS_PRIMITIVE,
+ CLRDATA_VALUE_IS_VALUE_TYPE = CLRDATA_TYPE_IS_VALUE_TYPE,
+ CLRDATA_VALUE_IS_STRING = CLRDATA_TYPE_IS_STRING,
+ CLRDATA_VALUE_IS_ARRAY = CLRDATA_TYPE_IS_ARRAY,
+ CLRDATA_VALUE_IS_REFERENCE = CLRDATA_TYPE_IS_REFERENCE,
+ CLRDATA_VALUE_IS_POINTER = CLRDATA_TYPE_IS_POINTER,
+ CLRDATA_VALUE_IS_ENUM = CLRDATA_TYPE_IS_ENUM,
+ CLRDATA_VALUE_ALL_KINDS = CLRDATA_TYPE_ALL_KINDS,
+ CLRDATA_VALUE_IS_INHERITED = CLRDATA_FIELD_IS_INHERITED,
+ CLRDATA_VALUE_IS_LITERAL = CLRDATA_FIELD_IS_LITERAL,
+ CLRDATA_VALUE_FROM_INSTANCE = CLRDATA_FIELD_FROM_INSTANCE,
+ CLRDATA_VALUE_FROM_TASK_LOCAL = CLRDATA_FIELD_FROM_TASK_LOCAL,
+ CLRDATA_VALUE_FROM_STATIC = CLRDATA_FIELD_FROM_STATIC,
+ CLRDATA_VALUE_ALL_LOCATIONS = CLRDATA_FIELD_ALL_LOCATIONS,
+ CLRDATA_VALUE_ALL_FIELDS = CLRDATA_FIELD_ALL_FIELDS,
+ CLRDATA_VALUE_IS_BOXED = 0x1000
+ } CLRDataValueFlag;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_xclrdata_0000_0000_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_xclrdata_0000_0000_v0_0_s_ifspec;
+
+#ifndef __IXCLRDataTarget3_INTERFACE_DEFINED__
+#define __IXCLRDataTarget3_INTERFACE_DEFINED__
+
+/* interface IXCLRDataTarget3 */
+/* [unique][uuid][local][object] */
+
+
+EXTERN_C const IID IID_IXCLRDataTarget3;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("59d9b5e1-4a6f-4531-84c3-51d12da22fd4")
+ IXCLRDataTarget3 : public ICLRDataTarget2
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE GetMetaData(
+ /* [in] */ LPCWSTR imagePath,
+ /* [in] */ ULONG32 imageTimestamp,
+ /* [in] */ ULONG32 imageSize,
+ /* [in] */ GUID *mvid,
+ /* [in] */ ULONG32 mdRva,
+ /* [in] */ ULONG32 flags,
+ /* [in] */ ULONG32 bufferSize,
+ /* [length_is][size_is][out] */ BYTE *buffer,
+ /* [out] */ ULONG32 *dataSize) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IXCLRDataTarget3Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IXCLRDataTarget3 * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IXCLRDataTarget3 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IXCLRDataTarget3 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetMachineType )(
+ IXCLRDataTarget3 * This,
+ /* [out] */ ULONG32 *machineType);
+
+ HRESULT ( STDMETHODCALLTYPE *GetPointerSize )(
+ IXCLRDataTarget3 * This,
+ /* [out] */ ULONG32 *pointerSize);
+
+ HRESULT ( STDMETHODCALLTYPE *GetImageBase )(
+ IXCLRDataTarget3 * This,
+ /* [string][in] */ LPCWSTR imagePath,
+ /* [out] */ CLRDATA_ADDRESS *baseAddress);
+
+ HRESULT ( STDMETHODCALLTYPE *ReadVirtual )(
+ IXCLRDataTarget3 * This,
+ /* [in] */ CLRDATA_ADDRESS address,
+ /* [length_is][size_is][out] */ BYTE *buffer,
+ /* [in] */ ULONG32 bytesRequested,
+ /* [out] */ ULONG32 *bytesRead);
+
+ HRESULT ( STDMETHODCALLTYPE *WriteVirtual )(
+ IXCLRDataTarget3 * This,
+ /* [in] */ CLRDATA_ADDRESS address,
+ /* [size_is][in] */ BYTE *buffer,
+ /* [in] */ ULONG32 bytesRequested,
+ /* [out] */ ULONG32 *bytesWritten);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTLSValue )(
+ IXCLRDataTarget3 * This,
+ /* [in] */ ULONG32 threadID,
+ /* [in] */ ULONG32 index,
+ /* [out] */ CLRDATA_ADDRESS *value);
+
+ HRESULT ( STDMETHODCALLTYPE *SetTLSValue )(
+ IXCLRDataTarget3 * This,
+ /* [in] */ ULONG32 threadID,
+ /* [in] */ ULONG32 index,
+ /* [in] */ CLRDATA_ADDRESS value);
+
+ HRESULT ( STDMETHODCALLTYPE *GetCurrentThreadID )(
+ IXCLRDataTarget3 * This,
+ /* [out] */ ULONG32 *threadID);
+
+ HRESULT ( STDMETHODCALLTYPE *GetThreadContext )(
+ IXCLRDataTarget3 * This,
+ /* [in] */ ULONG32 threadID,
+ /* [in] */ ULONG32 contextFlags,
+ /* [in] */ ULONG32 contextSize,
+ /* [size_is][out] */ BYTE *context);
+
+ HRESULT ( STDMETHODCALLTYPE *SetThreadContext )(
+ IXCLRDataTarget3 * This,
+ /* [in] */ ULONG32 threadID,
+ /* [in] */ ULONG32 contextSize,
+ /* [size_is][in] */ BYTE *context);
+
+ HRESULT ( STDMETHODCALLTYPE *Request )(
+ IXCLRDataTarget3 * This,
+ /* [in] */ ULONG32 reqCode,
+ /* [in] */ ULONG32 inBufferSize,
+ /* [size_is][in] */ BYTE *inBuffer,
+ /* [in] */ ULONG32 outBufferSize,
+ /* [size_is][out] */ BYTE *outBuffer);
+
+ HRESULT ( STDMETHODCALLTYPE *AllocVirtual )(
+ IXCLRDataTarget3 * This,
+ /* [in] */ CLRDATA_ADDRESS addr,
+ /* [in] */ ULONG32 size,
+ /* [in] */ ULONG32 typeFlags,
+ /* [in] */ ULONG32 protectFlags,
+ /* [out] */ CLRDATA_ADDRESS *virt);
+
+ HRESULT ( STDMETHODCALLTYPE *FreeVirtual )(
+ IXCLRDataTarget3 * This,
+ /* [in] */ CLRDATA_ADDRESS addr,
+ /* [in] */ ULONG32 size,
+ /* [in] */ ULONG32 typeFlags);
+
+ HRESULT ( STDMETHODCALLTYPE *GetMetaData )(
+ IXCLRDataTarget3 * This,
+ /* [in] */ LPCWSTR imagePath,
+ /* [in] */ ULONG32 imageTimestamp,
+ /* [in] */ ULONG32 imageSize,
+ /* [in] */ GUID *mvid,
+ /* [in] */ ULONG32 mdRva,
+ /* [in] */ ULONG32 flags,
+ /* [in] */ ULONG32 bufferSize,
+ /* [length_is][size_is][out] */ BYTE *buffer,
+ /* [out] */ ULONG32 *dataSize);
+
+ END_INTERFACE
+ } IXCLRDataTarget3Vtbl;
+
+ interface IXCLRDataTarget3
+ {
+ CONST_VTBL struct IXCLRDataTarget3Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IXCLRDataTarget3_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IXCLRDataTarget3_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IXCLRDataTarget3_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IXCLRDataTarget3_GetMachineType(This,machineType) \
+ ( (This)->lpVtbl -> GetMachineType(This,machineType) )
+
+#define IXCLRDataTarget3_GetPointerSize(This,pointerSize) \
+ ( (This)->lpVtbl -> GetPointerSize(This,pointerSize) )
+
+#define IXCLRDataTarget3_GetImageBase(This,imagePath,baseAddress) \
+ ( (This)->lpVtbl -> GetImageBase(This,imagePath,baseAddress) )
+
+#define IXCLRDataTarget3_ReadVirtual(This,address,buffer,bytesRequested,bytesRead) \
+ ( (This)->lpVtbl -> ReadVirtual(This,address,buffer,bytesRequested,bytesRead) )
+
+#define IXCLRDataTarget3_WriteVirtual(This,address,buffer,bytesRequested,bytesWritten) \
+ ( (This)->lpVtbl -> WriteVirtual(This,address,buffer,bytesRequested,bytesWritten) )
+
+#define IXCLRDataTarget3_GetTLSValue(This,threadID,index,value) \
+ ( (This)->lpVtbl -> GetTLSValue(This,threadID,index,value) )
+
+#define IXCLRDataTarget3_SetTLSValue(This,threadID,index,value) \
+ ( (This)->lpVtbl -> SetTLSValue(This,threadID,index,value) )
+
+#define IXCLRDataTarget3_GetCurrentThreadID(This,threadID) \
+ ( (This)->lpVtbl -> GetCurrentThreadID(This,threadID) )
+
+#define IXCLRDataTarget3_GetThreadContext(This,threadID,contextFlags,contextSize,context) \
+ ( (This)->lpVtbl -> GetThreadContext(This,threadID,contextFlags,contextSize,context) )
+
+#define IXCLRDataTarget3_SetThreadContext(This,threadID,contextSize,context) \
+ ( (This)->lpVtbl -> SetThreadContext(This,threadID,contextSize,context) )
+
+#define IXCLRDataTarget3_Request(This,reqCode,inBufferSize,inBuffer,outBufferSize,outBuffer) \
+ ( (This)->lpVtbl -> Request(This,reqCode,inBufferSize,inBuffer,outBufferSize,outBuffer) )
+
+
+#define IXCLRDataTarget3_AllocVirtual(This,addr,size,typeFlags,protectFlags,virt) \
+ ( (This)->lpVtbl -> AllocVirtual(This,addr,size,typeFlags,protectFlags,virt) )
+
+#define IXCLRDataTarget3_FreeVirtual(This,addr,size,typeFlags) \
+ ( (This)->lpVtbl -> FreeVirtual(This,addr,size,typeFlags) )
+
+
+#define IXCLRDataTarget3_GetMetaData(This,imagePath,imageTimestamp,imageSize,mvid,mdRva,flags,bufferSize,buffer,dataSize) \
+ ( (This)->lpVtbl -> GetMetaData(This,imagePath,imageTimestamp,imageSize,mvid,mdRva,flags,bufferSize,buffer,dataSize) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IXCLRDataTarget3_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_xclrdata_0000_0001 */
+/* [local] */
+
+typedef /* [public] */
+enum __MIDL___MIDL_itf_xclrdata_0000_0001_0001
+ {
+ CLRDATA_BYNAME_CASE_SENSITIVE = 0,
+ CLRDATA_BYNAME_CASE_INSENSITIVE = 0x1
+ } CLRDataByNameFlag;
+
+typedef /* [public] */
+enum __MIDL___MIDL_itf_xclrdata_0000_0001_0002
+ {
+ CLRDATA_GETNAME_DEFAULT = 0,
+ CLRDATA_GETNAME_NO_NAMESPACES = 0x1,
+ CLRDATA_GETNAME_NO_PARAMETERS = 0x2
+ } CLRDataGetNameFlag;
+
+typedef /* [public] */
+enum __MIDL___MIDL_itf_xclrdata_0000_0001_0003
+ {
+ CLRDATA_PROCESS_DEFAULT = 0,
+ CLRDATA_PROCESS_IN_GC = 0x1
+ } CLRDataProcessFlag;
+
+typedef /* [public][public] */
+enum __MIDL___MIDL_itf_xclrdata_0000_0001_0004
+ {
+ CLRDATA_ADDRESS_UNRECOGNIZED = 0,
+ CLRDATA_ADDRESS_MANAGED_METHOD = ( CLRDATA_ADDRESS_UNRECOGNIZED + 1 ) ,
+ CLRDATA_ADDRESS_RUNTIME_MANAGED_CODE = ( CLRDATA_ADDRESS_MANAGED_METHOD + 1 ) ,
+ CLRDATA_ADDRESS_RUNTIME_UNMANAGED_CODE = ( CLRDATA_ADDRESS_RUNTIME_MANAGED_CODE + 1 ) ,
+ CLRDATA_ADDRESS_GC_DATA = ( CLRDATA_ADDRESS_RUNTIME_UNMANAGED_CODE + 1 ) ,
+ CLRDATA_ADDRESS_RUNTIME_MANAGED_STUB = ( CLRDATA_ADDRESS_GC_DATA + 1 ) ,
+ CLRDATA_ADDRESS_RUNTIME_UNMANAGED_STUB = ( CLRDATA_ADDRESS_RUNTIME_MANAGED_STUB + 1 )
+ } CLRDataAddressType;
+
+typedef /* [public] */
+enum __MIDL___MIDL_itf_xclrdata_0000_0001_0005
+ {
+ CLRDATA_NOTIFY_ON_MODULE_LOAD = 0x1,
+ CLRDATA_NOTIFY_ON_MODULE_UNLOAD = 0x2,
+ CLRDATA_NOTIFY_ON_EXCEPTION = 0x4,
+ CLRDATA_NOTIFY_ON_EXCEPTION_CATCH_ENTER = 0x8
+ } CLRDataOtherNotifyFlag;
+
+typedef /* [public][public][public][public][public] */ struct __MIDL___MIDL_itf_xclrdata_0000_0001_0006
+ {
+ ULONG64 Data[ 8 ];
+ } CLRDATA_FOLLOW_STUB_BUFFER;
+
+typedef /* [public] */
+enum __MIDL___MIDL_itf_xclrdata_0000_0001_0007
+ {
+ CLRDATA_FOLLOW_STUB_DEFAULT = 0
+ } CLRDataFollowStubInFlag;
+
+typedef /* [public] */
+enum __MIDL___MIDL_itf_xclrdata_0000_0001_0008
+ {
+ CLRDATA_FOLLOW_STUB_INTERMEDIATE = 0,
+ CLRDATA_FOLLOW_STUB_EXIT = 0x1
+ } CLRDataFollowStubOutFlag;
+
+typedef /* [public][public] */
+enum __MIDL___MIDL_itf_xclrdata_0000_0001_0009
+ {
+ CLRNATIVEIMAGE_PE_INFO = 0x1,
+ CLRNATIVEIMAGE_COR_INFO = 0x2,
+ CLRNATIVEIMAGE_FIXUP_TABLES = 0x4,
+ CLRNATIVEIMAGE_FIXUP_HISTOGRAM = 0x8,
+ CLRNATIVEIMAGE_MODULE = 0x10,
+ CLRNATIVEIMAGE_METHODS = 0x20,
+ CLRNATIVEIMAGE_DISASSEMBLE_CODE = 0x40,
+ CLRNATIVEIMAGE_IL = 0x80,
+ CLRNATIVEIMAGE_METHODTABLES = 0x100,
+ CLRNATIVEIMAGE_NATIVE_INFO = 0x200,
+ CLRNATIVEIMAGE_MODULE_TABLES = 0x400,
+ CLRNATIVEIMAGE_FROZEN_SEGMENT = 0x800,
+ CLRNATIVEIMAGE_PE_FILE = 0x1000,
+ CLRNATIVEIMAGE_GC_INFO = 0x2000,
+ CLRNATIVEIMAGE_EECLASSES = 0x4000,
+ CLRNATIVEIMAGE_NATIVE_TABLES = 0x8000,
+ CLRNATIVEIMAGE_PRECODES = 0x10000,
+ CLRNATIVEIMAGE_TYPEDESCS = 0x20000,
+ CLRNATIVEIMAGE_VERBOSE_TYPES = 0x40000,
+ CLRNATIVEIMAGE_METHODDESCS = 0x80000,
+ CLRNATIVEIMAGE_METADATA = 0x100000,
+ CLRNATIVEIMAGE_DISABLE_NAMES = 0x200000,
+ CLRNATIVEIMAGE_DISABLE_REBASING = 0x400000,
+ CLRNATIVEIMAGE_SLIM_MODULE_TBLS = 0x800000,
+ CLRNATIVEIMAGE_RESOURCES = 0x1000000,
+ CLRNATIVEIMAGE_FILE_OFFSET = 0x2000000,
+ CLRNATIVEIMAGE_DEBUG_TRACE = 0x4000000,
+ CLRNATIVEIMAGE_RELOCATIONS = 0x8000000,
+ CLRNATIVEIMAGE_FIXUP_THUNKS = 0x10000000,
+ CLRNATIVEIMAGE_DEBUG_COVERAGE = 0x80000000
+ } CLRNativeImageDumpOptions;
+
+#ifdef __cplusplus
+inline CLRNativeImageDumpOptions operator|=(CLRNativeImageDumpOptions& lhs, CLRNativeImageDumpOptions rhs) { return (lhs = (CLRNativeImageDumpOptions)( ((unsigned)lhs) | ((unsigned)rhs) )); }
+#endif
+typedef /* [public] */
+enum __MIDL___MIDL_itf_xclrdata_0000_0001_0010
+ {
+ CLRDATAHINT_DISPLAY_HINTS_NONE = 0,
+ CLRDATAHINT_DISPLAY_ARRAY_AS_TABLE = 0x1,
+ CLRDATAHINT_DISPLAY_ARRAY_AS_ARRAY = 0x2,
+ CLRDATAHINT_DISPLAY_ARRAY_AS_ARRAY_IDX = 0x3,
+ CLRDATAHINT_DISPLAY_ARRAY_AS_MAP = 0x4,
+ CLRDATAHINT_DISPLAY_ARRAY_HINT_MASK = 0xff,
+ CLRDATAHINT_DISPLAY_STRUCT_AS_TABLE = 0x100,
+ CLRDATAHINT_DISPLAY_STRUCT_HINT_MASK = 0xff00,
+ CLRDATAHINT_DISPLAY_SEP_TAB = 0,
+ CLRDATAHINT_DISPLAY_SEP_SPACE = 0x1000000,
+ CLRDATAHINT_DISPLAY_SEP_TAB_SPACE = 0x2000000,
+ CLRDATAHINT_DISPLAY_SEP_MASK = 0xff000000
+ } CLRDataDisplayHints;
+
+#pragma warning(push)
+#pragma warning(disable:28718)
+
+
+extern RPC_IF_HANDLE __MIDL_itf_xclrdata_0000_0001_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_xclrdata_0000_0001_v0_0_s_ifspec;
+
+#ifndef __IXCLRLibrarySupport_INTERFACE_DEFINED__
+#define __IXCLRLibrarySupport_INTERFACE_DEFINED__
+
+/* interface IXCLRLibrarySupport */
+/* [uuid][local][object] */
+
+
+EXTERN_C const IID IID_IXCLRLibrarySupport;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("E5F3039D-2C0C-4230-A69E-12AF1C3E563C")
+ IXCLRLibrarySupport : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE LoadHardboundDependency(
+ const WCHAR *name,
+ REFGUID mvid,
+ /* [out] */ SIZE_T *loadedBase) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE LoadSoftboundDependency(
+ const WCHAR *name,
+ const BYTE *assemblymetadataBinding,
+ const BYTE *hash,
+ ULONG hashLength,
+ /* [out] */ SIZE_T *loadedBase) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IXCLRLibrarySupportVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IXCLRLibrarySupport * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IXCLRLibrarySupport * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IXCLRLibrarySupport * This);
+
+ HRESULT ( STDMETHODCALLTYPE *LoadHardboundDependency )(
+ IXCLRLibrarySupport * This,
+ const WCHAR *name,
+ REFGUID mvid,
+ /* [out] */ SIZE_T *loadedBase);
+
+ HRESULT ( STDMETHODCALLTYPE *LoadSoftboundDependency )(
+ IXCLRLibrarySupport * This,
+ const WCHAR *name,
+ const BYTE *assemblymetadataBinding,
+ const BYTE *hash,
+ ULONG hashLength,
+ /* [out] */ SIZE_T *loadedBase);
+
+ END_INTERFACE
+ } IXCLRLibrarySupportVtbl;
+
+ interface IXCLRLibrarySupport
+ {
+ CONST_VTBL struct IXCLRLibrarySupportVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IXCLRLibrarySupport_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IXCLRLibrarySupport_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IXCLRLibrarySupport_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IXCLRLibrarySupport_LoadHardboundDependency(This,name,mvid,loadedBase) \
+ ( (This)->lpVtbl -> LoadHardboundDependency(This,name,mvid,loadedBase) )
+
+#define IXCLRLibrarySupport_LoadSoftboundDependency(This,name,assemblymetadataBinding,hash,hashLength,loadedBase) \
+ ( (This)->lpVtbl -> LoadSoftboundDependency(This,name,assemblymetadataBinding,hash,hashLength,loadedBase) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IXCLRLibrarySupport_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_xclrdata_0000_0002 */
+/* [local] */
+
+
+typedef SIZE_T ( __stdcall *CDSTranslateAddrCB )(
+ IXCLRDisassemblySupport *__MIDL____MIDL_itf_xclrdata_0000_00020000,
+ CLRDATA_ADDRESS __MIDL____MIDL_itf_xclrdata_0000_00020001,
+ wchar_t *__MIDL____MIDL_itf_xclrdata_0000_00020002,
+ SIZE_T __MIDL____MIDL_itf_xclrdata_0000_00020003,
+ DWORDLONG *__MIDL____MIDL_itf_xclrdata_0000_00020004);
+
+typedef SIZE_T ( __stdcall *CDSTranslateFixupCB )(
+ IXCLRDisassemblySupport *__MIDL____MIDL_itf_xclrdata_0000_00020006,
+ CLRDATA_ADDRESS __MIDL____MIDL_itf_xclrdata_0000_00020007,
+ SIZE_T __MIDL____MIDL_itf_xclrdata_0000_00020008,
+ wchar_t *__MIDL____MIDL_itf_xclrdata_0000_00020009,
+ SIZE_T __MIDL____MIDL_itf_xclrdata_0000_00020010,
+ DWORDLONG *__MIDL____MIDL_itf_xclrdata_0000_00020011);
+
+typedef SIZE_T ( __stdcall *CDSTranslateConstCB )(
+ IXCLRDisassemblySupport *__MIDL____MIDL_itf_xclrdata_0000_00020013,
+ DWORD __MIDL____MIDL_itf_xclrdata_0000_00020014,
+ wchar_t *__MIDL____MIDL_itf_xclrdata_0000_00020015,
+ SIZE_T __MIDL____MIDL_itf_xclrdata_0000_00020016);
+
+typedef SIZE_T ( __stdcall *CDSTranslateRegrelCB )(
+ IXCLRDisassemblySupport *__MIDL____MIDL_itf_xclrdata_0000_00020018,
+ unsigned int rega,
+ CLRDATA_ADDRESS __MIDL____MIDL_itf_xclrdata_0000_00020019,
+ wchar_t *__MIDL____MIDL_itf_xclrdata_0000_00020020,
+ SIZE_T __MIDL____MIDL_itf_xclrdata_0000_00020021,
+ DWORD *__MIDL____MIDL_itf_xclrdata_0000_00020022);
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_xclrdata_0000_0002_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_xclrdata_0000_0002_v0_0_s_ifspec;
+
+#ifndef __IXCLRDisassemblySupport_INTERFACE_DEFINED__
+#define __IXCLRDisassemblySupport_INTERFACE_DEFINED__
+
+/* interface IXCLRDisassemblySupport */
+/* [uuid][local][object] */
+
+
+EXTERN_C const IID IID_IXCLRDisassemblySupport;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("1F0F7134-D3F3-47DE-8E9B-C2FD358A2936")
+ IXCLRDisassemblySupport : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE SetTranslateAddrCallback(
+ /* [in] */ CDSTranslateAddrCB cb) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE PvClientSet(
+ /* [in] */ void *pv) = 0;
+
+ virtual SIZE_T STDMETHODCALLTYPE CbDisassemble(
+ CLRDATA_ADDRESS __MIDL__IXCLRDisassemblySupport0000,
+ const void *__MIDL__IXCLRDisassemblySupport0001,
+ SIZE_T __MIDL__IXCLRDisassemblySupport0002) = 0;
+
+ virtual SIZE_T STDMETHODCALLTYPE Cinstruction( void) = 0;
+
+ virtual BOOL STDMETHODCALLTYPE FSelectInstruction(
+ SIZE_T __MIDL__IXCLRDisassemblySupport0003) = 0;
+
+ virtual SIZE_T STDMETHODCALLTYPE CchFormatInstr(
+ wchar_t *__MIDL__IXCLRDisassemblySupport0004,
+ SIZE_T __MIDL__IXCLRDisassemblySupport0005) = 0;
+
+ virtual void *STDMETHODCALLTYPE PvClient( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetTranslateFixupCallback(
+ /* [in] */ CDSTranslateFixupCB cb) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetTranslateConstCallback(
+ /* [in] */ CDSTranslateConstCB cb) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetTranslateRegrelCallback(
+ /* [in] */ CDSTranslateRegrelCB cb) = 0;
+
+ virtual BOOL STDMETHODCALLTYPE TargetIsAddress( void) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IXCLRDisassemblySupportVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IXCLRDisassemblySupport * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IXCLRDisassemblySupport * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IXCLRDisassemblySupport * This);
+
+ HRESULT ( STDMETHODCALLTYPE *SetTranslateAddrCallback )(
+ IXCLRDisassemblySupport * This,
+ /* [in] */ CDSTranslateAddrCB cb);
+
+ HRESULT ( STDMETHODCALLTYPE *PvClientSet )(
+ IXCLRDisassemblySupport * This,
+ /* [in] */ void *pv);
+
+ SIZE_T ( STDMETHODCALLTYPE *CbDisassemble )(
+ IXCLRDisassemblySupport * This,
+ CLRDATA_ADDRESS __MIDL__IXCLRDisassemblySupport0000,
+ const void *__MIDL__IXCLRDisassemblySupport0001,
+ SIZE_T __MIDL__IXCLRDisassemblySupport0002);
+
+ SIZE_T ( STDMETHODCALLTYPE *Cinstruction )(
+ IXCLRDisassemblySupport * This);
+
+ BOOL ( STDMETHODCALLTYPE *FSelectInstruction )(
+ IXCLRDisassemblySupport * This,
+ SIZE_T __MIDL__IXCLRDisassemblySupport0003);
+
+ SIZE_T ( STDMETHODCALLTYPE *CchFormatInstr )(
+ IXCLRDisassemblySupport * This,
+ wchar_t *__MIDL__IXCLRDisassemblySupport0004,
+ SIZE_T __MIDL__IXCLRDisassemblySupport0005);
+
+ void *( STDMETHODCALLTYPE *PvClient )(
+ IXCLRDisassemblySupport * This);
+
+ HRESULT ( STDMETHODCALLTYPE *SetTranslateFixupCallback )(
+ IXCLRDisassemblySupport * This,
+ /* [in] */ CDSTranslateFixupCB cb);
+
+ HRESULT ( STDMETHODCALLTYPE *SetTranslateConstCallback )(
+ IXCLRDisassemblySupport * This,
+ /* [in] */ CDSTranslateConstCB cb);
+
+ HRESULT ( STDMETHODCALLTYPE *SetTranslateRegrelCallback )(
+ IXCLRDisassemblySupport * This,
+ /* [in] */ CDSTranslateRegrelCB cb);
+
+ BOOL ( STDMETHODCALLTYPE *TargetIsAddress )(
+ IXCLRDisassemblySupport * This);
+
+ END_INTERFACE
+ } IXCLRDisassemblySupportVtbl;
+
+ interface IXCLRDisassemblySupport
+ {
+ CONST_VTBL struct IXCLRDisassemblySupportVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IXCLRDisassemblySupport_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IXCLRDisassemblySupport_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IXCLRDisassemblySupport_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IXCLRDisassemblySupport_SetTranslateAddrCallback(This,cb) \
+ ( (This)->lpVtbl -> SetTranslateAddrCallback(This,cb) )
+
+#define IXCLRDisassemblySupport_PvClientSet(This,pv) \
+ ( (This)->lpVtbl -> PvClientSet(This,pv) )
+
+#define IXCLRDisassemblySupport_CbDisassemble(This,__MIDL__IXCLRDisassemblySupport0000,__MIDL__IXCLRDisassemblySupport0001,__MIDL__IXCLRDisassemblySupport0002) \
+ ( (This)->lpVtbl -> CbDisassemble(This,__MIDL__IXCLRDisassemblySupport0000,__MIDL__IXCLRDisassemblySupport0001,__MIDL__IXCLRDisassemblySupport0002) )
+
+#define IXCLRDisassemblySupport_Cinstruction(This) \
+ ( (This)->lpVtbl -> Cinstruction(This) )
+
+#define IXCLRDisassemblySupport_FSelectInstruction(This,__MIDL__IXCLRDisassemblySupport0003) \
+ ( (This)->lpVtbl -> FSelectInstruction(This,__MIDL__IXCLRDisassemblySupport0003) )
+
+#define IXCLRDisassemblySupport_CchFormatInstr(This,__MIDL__IXCLRDisassemblySupport0004,__MIDL__IXCLRDisassemblySupport0005) \
+ ( (This)->lpVtbl -> CchFormatInstr(This,__MIDL__IXCLRDisassemblySupport0004,__MIDL__IXCLRDisassemblySupport0005) )
+
+#define IXCLRDisassemblySupport_PvClient(This) \
+ ( (This)->lpVtbl -> PvClient(This) )
+
+#define IXCLRDisassemblySupport_SetTranslateFixupCallback(This,cb) \
+ ( (This)->lpVtbl -> SetTranslateFixupCallback(This,cb) )
+
+#define IXCLRDisassemblySupport_SetTranslateConstCallback(This,cb) \
+ ( (This)->lpVtbl -> SetTranslateConstCallback(This,cb) )
+
+#define IXCLRDisassemblySupport_SetTranslateRegrelCallback(This,cb) \
+ ( (This)->lpVtbl -> SetTranslateRegrelCallback(This,cb) )
+
+#define IXCLRDisassemblySupport_TargetIsAddress(This) \
+ ( (This)->lpVtbl -> TargetIsAddress(This) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IXCLRDisassemblySupport_INTERFACE_DEFINED__ */
+
+
+#ifndef __IXCLRDataDisplay_INTERFACE_DEFINED__
+#define __IXCLRDataDisplay_INTERFACE_DEFINED__
+
+/* interface IXCLRDataDisplay */
+/* [uuid][local][object] */
+
+
+EXTERN_C const IID IID_IXCLRDataDisplay;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("A3C1704A-4559-4a67-8D28-E8F4FE3B3F62")
+ IXCLRDataDisplay : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE ErrorPrintF(
+ const char *const fmt,
+ ...) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE NativeImageDimensions(
+ SIZE_T base,
+ SIZE_T size,
+ DWORD sectionAlign) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Section(
+ const char *const name,
+ SIZE_T rva,
+ SIZE_T size) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetDumpOptions(
+ /* [out] */ CLRNativeImageDumpOptions *pOptions) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StartDocument( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EndDocument( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StartCategory(
+ const char *const name) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EndCategory( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StartElement(
+ const char *const name) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EndElement( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StartVStructure(
+ const char *const name) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StartVStructureWithOffset(
+ const char *const name,
+ unsigned int fieldOffset,
+ unsigned int fieldSize) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EndVStructure( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StartTextElement(
+ const char *const name) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EndTextElement( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE WriteXmlText(
+ const char *const fmt,
+ ...) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE WriteXmlTextBlock(
+ const char *const fmt,
+ ...) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE WriteEmptyElement(
+ const char *const element) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE WriteElementPointer(
+ const char *const element,
+ SIZE_T ptr) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE WriteElementPointerAnnotated(
+ const char *const element,
+ SIZE_T ptr,
+ const WCHAR *const annotation) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE WriteElementAddress(
+ const char *const element,
+ SIZE_T base,
+ SIZE_T size) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE WriteElementAddressNamed(
+ const char *const element,
+ const char *const name,
+ SIZE_T base,
+ SIZE_T size) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE WriteElementAddressNamedW(
+ const char *const element,
+ const WCHAR *const name,
+ SIZE_T base,
+ SIZE_T size) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE WriteElementString(
+ const char *const element,
+ const char *const data) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE WriteElementStringW(
+ const char *const element,
+ const WCHAR *const data) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE WriteElementInt(
+ const char *const element,
+ int value) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE WriteElementUInt(
+ const char *const element,
+ DWORD value) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE WriteElementEnumerated(
+ const char *const element,
+ DWORD value,
+ const WCHAR *const mnemonic) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE WriteElementIntWithSuppress(
+ const char *const element,
+ int value,
+ int suppressIfEqual) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE WriteElementFlag(
+ const char *const element,
+ BOOL flag) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StartArray(
+ const char *const name,
+ const WCHAR *const fmt) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EndArray(
+ const char *const countPrefix) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StartList(
+ const WCHAR *const fmt) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EndList( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StartArrayWithOffset(
+ const char *const name,
+ unsigned int fieldOffset,
+ unsigned int fieldSize,
+ const WCHAR *const fmt) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE WriteFieldString(
+ const char *const element,
+ unsigned int fieldOffset,
+ unsigned int fieldSize,
+ const char *const data) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE WriteFieldStringW(
+ const char *const element,
+ unsigned int fieldOffset,
+ unsigned int fieldSize,
+ const WCHAR *const data) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE WriteFieldPointer(
+ const char *const element,
+ unsigned int fieldOffset,
+ unsigned int fieldSize,
+ SIZE_T ptr) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE WriteFieldPointerWithSize(
+ const char *const element,
+ unsigned int fieldOffset,
+ unsigned int fieldSize,
+ SIZE_T ptr,
+ SIZE_T size) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE WriteFieldInt(
+ const char *const element,
+ unsigned int fieldOffset,
+ unsigned int fieldSize,
+ int value) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE WriteFieldUInt(
+ const char *const element,
+ unsigned int fieldOffset,
+ unsigned int fieldSize,
+ DWORD value) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE WriteFieldEnumerated(
+ const char *const element,
+ unsigned int fieldOffset,
+ unsigned int fieldSize,
+ DWORD value,
+ const WCHAR *const mnemonic) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE WriteFieldEmpty(
+ const char *const element,
+ unsigned int fieldOffset,
+ unsigned int fieldSize) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE WriteFieldFlag(
+ const char *const element,
+ unsigned int fieldOffset,
+ unsigned int fieldSize,
+ BOOL flag) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE WriteFieldPointerAnnotated(
+ const char *const element,
+ unsigned int fieldOffset,
+ unsigned int fieldSize,
+ SIZE_T ptr,
+ const WCHAR *const annotation) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE WriteFieldAddress(
+ const char *const element,
+ unsigned int fieldOffset,
+ unsigned int fieldSize,
+ SIZE_T base,
+ SIZE_T size) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StartStructure(
+ const char *const name,
+ SIZE_T ptr,
+ SIZE_T size) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StartStructureWithNegSpace(
+ const char *const name,
+ SIZE_T ptr,
+ SIZE_T startPtr,
+ SIZE_T totalSize) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StartStructureWithOffset(
+ const char *const name,
+ unsigned int fieldOffset,
+ unsigned int fieldSize,
+ SIZE_T ptr,
+ SIZE_T size) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EndStructure( void) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IXCLRDataDisplayVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IXCLRDataDisplay * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IXCLRDataDisplay * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IXCLRDataDisplay * This);
+
+ HRESULT ( STDMETHODCALLTYPE *ErrorPrintF )(
+ IXCLRDataDisplay * This,
+ const char *const fmt,
+ ...);
+
+ HRESULT ( STDMETHODCALLTYPE *NativeImageDimensions )(
+ IXCLRDataDisplay * This,
+ SIZE_T base,
+ SIZE_T size,
+ DWORD sectionAlign);
+
+ HRESULT ( STDMETHODCALLTYPE *Section )(
+ IXCLRDataDisplay * This,
+ const char *const name,
+ SIZE_T rva,
+ SIZE_T size);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDumpOptions )(
+ IXCLRDataDisplay * This,
+ /* [out] */ CLRNativeImageDumpOptions *pOptions);
+
+ HRESULT ( STDMETHODCALLTYPE *StartDocument )(
+ IXCLRDataDisplay * This);
+
+ HRESULT ( STDMETHODCALLTYPE *EndDocument )(
+ IXCLRDataDisplay * This);
+
+ HRESULT ( STDMETHODCALLTYPE *StartCategory )(
+ IXCLRDataDisplay * This,
+ const char *const name);
+
+ HRESULT ( STDMETHODCALLTYPE *EndCategory )(
+ IXCLRDataDisplay * This);
+
+ HRESULT ( STDMETHODCALLTYPE *StartElement )(
+ IXCLRDataDisplay * This,
+ const char *const name);
+
+ HRESULT ( STDMETHODCALLTYPE *EndElement )(
+ IXCLRDataDisplay * This);
+
+ HRESULT ( STDMETHODCALLTYPE *StartVStructure )(
+ IXCLRDataDisplay * This,
+ const char *const name);
+
+ HRESULT ( STDMETHODCALLTYPE *StartVStructureWithOffset )(
+ IXCLRDataDisplay * This,
+ const char *const name,
+ unsigned int fieldOffset,
+ unsigned int fieldSize);
+
+ HRESULT ( STDMETHODCALLTYPE *EndVStructure )(
+ IXCLRDataDisplay * This);
+
+ HRESULT ( STDMETHODCALLTYPE *StartTextElement )(
+ IXCLRDataDisplay * This,
+ const char *const name);
+
+ HRESULT ( STDMETHODCALLTYPE *EndTextElement )(
+ IXCLRDataDisplay * This);
+
+ HRESULT ( STDMETHODCALLTYPE *WriteXmlText )(
+ IXCLRDataDisplay * This,
+ const char *const fmt,
+ ...);
+
+ HRESULT ( STDMETHODCALLTYPE *WriteXmlTextBlock )(
+ IXCLRDataDisplay * This,
+ const char *const fmt,
+ ...);
+
+ HRESULT ( STDMETHODCALLTYPE *WriteEmptyElement )(
+ IXCLRDataDisplay * This,
+ const char *const element);
+
+ HRESULT ( STDMETHODCALLTYPE *WriteElementPointer )(
+ IXCLRDataDisplay * This,
+ const char *const element,
+ SIZE_T ptr);
+
+ HRESULT ( STDMETHODCALLTYPE *WriteElementPointerAnnotated )(
+ IXCLRDataDisplay * This,
+ const char *const element,
+ SIZE_T ptr,
+ const WCHAR *const annotation);
+
+ HRESULT ( STDMETHODCALLTYPE *WriteElementAddress )(
+ IXCLRDataDisplay * This,
+ const char *const element,
+ SIZE_T base,
+ SIZE_T size);
+
+ HRESULT ( STDMETHODCALLTYPE *WriteElementAddressNamed )(
+ IXCLRDataDisplay * This,
+ const char *const element,
+ const char *const name,
+ SIZE_T base,
+ SIZE_T size);
+
+ HRESULT ( STDMETHODCALLTYPE *WriteElementAddressNamedW )(
+ IXCLRDataDisplay * This,
+ const char *const element,
+ const WCHAR *const name,
+ SIZE_T base,
+ SIZE_T size);
+
+ HRESULT ( STDMETHODCALLTYPE *WriteElementString )(
+ IXCLRDataDisplay * This,
+ const char *const element,
+ const char *const data);
+
+ HRESULT ( STDMETHODCALLTYPE *WriteElementStringW )(
+ IXCLRDataDisplay * This,
+ const char *const element,
+ const WCHAR *const data);
+
+ HRESULT ( STDMETHODCALLTYPE *WriteElementInt )(
+ IXCLRDataDisplay * This,
+ const char *const element,
+ int value);
+
+ HRESULT ( STDMETHODCALLTYPE *WriteElementUInt )(
+ IXCLRDataDisplay * This,
+ const char *const element,
+ DWORD value);
+
+ HRESULT ( STDMETHODCALLTYPE *WriteElementEnumerated )(
+ IXCLRDataDisplay * This,
+ const char *const element,
+ DWORD value,
+ const WCHAR *const mnemonic);
+
+ HRESULT ( STDMETHODCALLTYPE *WriteElementIntWithSuppress )(
+ IXCLRDataDisplay * This,
+ const char *const element,
+ int value,
+ int suppressIfEqual);
+
+ HRESULT ( STDMETHODCALLTYPE *WriteElementFlag )(
+ IXCLRDataDisplay * This,
+ const char *const element,
+ BOOL flag);
+
+ HRESULT ( STDMETHODCALLTYPE *StartArray )(
+ IXCLRDataDisplay * This,
+ const char *const name,
+ const WCHAR *const fmt);
+
+ HRESULT ( STDMETHODCALLTYPE *EndArray )(
+ IXCLRDataDisplay * This,
+ const char *const countPrefix);
+
+ HRESULT ( STDMETHODCALLTYPE *StartList )(
+ IXCLRDataDisplay * This,
+ const WCHAR *const fmt);
+
+ HRESULT ( STDMETHODCALLTYPE *EndList )(
+ IXCLRDataDisplay * This);
+
+ HRESULT ( STDMETHODCALLTYPE *StartArrayWithOffset )(
+ IXCLRDataDisplay * This,
+ const char *const name,
+ unsigned int fieldOffset,
+ unsigned int fieldSize,
+ const WCHAR *const fmt);
+
+ HRESULT ( STDMETHODCALLTYPE *WriteFieldString )(
+ IXCLRDataDisplay * This,
+ const char *const element,
+ unsigned int fieldOffset,
+ unsigned int fieldSize,
+ const char *const data);
+
+ HRESULT ( STDMETHODCALLTYPE *WriteFieldStringW )(
+ IXCLRDataDisplay * This,
+ const char *const element,
+ unsigned int fieldOffset,
+ unsigned int fieldSize,
+ const WCHAR *const data);
+
+ HRESULT ( STDMETHODCALLTYPE *WriteFieldPointer )(
+ IXCLRDataDisplay * This,
+ const char *const element,
+ unsigned int fieldOffset,
+ unsigned int fieldSize,
+ SIZE_T ptr);
+
+ HRESULT ( STDMETHODCALLTYPE *WriteFieldPointerWithSize )(
+ IXCLRDataDisplay * This,
+ const char *const element,
+ unsigned int fieldOffset,
+ unsigned int fieldSize,
+ SIZE_T ptr,
+ SIZE_T size);
+
+ HRESULT ( STDMETHODCALLTYPE *WriteFieldInt )(
+ IXCLRDataDisplay * This,
+ const char *const element,
+ unsigned int fieldOffset,
+ unsigned int fieldSize,
+ int value);
+
+ HRESULT ( STDMETHODCALLTYPE *WriteFieldUInt )(
+ IXCLRDataDisplay * This,
+ const char *const element,
+ unsigned int fieldOffset,
+ unsigned int fieldSize,
+ DWORD value);
+
+ HRESULT ( STDMETHODCALLTYPE *WriteFieldEnumerated )(
+ IXCLRDataDisplay * This,
+ const char *const element,
+ unsigned int fieldOffset,
+ unsigned int fieldSize,
+ DWORD value,
+ const WCHAR *const mnemonic);
+
+ HRESULT ( STDMETHODCALLTYPE *WriteFieldEmpty )(
+ IXCLRDataDisplay * This,
+ const char *const element,
+ unsigned int fieldOffset,
+ unsigned int fieldSize);
+
+ HRESULT ( STDMETHODCALLTYPE *WriteFieldFlag )(
+ IXCLRDataDisplay * This,
+ const char *const element,
+ unsigned int fieldOffset,
+ unsigned int fieldSize,
+ BOOL flag);
+
+ HRESULT ( STDMETHODCALLTYPE *WriteFieldPointerAnnotated )(
+ IXCLRDataDisplay * This,
+ const char *const element,
+ unsigned int fieldOffset,
+ unsigned int fieldSize,
+ SIZE_T ptr,
+ const WCHAR *const annotation);
+
+ HRESULT ( STDMETHODCALLTYPE *WriteFieldAddress )(
+ IXCLRDataDisplay * This,
+ const char *const element,
+ unsigned int fieldOffset,
+ unsigned int fieldSize,
+ SIZE_T base,
+ SIZE_T size);
+
+ HRESULT ( STDMETHODCALLTYPE *StartStructure )(
+ IXCLRDataDisplay * This,
+ const char *const name,
+ SIZE_T ptr,
+ SIZE_T size);
+
+ HRESULT ( STDMETHODCALLTYPE *StartStructureWithNegSpace )(
+ IXCLRDataDisplay * This,
+ const char *const name,
+ SIZE_T ptr,
+ SIZE_T startPtr,
+ SIZE_T totalSize);
+
+ HRESULT ( STDMETHODCALLTYPE *StartStructureWithOffset )(
+ IXCLRDataDisplay * This,
+ const char *const name,
+ unsigned int fieldOffset,
+ unsigned int fieldSize,
+ SIZE_T ptr,
+ SIZE_T size);
+
+ HRESULT ( STDMETHODCALLTYPE *EndStructure )(
+ IXCLRDataDisplay * This);
+
+ END_INTERFACE
+ } IXCLRDataDisplayVtbl;
+
+ interface IXCLRDataDisplay
+ {
+ CONST_VTBL struct IXCLRDataDisplayVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IXCLRDataDisplay_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IXCLRDataDisplay_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IXCLRDataDisplay_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IXCLRDataDisplay_ErrorPrintF(This,fmt,...) \
+ ( (This)->lpVtbl -> ErrorPrintF(This,fmt,...) )
+
+#define IXCLRDataDisplay_NativeImageDimensions(This,base,size,sectionAlign) \
+ ( (This)->lpVtbl -> NativeImageDimensions(This,base,size,sectionAlign) )
+
+#define IXCLRDataDisplay_Section(This,name,rva,size) \
+ ( (This)->lpVtbl -> Section(This,name,rva,size) )
+
+#define IXCLRDataDisplay_GetDumpOptions(This,pOptions) \
+ ( (This)->lpVtbl -> GetDumpOptions(This,pOptions) )
+
+#define IXCLRDataDisplay_StartDocument(This) \
+ ( (This)->lpVtbl -> StartDocument(This) )
+
+#define IXCLRDataDisplay_EndDocument(This) \
+ ( (This)->lpVtbl -> EndDocument(This) )
+
+#define IXCLRDataDisplay_StartCategory(This,name) \
+ ( (This)->lpVtbl -> StartCategory(This,name) )
+
+#define IXCLRDataDisplay_EndCategory(This) \
+ ( (This)->lpVtbl -> EndCategory(This) )
+
+#define IXCLRDataDisplay_StartElement(This,name) \
+ ( (This)->lpVtbl -> StartElement(This,name) )
+
+#define IXCLRDataDisplay_EndElement(This) \
+ ( (This)->lpVtbl -> EndElement(This) )
+
+#define IXCLRDataDisplay_StartVStructure(This,name) \
+ ( (This)->lpVtbl -> StartVStructure(This,name) )
+
+#define IXCLRDataDisplay_StartVStructureWithOffset(This,name,fieldOffset,fieldSize) \
+ ( (This)->lpVtbl -> StartVStructureWithOffset(This,name,fieldOffset,fieldSize) )
+
+#define IXCLRDataDisplay_EndVStructure(This) \
+ ( (This)->lpVtbl -> EndVStructure(This) )
+
+#define IXCLRDataDisplay_StartTextElement(This,name) \
+ ( (This)->lpVtbl -> StartTextElement(This,name) )
+
+#define IXCLRDataDisplay_EndTextElement(This) \
+ ( (This)->lpVtbl -> EndTextElement(This) )
+
+#define IXCLRDataDisplay_WriteXmlText(This,fmt,...) \
+ ( (This)->lpVtbl -> WriteXmlText(This,fmt,...) )
+
+#define IXCLRDataDisplay_WriteXmlTextBlock(This,fmt,...) \
+ ( (This)->lpVtbl -> WriteXmlTextBlock(This,fmt,...) )
+
+#define IXCLRDataDisplay_WriteEmptyElement(This,element) \
+ ( (This)->lpVtbl -> WriteEmptyElement(This,element) )
+
+#define IXCLRDataDisplay_WriteElementPointer(This,element,ptr) \
+ ( (This)->lpVtbl -> WriteElementPointer(This,element,ptr) )
+
+#define IXCLRDataDisplay_WriteElementPointerAnnotated(This,element,ptr,annotation) \
+ ( (This)->lpVtbl -> WriteElementPointerAnnotated(This,element,ptr,annotation) )
+
+#define IXCLRDataDisplay_WriteElementAddress(This,element,base,size) \
+ ( (This)->lpVtbl -> WriteElementAddress(This,element,base,size) )
+
+#define IXCLRDataDisplay_WriteElementAddressNamed(This,element,name,base,size) \
+ ( (This)->lpVtbl -> WriteElementAddressNamed(This,element,name,base,size) )
+
+#define IXCLRDataDisplay_WriteElementAddressNamedW(This,element,name,base,size) \
+ ( (This)->lpVtbl -> WriteElementAddressNamedW(This,element,name,base,size) )
+
+#define IXCLRDataDisplay_WriteElementString(This,element,data) \
+ ( (This)->lpVtbl -> WriteElementString(This,element,data) )
+
+#define IXCLRDataDisplay_WriteElementStringW(This,element,data) \
+ ( (This)->lpVtbl -> WriteElementStringW(This,element,data) )
+
+#define IXCLRDataDisplay_WriteElementInt(This,element,value) \
+ ( (This)->lpVtbl -> WriteElementInt(This,element,value) )
+
+#define IXCLRDataDisplay_WriteElementUInt(This,element,value) \
+ ( (This)->lpVtbl -> WriteElementUInt(This,element,value) )
+
+#define IXCLRDataDisplay_WriteElementEnumerated(This,element,value,mnemonic) \
+ ( (This)->lpVtbl -> WriteElementEnumerated(This,element,value,mnemonic) )
+
+#define IXCLRDataDisplay_WriteElementIntWithSuppress(This,element,value,suppressIfEqual) \
+ ( (This)->lpVtbl -> WriteElementIntWithSuppress(This,element,value,suppressIfEqual) )
+
+#define IXCLRDataDisplay_WriteElementFlag(This,element,flag) \
+ ( (This)->lpVtbl -> WriteElementFlag(This,element,flag) )
+
+#define IXCLRDataDisplay_StartArray(This,name,fmt) \
+ ( (This)->lpVtbl -> StartArray(This,name,fmt) )
+
+#define IXCLRDataDisplay_EndArray(This,countPrefix) \
+ ( (This)->lpVtbl -> EndArray(This,countPrefix) )
+
+#define IXCLRDataDisplay_StartList(This,fmt) \
+ ( (This)->lpVtbl -> StartList(This,fmt) )
+
+#define IXCLRDataDisplay_EndList(This) \
+ ( (This)->lpVtbl -> EndList(This) )
+
+#define IXCLRDataDisplay_StartArrayWithOffset(This,name,fieldOffset,fieldSize,fmt) \
+ ( (This)->lpVtbl -> StartArrayWithOffset(This,name,fieldOffset,fieldSize,fmt) )
+
+#define IXCLRDataDisplay_WriteFieldString(This,element,fieldOffset,fieldSize,data) \
+ ( (This)->lpVtbl -> WriteFieldString(This,element,fieldOffset,fieldSize,data) )
+
+#define IXCLRDataDisplay_WriteFieldStringW(This,element,fieldOffset,fieldSize,data) \
+ ( (This)->lpVtbl -> WriteFieldStringW(This,element,fieldOffset,fieldSize,data) )
+
+#define IXCLRDataDisplay_WriteFieldPointer(This,element,fieldOffset,fieldSize,ptr) \
+ ( (This)->lpVtbl -> WriteFieldPointer(This,element,fieldOffset,fieldSize,ptr) )
+
+#define IXCLRDataDisplay_WriteFieldPointerWithSize(This,element,fieldOffset,fieldSize,ptr,size) \
+ ( (This)->lpVtbl -> WriteFieldPointerWithSize(This,element,fieldOffset,fieldSize,ptr,size) )
+
+#define IXCLRDataDisplay_WriteFieldInt(This,element,fieldOffset,fieldSize,value) \
+ ( (This)->lpVtbl -> WriteFieldInt(This,element,fieldOffset,fieldSize,value) )
+
+#define IXCLRDataDisplay_WriteFieldUInt(This,element,fieldOffset,fieldSize,value) \
+ ( (This)->lpVtbl -> WriteFieldUInt(This,element,fieldOffset,fieldSize,value) )
+
+#define IXCLRDataDisplay_WriteFieldEnumerated(This,element,fieldOffset,fieldSize,value,mnemonic) \
+ ( (This)->lpVtbl -> WriteFieldEnumerated(This,element,fieldOffset,fieldSize,value,mnemonic) )
+
+#define IXCLRDataDisplay_WriteFieldEmpty(This,element,fieldOffset,fieldSize) \
+ ( (This)->lpVtbl -> WriteFieldEmpty(This,element,fieldOffset,fieldSize) )
+
+#define IXCLRDataDisplay_WriteFieldFlag(This,element,fieldOffset,fieldSize,flag) \
+ ( (This)->lpVtbl -> WriteFieldFlag(This,element,fieldOffset,fieldSize,flag) )
+
+#define IXCLRDataDisplay_WriteFieldPointerAnnotated(This,element,fieldOffset,fieldSize,ptr,annotation) \
+ ( (This)->lpVtbl -> WriteFieldPointerAnnotated(This,element,fieldOffset,fieldSize,ptr,annotation) )
+
+#define IXCLRDataDisplay_WriteFieldAddress(This,element,fieldOffset,fieldSize,base,size) \
+ ( (This)->lpVtbl -> WriteFieldAddress(This,element,fieldOffset,fieldSize,base,size) )
+
+#define IXCLRDataDisplay_StartStructure(This,name,ptr,size) \
+ ( (This)->lpVtbl -> StartStructure(This,name,ptr,size) )
+
+#define IXCLRDataDisplay_StartStructureWithNegSpace(This,name,ptr,startPtr,totalSize) \
+ ( (This)->lpVtbl -> StartStructureWithNegSpace(This,name,ptr,startPtr,totalSize) )
+
+#define IXCLRDataDisplay_StartStructureWithOffset(This,name,fieldOffset,fieldSize,ptr,size) \
+ ( (This)->lpVtbl -> StartStructureWithOffset(This,name,fieldOffset,fieldSize,ptr,size) )
+
+#define IXCLRDataDisplay_EndStructure(This) \
+ ( (This)->lpVtbl -> EndStructure(This) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IXCLRDataDisplay_INTERFACE_DEFINED__ */
+
+
+#ifndef __IXCLRDataProcess_INTERFACE_DEFINED__
+#define __IXCLRDataProcess_INTERFACE_DEFINED__
+
+/* interface IXCLRDataProcess */
+/* [uuid][local][object] */
+
+
+EXTERN_C const IID IID_IXCLRDataProcess;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("5c552ab6-fc09-4cb3-8e36-22fa03c798b7")
+ IXCLRDataProcess : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE Flush( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StartEnumTasks(
+ /* [out] */ CLRDATA_ENUM *handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumTask(
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataTask **task) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EndEnumTasks(
+ /* [in] */ CLRDATA_ENUM handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetTaskByOSThreadID(
+ /* [in] */ ULONG32 osThreadID,
+ /* [out] */ IXCLRDataTask **task) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetTaskByUniqueID(
+ /* [in] */ ULONG64 taskID,
+ /* [out] */ IXCLRDataTask **task) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetFlags(
+ /* [out] */ ULONG32 *flags) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE IsSameObject(
+ /* [in] */ IXCLRDataProcess *process) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetManagedObject(
+ /* [out] */ IXCLRDataValue **value) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetDesiredExecutionState(
+ /* [out] */ ULONG32 *state) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetDesiredExecutionState(
+ /* [in] */ ULONG32 state) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetAddressType(
+ /* [in] */ CLRDATA_ADDRESS address,
+ /* [out] */ CLRDataAddressType *type) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetRuntimeNameByAddress(
+ /* [in] */ CLRDATA_ADDRESS address,
+ /* [in] */ ULONG32 flags,
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR nameBuf[ ],
+ /* [out] */ CLRDATA_ADDRESS *displacement) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StartEnumAppDomains(
+ /* [out] */ CLRDATA_ENUM *handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumAppDomain(
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataAppDomain **appDomain) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EndEnumAppDomains(
+ /* [in] */ CLRDATA_ENUM handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetAppDomainByUniqueID(
+ /* [in] */ ULONG64 id,
+ /* [out] */ IXCLRDataAppDomain **appDomain) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StartEnumAssemblies(
+ /* [out] */ CLRDATA_ENUM *handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumAssembly(
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataAssembly **assembly) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EndEnumAssemblies(
+ /* [in] */ CLRDATA_ENUM handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StartEnumModules(
+ /* [out] */ CLRDATA_ENUM *handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumModule(
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataModule **mod) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EndEnumModules(
+ /* [in] */ CLRDATA_ENUM handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetModuleByAddress(
+ /* [in] */ CLRDATA_ADDRESS address,
+ /* [out] */ IXCLRDataModule **mod) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StartEnumMethodInstancesByAddress(
+ /* [in] */ CLRDATA_ADDRESS address,
+ /* [in] */ IXCLRDataAppDomain *appDomain,
+ /* [out] */ CLRDATA_ENUM *handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumMethodInstanceByAddress(
+ /* [in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataMethodInstance **method) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EndEnumMethodInstancesByAddress(
+ /* [in] */ CLRDATA_ENUM handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetDataByAddress(
+ /* [in] */ CLRDATA_ADDRESS address,
+ /* [in] */ ULONG32 flags,
+ /* [in] */ IXCLRDataAppDomain *appDomain,
+ /* [in] */ IXCLRDataTask *tlsTask,
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR nameBuf[ ],
+ /* [out] */ IXCLRDataValue **value,
+ /* [out] */ CLRDATA_ADDRESS *displacement) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetExceptionStateByExceptionRecord(
+ /* [in] */ EXCEPTION_RECORD64 *record,
+ /* [out] */ IXCLRDataExceptionState **exState) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE TranslateExceptionRecordToNotification(
+ /* [in] */ EXCEPTION_RECORD64 *record,
+ /* [in] */ IXCLRDataExceptionNotification *notify) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Request(
+ /* [in] */ ULONG32 reqCode,
+ /* [in] */ ULONG32 inBufferSize,
+ /* [size_is][in] */ BYTE *inBuffer,
+ /* [in] */ ULONG32 outBufferSize,
+ /* [size_is][out] */ BYTE *outBuffer) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateMemoryValue(
+ /* [in] */ IXCLRDataAppDomain *appDomain,
+ /* [in] */ IXCLRDataTask *tlsTask,
+ /* [in] */ IXCLRDataTypeInstance *type,
+ /* [in] */ CLRDATA_ADDRESS addr,
+ /* [out] */ IXCLRDataValue **value) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetAllTypeNotifications(
+ IXCLRDataModule *mod,
+ ULONG32 flags) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetAllCodeNotifications(
+ IXCLRDataModule *mod,
+ ULONG32 flags) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetTypeNotifications(
+ /* [in] */ ULONG32 numTokens,
+ /* [size_is][in] */ IXCLRDataModule *mods[ ],
+ /* [in] */ IXCLRDataModule *singleMod,
+ /* [size_is][in] */ mdTypeDef tokens[ ],
+ /* [size_is][out] */ ULONG32 flags[ ]) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetTypeNotifications(
+ /* [in] */ ULONG32 numTokens,
+ /* [size_is][in] */ IXCLRDataModule *mods[ ],
+ /* [in] */ IXCLRDataModule *singleMod,
+ /* [size_is][in] */ mdTypeDef tokens[ ],
+ /* [size_is][in] */ ULONG32 flags[ ],
+ /* [in] */ ULONG32 singleFlags) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetCodeNotifications(
+ /* [in] */ ULONG32 numTokens,
+ /* [size_is][in] */ IXCLRDataModule *mods[ ],
+ /* [in] */ IXCLRDataModule *singleMod,
+ /* [size_is][in] */ mdMethodDef tokens[ ],
+ /* [size_is][out] */ ULONG32 flags[ ]) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetCodeNotifications(
+ /* [in] */ ULONG32 numTokens,
+ /* [size_is][in] */ IXCLRDataModule *mods[ ],
+ /* [in] */ IXCLRDataModule *singleMod,
+ /* [size_is][in] */ mdMethodDef tokens[ ],
+ /* [size_is][in] */ ULONG32 flags[ ],
+ /* [in] */ ULONG32 singleFlags) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetOtherNotificationFlags(
+ /* [out] */ ULONG32 *flags) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetOtherNotificationFlags(
+ /* [in] */ ULONG32 flags) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StartEnumMethodDefinitionsByAddress(
+ /* [in] */ CLRDATA_ADDRESS address,
+ /* [out] */ CLRDATA_ENUM *handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumMethodDefinitionByAddress(
+ /* [in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataMethodDefinition **method) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EndEnumMethodDefinitionsByAddress(
+ /* [in] */ CLRDATA_ENUM handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE FollowStub(
+ /* [in] */ ULONG32 inFlags,
+ /* [in] */ CLRDATA_ADDRESS inAddr,
+ /* [in] */ CLRDATA_FOLLOW_STUB_BUFFER *inBuffer,
+ /* [out] */ CLRDATA_ADDRESS *outAddr,
+ /* [out] */ CLRDATA_FOLLOW_STUB_BUFFER *outBuffer,
+ /* [out] */ ULONG32 *outFlags) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE FollowStub2(
+ /* [in] */ IXCLRDataTask *task,
+ /* [in] */ ULONG32 inFlags,
+ /* [in] */ CLRDATA_ADDRESS inAddr,
+ /* [in] */ CLRDATA_FOLLOW_STUB_BUFFER *inBuffer,
+ /* [out] */ CLRDATA_ADDRESS *outAddr,
+ /* [out] */ CLRDATA_FOLLOW_STUB_BUFFER *outBuffer,
+ /* [out] */ ULONG32 *outFlags) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE DumpNativeImage(
+ /* [in] */ CLRDATA_ADDRESS loadedBase,
+ /* [in] */ LPCWSTR name,
+ /* [in] */ IXCLRDataDisplay *display,
+ /* [in] */ IXCLRLibrarySupport *libSupport,
+ /* [in] */ IXCLRDisassemblySupport *dis) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IXCLRDataProcessVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IXCLRDataProcess * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IXCLRDataProcess * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IXCLRDataProcess * This);
+
+ HRESULT ( STDMETHODCALLTYPE *Flush )(
+ IXCLRDataProcess * This);
+
+ HRESULT ( STDMETHODCALLTYPE *StartEnumTasks )(
+ IXCLRDataProcess * This,
+ /* [out] */ CLRDATA_ENUM *handle);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumTask )(
+ IXCLRDataProcess * This,
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataTask **task);
+
+ HRESULT ( STDMETHODCALLTYPE *EndEnumTasks )(
+ IXCLRDataProcess * This,
+ /* [in] */ CLRDATA_ENUM handle);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTaskByOSThreadID )(
+ IXCLRDataProcess * This,
+ /* [in] */ ULONG32 osThreadID,
+ /* [out] */ IXCLRDataTask **task);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTaskByUniqueID )(
+ IXCLRDataProcess * This,
+ /* [in] */ ULONG64 taskID,
+ /* [out] */ IXCLRDataTask **task);
+
+ HRESULT ( STDMETHODCALLTYPE *GetFlags )(
+ IXCLRDataProcess * This,
+ /* [out] */ ULONG32 *flags);
+
+ HRESULT ( STDMETHODCALLTYPE *IsSameObject )(
+ IXCLRDataProcess * This,
+ /* [in] */ IXCLRDataProcess *process);
+
+ HRESULT ( STDMETHODCALLTYPE *GetManagedObject )(
+ IXCLRDataProcess * This,
+ /* [out] */ IXCLRDataValue **value);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDesiredExecutionState )(
+ IXCLRDataProcess * This,
+ /* [out] */ ULONG32 *state);
+
+ HRESULT ( STDMETHODCALLTYPE *SetDesiredExecutionState )(
+ IXCLRDataProcess * This,
+ /* [in] */ ULONG32 state);
+
+ HRESULT ( STDMETHODCALLTYPE *GetAddressType )(
+ IXCLRDataProcess * This,
+ /* [in] */ CLRDATA_ADDRESS address,
+ /* [out] */ CLRDataAddressType *type);
+
+ HRESULT ( STDMETHODCALLTYPE *GetRuntimeNameByAddress )(
+ IXCLRDataProcess * This,
+ /* [in] */ CLRDATA_ADDRESS address,
+ /* [in] */ ULONG32 flags,
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR nameBuf[ ],
+ /* [out] */ CLRDATA_ADDRESS *displacement);
+
+ HRESULT ( STDMETHODCALLTYPE *StartEnumAppDomains )(
+ IXCLRDataProcess * This,
+ /* [out] */ CLRDATA_ENUM *handle);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumAppDomain )(
+ IXCLRDataProcess * This,
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataAppDomain **appDomain);
+
+ HRESULT ( STDMETHODCALLTYPE *EndEnumAppDomains )(
+ IXCLRDataProcess * This,
+ /* [in] */ CLRDATA_ENUM handle);
+
+ HRESULT ( STDMETHODCALLTYPE *GetAppDomainByUniqueID )(
+ IXCLRDataProcess * This,
+ /* [in] */ ULONG64 id,
+ /* [out] */ IXCLRDataAppDomain **appDomain);
+
+ HRESULT ( STDMETHODCALLTYPE *StartEnumAssemblies )(
+ IXCLRDataProcess * This,
+ /* [out] */ CLRDATA_ENUM *handle);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumAssembly )(
+ IXCLRDataProcess * This,
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataAssembly **assembly);
+
+ HRESULT ( STDMETHODCALLTYPE *EndEnumAssemblies )(
+ IXCLRDataProcess * This,
+ /* [in] */ CLRDATA_ENUM handle);
+
+ HRESULT ( STDMETHODCALLTYPE *StartEnumModules )(
+ IXCLRDataProcess * This,
+ /* [out] */ CLRDATA_ENUM *handle);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumModule )(
+ IXCLRDataProcess * This,
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataModule **mod);
+
+ HRESULT ( STDMETHODCALLTYPE *EndEnumModules )(
+ IXCLRDataProcess * This,
+ /* [in] */ CLRDATA_ENUM handle);
+
+ HRESULT ( STDMETHODCALLTYPE *GetModuleByAddress )(
+ IXCLRDataProcess * This,
+ /* [in] */ CLRDATA_ADDRESS address,
+ /* [out] */ IXCLRDataModule **mod);
+
+ HRESULT ( STDMETHODCALLTYPE *StartEnumMethodInstancesByAddress )(
+ IXCLRDataProcess * This,
+ /* [in] */ CLRDATA_ADDRESS address,
+ /* [in] */ IXCLRDataAppDomain *appDomain,
+ /* [out] */ CLRDATA_ENUM *handle);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumMethodInstanceByAddress )(
+ IXCLRDataProcess * This,
+ /* [in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataMethodInstance **method);
+
+ HRESULT ( STDMETHODCALLTYPE *EndEnumMethodInstancesByAddress )(
+ IXCLRDataProcess * This,
+ /* [in] */ CLRDATA_ENUM handle);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDataByAddress )(
+ IXCLRDataProcess * This,
+ /* [in] */ CLRDATA_ADDRESS address,
+ /* [in] */ ULONG32 flags,
+ /* [in] */ IXCLRDataAppDomain *appDomain,
+ /* [in] */ IXCLRDataTask *tlsTask,
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR nameBuf[ ],
+ /* [out] */ IXCLRDataValue **value,
+ /* [out] */ CLRDATA_ADDRESS *displacement);
+
+ HRESULT ( STDMETHODCALLTYPE *GetExceptionStateByExceptionRecord )(
+ IXCLRDataProcess * This,
+ /* [in] */ EXCEPTION_RECORD64 *record,
+ /* [out] */ IXCLRDataExceptionState **exState);
+
+ HRESULT ( STDMETHODCALLTYPE *TranslateExceptionRecordToNotification )(
+ IXCLRDataProcess * This,
+ /* [in] */ EXCEPTION_RECORD64 *record,
+ /* [in] */ IXCLRDataExceptionNotification *notify);
+
+ HRESULT ( STDMETHODCALLTYPE *Request )(
+ IXCLRDataProcess * This,
+ /* [in] */ ULONG32 reqCode,
+ /* [in] */ ULONG32 inBufferSize,
+ /* [size_is][in] */ BYTE *inBuffer,
+ /* [in] */ ULONG32 outBufferSize,
+ /* [size_is][out] */ BYTE *outBuffer);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateMemoryValue )(
+ IXCLRDataProcess * This,
+ /* [in] */ IXCLRDataAppDomain *appDomain,
+ /* [in] */ IXCLRDataTask *tlsTask,
+ /* [in] */ IXCLRDataTypeInstance *type,
+ /* [in] */ CLRDATA_ADDRESS addr,
+ /* [out] */ IXCLRDataValue **value);
+
+ HRESULT ( STDMETHODCALLTYPE *SetAllTypeNotifications )(
+ IXCLRDataProcess * This,
+ IXCLRDataModule *mod,
+ ULONG32 flags);
+
+ HRESULT ( STDMETHODCALLTYPE *SetAllCodeNotifications )(
+ IXCLRDataProcess * This,
+ IXCLRDataModule *mod,
+ ULONG32 flags);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeNotifications )(
+ IXCLRDataProcess * This,
+ /* [in] */ ULONG32 numTokens,
+ /* [size_is][in] */ IXCLRDataModule *mods[ ],
+ /* [in] */ IXCLRDataModule *singleMod,
+ /* [size_is][in] */ mdTypeDef tokens[ ],
+ /* [size_is][out] */ ULONG32 flags[ ]);
+
+ HRESULT ( STDMETHODCALLTYPE *SetTypeNotifications )(
+ IXCLRDataProcess * This,
+ /* [in] */ ULONG32 numTokens,
+ /* [size_is][in] */ IXCLRDataModule *mods[ ],
+ /* [in] */ IXCLRDataModule *singleMod,
+ /* [size_is][in] */ mdTypeDef tokens[ ],
+ /* [size_is][in] */ ULONG32 flags[ ],
+ /* [in] */ ULONG32 singleFlags);
+
+ HRESULT ( STDMETHODCALLTYPE *GetCodeNotifications )(
+ IXCLRDataProcess * This,
+ /* [in] */ ULONG32 numTokens,
+ /* [size_is][in] */ IXCLRDataModule *mods[ ],
+ /* [in] */ IXCLRDataModule *singleMod,
+ /* [size_is][in] */ mdMethodDef tokens[ ],
+ /* [size_is][out] */ ULONG32 flags[ ]);
+
+ HRESULT ( STDMETHODCALLTYPE *SetCodeNotifications )(
+ IXCLRDataProcess * This,
+ /* [in] */ ULONG32 numTokens,
+ /* [size_is][in] */ IXCLRDataModule *mods[ ],
+ /* [in] */ IXCLRDataModule *singleMod,
+ /* [size_is][in] */ mdMethodDef tokens[ ],
+ /* [size_is][in] */ ULONG32 flags[ ],
+ /* [in] */ ULONG32 singleFlags);
+
+ HRESULT ( STDMETHODCALLTYPE *GetOtherNotificationFlags )(
+ IXCLRDataProcess * This,
+ /* [out] */ ULONG32 *flags);
+
+ HRESULT ( STDMETHODCALLTYPE *SetOtherNotificationFlags )(
+ IXCLRDataProcess * This,
+ /* [in] */ ULONG32 flags);
+
+ HRESULT ( STDMETHODCALLTYPE *StartEnumMethodDefinitionsByAddress )(
+ IXCLRDataProcess * This,
+ /* [in] */ CLRDATA_ADDRESS address,
+ /* [out] */ CLRDATA_ENUM *handle);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumMethodDefinitionByAddress )(
+ IXCLRDataProcess * This,
+ /* [in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataMethodDefinition **method);
+
+ HRESULT ( STDMETHODCALLTYPE *EndEnumMethodDefinitionsByAddress )(
+ IXCLRDataProcess * This,
+ /* [in] */ CLRDATA_ENUM handle);
+
+ HRESULT ( STDMETHODCALLTYPE *FollowStub )(
+ IXCLRDataProcess * This,
+ /* [in] */ ULONG32 inFlags,
+ /* [in] */ CLRDATA_ADDRESS inAddr,
+ /* [in] */ CLRDATA_FOLLOW_STUB_BUFFER *inBuffer,
+ /* [out] */ CLRDATA_ADDRESS *outAddr,
+ /* [out] */ CLRDATA_FOLLOW_STUB_BUFFER *outBuffer,
+ /* [out] */ ULONG32 *outFlags);
+
+ HRESULT ( STDMETHODCALLTYPE *FollowStub2 )(
+ IXCLRDataProcess * This,
+ /* [in] */ IXCLRDataTask *task,
+ /* [in] */ ULONG32 inFlags,
+ /* [in] */ CLRDATA_ADDRESS inAddr,
+ /* [in] */ CLRDATA_FOLLOW_STUB_BUFFER *inBuffer,
+ /* [out] */ CLRDATA_ADDRESS *outAddr,
+ /* [out] */ CLRDATA_FOLLOW_STUB_BUFFER *outBuffer,
+ /* [out] */ ULONG32 *outFlags);
+
+ HRESULT ( STDMETHODCALLTYPE *DumpNativeImage )(
+ IXCLRDataProcess * This,
+ /* [in] */ CLRDATA_ADDRESS loadedBase,
+ /* [in] */ LPCWSTR name,
+ /* [in] */ IXCLRDataDisplay *display,
+ /* [in] */ IXCLRLibrarySupport *libSupport,
+ /* [in] */ IXCLRDisassemblySupport *dis);
+
+ END_INTERFACE
+ } IXCLRDataProcessVtbl;
+
+ interface IXCLRDataProcess
+ {
+ CONST_VTBL struct IXCLRDataProcessVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IXCLRDataProcess_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IXCLRDataProcess_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IXCLRDataProcess_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IXCLRDataProcess_Flush(This) \
+ ( (This)->lpVtbl -> Flush(This) )
+
+#define IXCLRDataProcess_StartEnumTasks(This,handle) \
+ ( (This)->lpVtbl -> StartEnumTasks(This,handle) )
+
+#define IXCLRDataProcess_EnumTask(This,handle,task) \
+ ( (This)->lpVtbl -> EnumTask(This,handle,task) )
+
+#define IXCLRDataProcess_EndEnumTasks(This,handle) \
+ ( (This)->lpVtbl -> EndEnumTasks(This,handle) )
+
+#define IXCLRDataProcess_GetTaskByOSThreadID(This,osThreadID,task) \
+ ( (This)->lpVtbl -> GetTaskByOSThreadID(This,osThreadID,task) )
+
+#define IXCLRDataProcess_GetTaskByUniqueID(This,taskID,task) \
+ ( (This)->lpVtbl -> GetTaskByUniqueID(This,taskID,task) )
+
+#define IXCLRDataProcess_GetFlags(This,flags) \
+ ( (This)->lpVtbl -> GetFlags(This,flags) )
+
+#define IXCLRDataProcess_IsSameObject(This,process) \
+ ( (This)->lpVtbl -> IsSameObject(This,process) )
+
+#define IXCLRDataProcess_GetManagedObject(This,value) \
+ ( (This)->lpVtbl -> GetManagedObject(This,value) )
+
+#define IXCLRDataProcess_GetDesiredExecutionState(This,state) \
+ ( (This)->lpVtbl -> GetDesiredExecutionState(This,state) )
+
+#define IXCLRDataProcess_SetDesiredExecutionState(This,state) \
+ ( (This)->lpVtbl -> SetDesiredExecutionState(This,state) )
+
+#define IXCLRDataProcess_GetAddressType(This,address,type) \
+ ( (This)->lpVtbl -> GetAddressType(This,address,type) )
+
+#define IXCLRDataProcess_GetRuntimeNameByAddress(This,address,flags,bufLen,nameLen,nameBuf,displacement) \
+ ( (This)->lpVtbl -> GetRuntimeNameByAddress(This,address,flags,bufLen,nameLen,nameBuf,displacement) )
+
+#define IXCLRDataProcess_StartEnumAppDomains(This,handle) \
+ ( (This)->lpVtbl -> StartEnumAppDomains(This,handle) )
+
+#define IXCLRDataProcess_EnumAppDomain(This,handle,appDomain) \
+ ( (This)->lpVtbl -> EnumAppDomain(This,handle,appDomain) )
+
+#define IXCLRDataProcess_EndEnumAppDomains(This,handle) \
+ ( (This)->lpVtbl -> EndEnumAppDomains(This,handle) )
+
+#define IXCLRDataProcess_GetAppDomainByUniqueID(This,id,appDomain) \
+ ( (This)->lpVtbl -> GetAppDomainByUniqueID(This,id,appDomain) )
+
+#define IXCLRDataProcess_StartEnumAssemblies(This,handle) \
+ ( (This)->lpVtbl -> StartEnumAssemblies(This,handle) )
+
+#define IXCLRDataProcess_EnumAssembly(This,handle,assembly) \
+ ( (This)->lpVtbl -> EnumAssembly(This,handle,assembly) )
+
+#define IXCLRDataProcess_EndEnumAssemblies(This,handle) \
+ ( (This)->lpVtbl -> EndEnumAssemblies(This,handle) )
+
+#define IXCLRDataProcess_StartEnumModules(This,handle) \
+ ( (This)->lpVtbl -> StartEnumModules(This,handle) )
+
+#define IXCLRDataProcess_EnumModule(This,handle,mod) \
+ ( (This)->lpVtbl -> EnumModule(This,handle,mod) )
+
+#define IXCLRDataProcess_EndEnumModules(This,handle) \
+ ( (This)->lpVtbl -> EndEnumModules(This,handle) )
+
+#define IXCLRDataProcess_GetModuleByAddress(This,address,mod) \
+ ( (This)->lpVtbl -> GetModuleByAddress(This,address,mod) )
+
+#define IXCLRDataProcess_StartEnumMethodInstancesByAddress(This,address,appDomain,handle) \
+ ( (This)->lpVtbl -> StartEnumMethodInstancesByAddress(This,address,appDomain,handle) )
+
+#define IXCLRDataProcess_EnumMethodInstanceByAddress(This,handle,method) \
+ ( (This)->lpVtbl -> EnumMethodInstanceByAddress(This,handle,method) )
+
+#define IXCLRDataProcess_EndEnumMethodInstancesByAddress(This,handle) \
+ ( (This)->lpVtbl -> EndEnumMethodInstancesByAddress(This,handle) )
+
+#define IXCLRDataProcess_GetDataByAddress(This,address,flags,appDomain,tlsTask,bufLen,nameLen,nameBuf,value,displacement) \
+ ( (This)->lpVtbl -> GetDataByAddress(This,address,flags,appDomain,tlsTask,bufLen,nameLen,nameBuf,value,displacement) )
+
+#define IXCLRDataProcess_GetExceptionStateByExceptionRecord(This,record,exState) \
+ ( (This)->lpVtbl -> GetExceptionStateByExceptionRecord(This,record,exState) )
+
+#define IXCLRDataProcess_TranslateExceptionRecordToNotification(This,record,notify) \
+ ( (This)->lpVtbl -> TranslateExceptionRecordToNotification(This,record,notify) )
+
+#define IXCLRDataProcess_Request(This,reqCode,inBufferSize,inBuffer,outBufferSize,outBuffer) \
+ ( (This)->lpVtbl -> Request(This,reqCode,inBufferSize,inBuffer,outBufferSize,outBuffer) )
+
+#define IXCLRDataProcess_CreateMemoryValue(This,appDomain,tlsTask,type,addr,value) \
+ ( (This)->lpVtbl -> CreateMemoryValue(This,appDomain,tlsTask,type,addr,value) )
+
+#define IXCLRDataProcess_SetAllTypeNotifications(This,mod,flags) \
+ ( (This)->lpVtbl -> SetAllTypeNotifications(This,mod,flags) )
+
+#define IXCLRDataProcess_SetAllCodeNotifications(This,mod,flags) \
+ ( (This)->lpVtbl -> SetAllCodeNotifications(This,mod,flags) )
+
+#define IXCLRDataProcess_GetTypeNotifications(This,numTokens,mods,singleMod,tokens,flags) \
+ ( (This)->lpVtbl -> GetTypeNotifications(This,numTokens,mods,singleMod,tokens,flags) )
+
+#define IXCLRDataProcess_SetTypeNotifications(This,numTokens,mods,singleMod,tokens,flags,singleFlags) \
+ ( (This)->lpVtbl -> SetTypeNotifications(This,numTokens,mods,singleMod,tokens,flags,singleFlags) )
+
+#define IXCLRDataProcess_GetCodeNotifications(This,numTokens,mods,singleMod,tokens,flags) \
+ ( (This)->lpVtbl -> GetCodeNotifications(This,numTokens,mods,singleMod,tokens,flags) )
+
+#define IXCLRDataProcess_SetCodeNotifications(This,numTokens,mods,singleMod,tokens,flags,singleFlags) \
+ ( (This)->lpVtbl -> SetCodeNotifications(This,numTokens,mods,singleMod,tokens,flags,singleFlags) )
+
+#define IXCLRDataProcess_GetOtherNotificationFlags(This,flags) \
+ ( (This)->lpVtbl -> GetOtherNotificationFlags(This,flags) )
+
+#define IXCLRDataProcess_SetOtherNotificationFlags(This,flags) \
+ ( (This)->lpVtbl -> SetOtherNotificationFlags(This,flags) )
+
+#define IXCLRDataProcess_StartEnumMethodDefinitionsByAddress(This,address,handle) \
+ ( (This)->lpVtbl -> StartEnumMethodDefinitionsByAddress(This,address,handle) )
+
+#define IXCLRDataProcess_EnumMethodDefinitionByAddress(This,handle,method) \
+ ( (This)->lpVtbl -> EnumMethodDefinitionByAddress(This,handle,method) )
+
+#define IXCLRDataProcess_EndEnumMethodDefinitionsByAddress(This,handle) \
+ ( (This)->lpVtbl -> EndEnumMethodDefinitionsByAddress(This,handle) )
+
+#define IXCLRDataProcess_FollowStub(This,inFlags,inAddr,inBuffer,outAddr,outBuffer,outFlags) \
+ ( (This)->lpVtbl -> FollowStub(This,inFlags,inAddr,inBuffer,outAddr,outBuffer,outFlags) )
+
+#define IXCLRDataProcess_FollowStub2(This,task,inFlags,inAddr,inBuffer,outAddr,outBuffer,outFlags) \
+ ( (This)->lpVtbl -> FollowStub2(This,task,inFlags,inAddr,inBuffer,outAddr,outBuffer,outFlags) )
+
+#define IXCLRDataProcess_DumpNativeImage(This,loadedBase,name,display,libSupport,dis) \
+ ( (This)->lpVtbl -> DumpNativeImage(This,loadedBase,name,display,libSupport,dis) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IXCLRDataProcess_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_xclrdata_0000_0005 */
+/* [local] */
+
+#pragma warning(pop)
+typedef /* [public][public][public][public] */
+enum __MIDL___MIDL_itf_xclrdata_0000_0005_0001
+ {
+ GC_MARK_END = 1,
+ GC_EVENT_TYPE_MAX = ( GC_MARK_END + 1 )
+ } GcEvt_t;
+
+typedef /* [public][public][public][public] */ struct __MIDL___MIDL_itf_xclrdata_0000_0005_0002
+ {
+ GcEvt_t typ;
+ /* [switch_is] */ /* [switch_type] */ union
+ {
+ /* [case()] */ int condemnedGeneration;
+ } ;
+ } GcEvtArgs;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_xclrdata_0000_0005_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_xclrdata_0000_0005_v0_0_s_ifspec;
+
+#ifndef __IXCLRDataProcess2_INTERFACE_DEFINED__
+#define __IXCLRDataProcess2_INTERFACE_DEFINED__
+
+/* interface IXCLRDataProcess2 */
+/* [uuid][local][object] */
+
+
+EXTERN_C const IID IID_IXCLRDataProcess2;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("5c552ab6-fc09-4cb3-8e36-22fa03c798b8")
+ IXCLRDataProcess2 : public IXCLRDataProcess
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE GetGcNotification(
+ /* [out][in] */ GcEvtArgs *gcEvtArgs) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetGcNotification(
+ /* [in] */ GcEvtArgs gcEvtArgs) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IXCLRDataProcess2Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IXCLRDataProcess2 * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IXCLRDataProcess2 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IXCLRDataProcess2 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *Flush )(
+ IXCLRDataProcess2 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *StartEnumTasks )(
+ IXCLRDataProcess2 * This,
+ /* [out] */ CLRDATA_ENUM *handle);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumTask )(
+ IXCLRDataProcess2 * This,
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataTask **task);
+
+ HRESULT ( STDMETHODCALLTYPE *EndEnumTasks )(
+ IXCLRDataProcess2 * This,
+ /* [in] */ CLRDATA_ENUM handle);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTaskByOSThreadID )(
+ IXCLRDataProcess2 * This,
+ /* [in] */ ULONG32 osThreadID,
+ /* [out] */ IXCLRDataTask **task);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTaskByUniqueID )(
+ IXCLRDataProcess2 * This,
+ /* [in] */ ULONG64 taskID,
+ /* [out] */ IXCLRDataTask **task);
+
+ HRESULT ( STDMETHODCALLTYPE *GetFlags )(
+ IXCLRDataProcess2 * This,
+ /* [out] */ ULONG32 *flags);
+
+ HRESULT ( STDMETHODCALLTYPE *IsSameObject )(
+ IXCLRDataProcess2 * This,
+ /* [in] */ IXCLRDataProcess *process);
+
+ HRESULT ( STDMETHODCALLTYPE *GetManagedObject )(
+ IXCLRDataProcess2 * This,
+ /* [out] */ IXCLRDataValue **value);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDesiredExecutionState )(
+ IXCLRDataProcess2 * This,
+ /* [out] */ ULONG32 *state);
+
+ HRESULT ( STDMETHODCALLTYPE *SetDesiredExecutionState )(
+ IXCLRDataProcess2 * This,
+ /* [in] */ ULONG32 state);
+
+ HRESULT ( STDMETHODCALLTYPE *GetAddressType )(
+ IXCLRDataProcess2 * This,
+ /* [in] */ CLRDATA_ADDRESS address,
+ /* [out] */ CLRDataAddressType *type);
+
+ HRESULT ( STDMETHODCALLTYPE *GetRuntimeNameByAddress )(
+ IXCLRDataProcess2 * This,
+ /* [in] */ CLRDATA_ADDRESS address,
+ /* [in] */ ULONG32 flags,
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR nameBuf[ ],
+ /* [out] */ CLRDATA_ADDRESS *displacement);
+
+ HRESULT ( STDMETHODCALLTYPE *StartEnumAppDomains )(
+ IXCLRDataProcess2 * This,
+ /* [out] */ CLRDATA_ENUM *handle);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumAppDomain )(
+ IXCLRDataProcess2 * This,
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataAppDomain **appDomain);
+
+ HRESULT ( STDMETHODCALLTYPE *EndEnumAppDomains )(
+ IXCLRDataProcess2 * This,
+ /* [in] */ CLRDATA_ENUM handle);
+
+ HRESULT ( STDMETHODCALLTYPE *GetAppDomainByUniqueID )(
+ IXCLRDataProcess2 * This,
+ /* [in] */ ULONG64 id,
+ /* [out] */ IXCLRDataAppDomain **appDomain);
+
+ HRESULT ( STDMETHODCALLTYPE *StartEnumAssemblies )(
+ IXCLRDataProcess2 * This,
+ /* [out] */ CLRDATA_ENUM *handle);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumAssembly )(
+ IXCLRDataProcess2 * This,
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataAssembly **assembly);
+
+ HRESULT ( STDMETHODCALLTYPE *EndEnumAssemblies )(
+ IXCLRDataProcess2 * This,
+ /* [in] */ CLRDATA_ENUM handle);
+
+ HRESULT ( STDMETHODCALLTYPE *StartEnumModules )(
+ IXCLRDataProcess2 * This,
+ /* [out] */ CLRDATA_ENUM *handle);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumModule )(
+ IXCLRDataProcess2 * This,
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataModule **mod);
+
+ HRESULT ( STDMETHODCALLTYPE *EndEnumModules )(
+ IXCLRDataProcess2 * This,
+ /* [in] */ CLRDATA_ENUM handle);
+
+ HRESULT ( STDMETHODCALLTYPE *GetModuleByAddress )(
+ IXCLRDataProcess2 * This,
+ /* [in] */ CLRDATA_ADDRESS address,
+ /* [out] */ IXCLRDataModule **mod);
+
+ HRESULT ( STDMETHODCALLTYPE *StartEnumMethodInstancesByAddress )(
+ IXCLRDataProcess2 * This,
+ /* [in] */ CLRDATA_ADDRESS address,
+ /* [in] */ IXCLRDataAppDomain *appDomain,
+ /* [out] */ CLRDATA_ENUM *handle);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumMethodInstanceByAddress )(
+ IXCLRDataProcess2 * This,
+ /* [in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataMethodInstance **method);
+
+ HRESULT ( STDMETHODCALLTYPE *EndEnumMethodInstancesByAddress )(
+ IXCLRDataProcess2 * This,
+ /* [in] */ CLRDATA_ENUM handle);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDataByAddress )(
+ IXCLRDataProcess2 * This,
+ /* [in] */ CLRDATA_ADDRESS address,
+ /* [in] */ ULONG32 flags,
+ /* [in] */ IXCLRDataAppDomain *appDomain,
+ /* [in] */ IXCLRDataTask *tlsTask,
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR nameBuf[ ],
+ /* [out] */ IXCLRDataValue **value,
+ /* [out] */ CLRDATA_ADDRESS *displacement);
+
+ HRESULT ( STDMETHODCALLTYPE *GetExceptionStateByExceptionRecord )(
+ IXCLRDataProcess2 * This,
+ /* [in] */ EXCEPTION_RECORD64 *record,
+ /* [out] */ IXCLRDataExceptionState **exState);
+
+ HRESULT ( STDMETHODCALLTYPE *TranslateExceptionRecordToNotification )(
+ IXCLRDataProcess2 * This,
+ /* [in] */ EXCEPTION_RECORD64 *record,
+ /* [in] */ IXCLRDataExceptionNotification *notify);
+
+ HRESULT ( STDMETHODCALLTYPE *Request )(
+ IXCLRDataProcess2 * This,
+ /* [in] */ ULONG32 reqCode,
+ /* [in] */ ULONG32 inBufferSize,
+ /* [size_is][in] */ BYTE *inBuffer,
+ /* [in] */ ULONG32 outBufferSize,
+ /* [size_is][out] */ BYTE *outBuffer);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateMemoryValue )(
+ IXCLRDataProcess2 * This,
+ /* [in] */ IXCLRDataAppDomain *appDomain,
+ /* [in] */ IXCLRDataTask *tlsTask,
+ /* [in] */ IXCLRDataTypeInstance *type,
+ /* [in] */ CLRDATA_ADDRESS addr,
+ /* [out] */ IXCLRDataValue **value);
+
+ HRESULT ( STDMETHODCALLTYPE *SetAllTypeNotifications )(
+ IXCLRDataProcess2 * This,
+ IXCLRDataModule *mod,
+ ULONG32 flags);
+
+ HRESULT ( STDMETHODCALLTYPE *SetAllCodeNotifications )(
+ IXCLRDataProcess2 * This,
+ IXCLRDataModule *mod,
+ ULONG32 flags);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeNotifications )(
+ IXCLRDataProcess2 * This,
+ /* [in] */ ULONG32 numTokens,
+ /* [size_is][in] */ IXCLRDataModule *mods[ ],
+ /* [in] */ IXCLRDataModule *singleMod,
+ /* [size_is][in] */ mdTypeDef tokens[ ],
+ /* [size_is][out] */ ULONG32 flags[ ]);
+
+ HRESULT ( STDMETHODCALLTYPE *SetTypeNotifications )(
+ IXCLRDataProcess2 * This,
+ /* [in] */ ULONG32 numTokens,
+ /* [size_is][in] */ IXCLRDataModule *mods[ ],
+ /* [in] */ IXCLRDataModule *singleMod,
+ /* [size_is][in] */ mdTypeDef tokens[ ],
+ /* [size_is][in] */ ULONG32 flags[ ],
+ /* [in] */ ULONG32 singleFlags);
+
+ HRESULT ( STDMETHODCALLTYPE *GetCodeNotifications )(
+ IXCLRDataProcess2 * This,
+ /* [in] */ ULONG32 numTokens,
+ /* [size_is][in] */ IXCLRDataModule *mods[ ],
+ /* [in] */ IXCLRDataModule *singleMod,
+ /* [size_is][in] */ mdMethodDef tokens[ ],
+ /* [size_is][out] */ ULONG32 flags[ ]);
+
+ HRESULT ( STDMETHODCALLTYPE *SetCodeNotifications )(
+ IXCLRDataProcess2 * This,
+ /* [in] */ ULONG32 numTokens,
+ /* [size_is][in] */ IXCLRDataModule *mods[ ],
+ /* [in] */ IXCLRDataModule *singleMod,
+ /* [size_is][in] */ mdMethodDef tokens[ ],
+ /* [size_is][in] */ ULONG32 flags[ ],
+ /* [in] */ ULONG32 singleFlags);
+
+ HRESULT ( STDMETHODCALLTYPE *GetOtherNotificationFlags )(
+ IXCLRDataProcess2 * This,
+ /* [out] */ ULONG32 *flags);
+
+ HRESULT ( STDMETHODCALLTYPE *SetOtherNotificationFlags )(
+ IXCLRDataProcess2 * This,
+ /* [in] */ ULONG32 flags);
+
+ HRESULT ( STDMETHODCALLTYPE *StartEnumMethodDefinitionsByAddress )(
+ IXCLRDataProcess2 * This,
+ /* [in] */ CLRDATA_ADDRESS address,
+ /* [out] */ CLRDATA_ENUM *handle);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumMethodDefinitionByAddress )(
+ IXCLRDataProcess2 * This,
+ /* [in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataMethodDefinition **method);
+
+ HRESULT ( STDMETHODCALLTYPE *EndEnumMethodDefinitionsByAddress )(
+ IXCLRDataProcess2 * This,
+ /* [in] */ CLRDATA_ENUM handle);
+
+ HRESULT ( STDMETHODCALLTYPE *FollowStub )(
+ IXCLRDataProcess2 * This,
+ /* [in] */ ULONG32 inFlags,
+ /* [in] */ CLRDATA_ADDRESS inAddr,
+ /* [in] */ CLRDATA_FOLLOW_STUB_BUFFER *inBuffer,
+ /* [out] */ CLRDATA_ADDRESS *outAddr,
+ /* [out] */ CLRDATA_FOLLOW_STUB_BUFFER *outBuffer,
+ /* [out] */ ULONG32 *outFlags);
+
+ HRESULT ( STDMETHODCALLTYPE *FollowStub2 )(
+ IXCLRDataProcess2 * This,
+ /* [in] */ IXCLRDataTask *task,
+ /* [in] */ ULONG32 inFlags,
+ /* [in] */ CLRDATA_ADDRESS inAddr,
+ /* [in] */ CLRDATA_FOLLOW_STUB_BUFFER *inBuffer,
+ /* [out] */ CLRDATA_ADDRESS *outAddr,
+ /* [out] */ CLRDATA_FOLLOW_STUB_BUFFER *outBuffer,
+ /* [out] */ ULONG32 *outFlags);
+
+ HRESULT ( STDMETHODCALLTYPE *DumpNativeImage )(
+ IXCLRDataProcess2 * This,
+ /* [in] */ CLRDATA_ADDRESS loadedBase,
+ /* [in] */ LPCWSTR name,
+ /* [in] */ IXCLRDataDisplay *display,
+ /* [in] */ IXCLRLibrarySupport *libSupport,
+ /* [in] */ IXCLRDisassemblySupport *dis);
+
+ HRESULT ( STDMETHODCALLTYPE *GetGcNotification )(
+ IXCLRDataProcess2 * This,
+ /* [out][in] */ GcEvtArgs *gcEvtArgs);
+
+ HRESULT ( STDMETHODCALLTYPE *SetGcNotification )(
+ IXCLRDataProcess2 * This,
+ /* [in] */ GcEvtArgs gcEvtArgs);
+
+ END_INTERFACE
+ } IXCLRDataProcess2Vtbl;
+
+ interface IXCLRDataProcess2
+ {
+ CONST_VTBL struct IXCLRDataProcess2Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IXCLRDataProcess2_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IXCLRDataProcess2_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IXCLRDataProcess2_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IXCLRDataProcess2_Flush(This) \
+ ( (This)->lpVtbl -> Flush(This) )
+
+#define IXCLRDataProcess2_StartEnumTasks(This,handle) \
+ ( (This)->lpVtbl -> StartEnumTasks(This,handle) )
+
+#define IXCLRDataProcess2_EnumTask(This,handle,task) \
+ ( (This)->lpVtbl -> EnumTask(This,handle,task) )
+
+#define IXCLRDataProcess2_EndEnumTasks(This,handle) \
+ ( (This)->lpVtbl -> EndEnumTasks(This,handle) )
+
+#define IXCLRDataProcess2_GetTaskByOSThreadID(This,osThreadID,task) \
+ ( (This)->lpVtbl -> GetTaskByOSThreadID(This,osThreadID,task) )
+
+#define IXCLRDataProcess2_GetTaskByUniqueID(This,taskID,task) \
+ ( (This)->lpVtbl -> GetTaskByUniqueID(This,taskID,task) )
+
+#define IXCLRDataProcess2_GetFlags(This,flags) \
+ ( (This)->lpVtbl -> GetFlags(This,flags) )
+
+#define IXCLRDataProcess2_IsSameObject(This,process) \
+ ( (This)->lpVtbl -> IsSameObject(This,process) )
+
+#define IXCLRDataProcess2_GetManagedObject(This,value) \
+ ( (This)->lpVtbl -> GetManagedObject(This,value) )
+
+#define IXCLRDataProcess2_GetDesiredExecutionState(This,state) \
+ ( (This)->lpVtbl -> GetDesiredExecutionState(This,state) )
+
+#define IXCLRDataProcess2_SetDesiredExecutionState(This,state) \
+ ( (This)->lpVtbl -> SetDesiredExecutionState(This,state) )
+
+#define IXCLRDataProcess2_GetAddressType(This,address,type) \
+ ( (This)->lpVtbl -> GetAddressType(This,address,type) )
+
+#define IXCLRDataProcess2_GetRuntimeNameByAddress(This,address,flags,bufLen,nameLen,nameBuf,displacement) \
+ ( (This)->lpVtbl -> GetRuntimeNameByAddress(This,address,flags,bufLen,nameLen,nameBuf,displacement) )
+
+#define IXCLRDataProcess2_StartEnumAppDomains(This,handle) \
+ ( (This)->lpVtbl -> StartEnumAppDomains(This,handle) )
+
+#define IXCLRDataProcess2_EnumAppDomain(This,handle,appDomain) \
+ ( (This)->lpVtbl -> EnumAppDomain(This,handle,appDomain) )
+
+#define IXCLRDataProcess2_EndEnumAppDomains(This,handle) \
+ ( (This)->lpVtbl -> EndEnumAppDomains(This,handle) )
+
+#define IXCLRDataProcess2_GetAppDomainByUniqueID(This,id,appDomain) \
+ ( (This)->lpVtbl -> GetAppDomainByUniqueID(This,id,appDomain) )
+
+#define IXCLRDataProcess2_StartEnumAssemblies(This,handle) \
+ ( (This)->lpVtbl -> StartEnumAssemblies(This,handle) )
+
+#define IXCLRDataProcess2_EnumAssembly(This,handle,assembly) \
+ ( (This)->lpVtbl -> EnumAssembly(This,handle,assembly) )
+
+#define IXCLRDataProcess2_EndEnumAssemblies(This,handle) \
+ ( (This)->lpVtbl -> EndEnumAssemblies(This,handle) )
+
+#define IXCLRDataProcess2_StartEnumModules(This,handle) \
+ ( (This)->lpVtbl -> StartEnumModules(This,handle) )
+
+#define IXCLRDataProcess2_EnumModule(This,handle,mod) \
+ ( (This)->lpVtbl -> EnumModule(This,handle,mod) )
+
+#define IXCLRDataProcess2_EndEnumModules(This,handle) \
+ ( (This)->lpVtbl -> EndEnumModules(This,handle) )
+
+#define IXCLRDataProcess2_GetModuleByAddress(This,address,mod) \
+ ( (This)->lpVtbl -> GetModuleByAddress(This,address,mod) )
+
+#define IXCLRDataProcess2_StartEnumMethodInstancesByAddress(This,address,appDomain,handle) \
+ ( (This)->lpVtbl -> StartEnumMethodInstancesByAddress(This,address,appDomain,handle) )
+
+#define IXCLRDataProcess2_EnumMethodInstanceByAddress(This,handle,method) \
+ ( (This)->lpVtbl -> EnumMethodInstanceByAddress(This,handle,method) )
+
+#define IXCLRDataProcess2_EndEnumMethodInstancesByAddress(This,handle) \
+ ( (This)->lpVtbl -> EndEnumMethodInstancesByAddress(This,handle) )
+
+#define IXCLRDataProcess2_GetDataByAddress(This,address,flags,appDomain,tlsTask,bufLen,nameLen,nameBuf,value,displacement) \
+ ( (This)->lpVtbl -> GetDataByAddress(This,address,flags,appDomain,tlsTask,bufLen,nameLen,nameBuf,value,displacement) )
+
+#define IXCLRDataProcess2_GetExceptionStateByExceptionRecord(This,record,exState) \
+ ( (This)->lpVtbl -> GetExceptionStateByExceptionRecord(This,record,exState) )
+
+#define IXCLRDataProcess2_TranslateExceptionRecordToNotification(This,record,notify) \
+ ( (This)->lpVtbl -> TranslateExceptionRecordToNotification(This,record,notify) )
+
+#define IXCLRDataProcess2_Request(This,reqCode,inBufferSize,inBuffer,outBufferSize,outBuffer) \
+ ( (This)->lpVtbl -> Request(This,reqCode,inBufferSize,inBuffer,outBufferSize,outBuffer) )
+
+#define IXCLRDataProcess2_CreateMemoryValue(This,appDomain,tlsTask,type,addr,value) \
+ ( (This)->lpVtbl -> CreateMemoryValue(This,appDomain,tlsTask,type,addr,value) )
+
+#define IXCLRDataProcess2_SetAllTypeNotifications(This,mod,flags) \
+ ( (This)->lpVtbl -> SetAllTypeNotifications(This,mod,flags) )
+
+#define IXCLRDataProcess2_SetAllCodeNotifications(This,mod,flags) \
+ ( (This)->lpVtbl -> SetAllCodeNotifications(This,mod,flags) )
+
+#define IXCLRDataProcess2_GetTypeNotifications(This,numTokens,mods,singleMod,tokens,flags) \
+ ( (This)->lpVtbl -> GetTypeNotifications(This,numTokens,mods,singleMod,tokens,flags) )
+
+#define IXCLRDataProcess2_SetTypeNotifications(This,numTokens,mods,singleMod,tokens,flags,singleFlags) \
+ ( (This)->lpVtbl -> SetTypeNotifications(This,numTokens,mods,singleMod,tokens,flags,singleFlags) )
+
+#define IXCLRDataProcess2_GetCodeNotifications(This,numTokens,mods,singleMod,tokens,flags) \
+ ( (This)->lpVtbl -> GetCodeNotifications(This,numTokens,mods,singleMod,tokens,flags) )
+
+#define IXCLRDataProcess2_SetCodeNotifications(This,numTokens,mods,singleMod,tokens,flags,singleFlags) \
+ ( (This)->lpVtbl -> SetCodeNotifications(This,numTokens,mods,singleMod,tokens,flags,singleFlags) )
+
+#define IXCLRDataProcess2_GetOtherNotificationFlags(This,flags) \
+ ( (This)->lpVtbl -> GetOtherNotificationFlags(This,flags) )
+
+#define IXCLRDataProcess2_SetOtherNotificationFlags(This,flags) \
+ ( (This)->lpVtbl -> SetOtherNotificationFlags(This,flags) )
+
+#define IXCLRDataProcess2_StartEnumMethodDefinitionsByAddress(This,address,handle) \
+ ( (This)->lpVtbl -> StartEnumMethodDefinitionsByAddress(This,address,handle) )
+
+#define IXCLRDataProcess2_EnumMethodDefinitionByAddress(This,handle,method) \
+ ( (This)->lpVtbl -> EnumMethodDefinitionByAddress(This,handle,method) )
+
+#define IXCLRDataProcess2_EndEnumMethodDefinitionsByAddress(This,handle) \
+ ( (This)->lpVtbl -> EndEnumMethodDefinitionsByAddress(This,handle) )
+
+#define IXCLRDataProcess2_FollowStub(This,inFlags,inAddr,inBuffer,outAddr,outBuffer,outFlags) \
+ ( (This)->lpVtbl -> FollowStub(This,inFlags,inAddr,inBuffer,outAddr,outBuffer,outFlags) )
+
+#define IXCLRDataProcess2_FollowStub2(This,task,inFlags,inAddr,inBuffer,outAddr,outBuffer,outFlags) \
+ ( (This)->lpVtbl -> FollowStub2(This,task,inFlags,inAddr,inBuffer,outAddr,outBuffer,outFlags) )
+
+#define IXCLRDataProcess2_DumpNativeImage(This,loadedBase,name,display,libSupport,dis) \
+ ( (This)->lpVtbl -> DumpNativeImage(This,loadedBase,name,display,libSupport,dis) )
+
+
+#define IXCLRDataProcess2_GetGcNotification(This,gcEvtArgs) \
+ ( (This)->lpVtbl -> GetGcNotification(This,gcEvtArgs) )
+
+#define IXCLRDataProcess2_SetGcNotification(This,gcEvtArgs) \
+ ( (This)->lpVtbl -> SetGcNotification(This,gcEvtArgs) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IXCLRDataProcess2_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_xclrdata_0000_0006 */
+/* [local] */
+
+typedef /* [public] */
+enum __MIDL___MIDL_itf_xclrdata_0000_0006_0001
+ {
+ CLRDATA_DOMAIN_DEFAULT = 0
+ } CLRDataAppDomainFlag;
+
+#pragma warning(push)
+#pragma warning(disable:28718)
+
+
+extern RPC_IF_HANDLE __MIDL_itf_xclrdata_0000_0006_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_xclrdata_0000_0006_v0_0_s_ifspec;
+
+#ifndef __IXCLRDataAppDomain_INTERFACE_DEFINED__
+#define __IXCLRDataAppDomain_INTERFACE_DEFINED__
+
+/* interface IXCLRDataAppDomain */
+/* [uuid][local][object] */
+
+
+EXTERN_C const IID IID_IXCLRDataAppDomain;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("7CA04601-C702-4670-A63C-FA44F7DA7BD5")
+ IXCLRDataAppDomain : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE GetProcess(
+ /* [out] */ IXCLRDataProcess **process) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetName(
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR name[ ]) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetUniqueID(
+ /* [out] */ ULONG64 *id) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetFlags(
+ /* [out] */ ULONG32 *flags) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE IsSameObject(
+ /* [in] */ IXCLRDataAppDomain *appDomain) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetManagedObject(
+ /* [out] */ IXCLRDataValue **value) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Request(
+ /* [in] */ ULONG32 reqCode,
+ /* [in] */ ULONG32 inBufferSize,
+ /* [size_is][in] */ BYTE *inBuffer,
+ /* [in] */ ULONG32 outBufferSize,
+ /* [size_is][out] */ BYTE *outBuffer) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IXCLRDataAppDomainVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IXCLRDataAppDomain * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IXCLRDataAppDomain * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IXCLRDataAppDomain * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetProcess )(
+ IXCLRDataAppDomain * This,
+ /* [out] */ IXCLRDataProcess **process);
+
+ HRESULT ( STDMETHODCALLTYPE *GetName )(
+ IXCLRDataAppDomain * This,
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR name[ ]);
+
+ HRESULT ( STDMETHODCALLTYPE *GetUniqueID )(
+ IXCLRDataAppDomain * This,
+ /* [out] */ ULONG64 *id);
+
+ HRESULT ( STDMETHODCALLTYPE *GetFlags )(
+ IXCLRDataAppDomain * This,
+ /* [out] */ ULONG32 *flags);
+
+ HRESULT ( STDMETHODCALLTYPE *IsSameObject )(
+ IXCLRDataAppDomain * This,
+ /* [in] */ IXCLRDataAppDomain *appDomain);
+
+ HRESULT ( STDMETHODCALLTYPE *GetManagedObject )(
+ IXCLRDataAppDomain * This,
+ /* [out] */ IXCLRDataValue **value);
+
+ HRESULT ( STDMETHODCALLTYPE *Request )(
+ IXCLRDataAppDomain * This,
+ /* [in] */ ULONG32 reqCode,
+ /* [in] */ ULONG32 inBufferSize,
+ /* [size_is][in] */ BYTE *inBuffer,
+ /* [in] */ ULONG32 outBufferSize,
+ /* [size_is][out] */ BYTE *outBuffer);
+
+ END_INTERFACE
+ } IXCLRDataAppDomainVtbl;
+
+ interface IXCLRDataAppDomain
+ {
+ CONST_VTBL struct IXCLRDataAppDomainVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IXCLRDataAppDomain_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IXCLRDataAppDomain_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IXCLRDataAppDomain_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IXCLRDataAppDomain_GetProcess(This,process) \
+ ( (This)->lpVtbl -> GetProcess(This,process) )
+
+#define IXCLRDataAppDomain_GetName(This,bufLen,nameLen,name) \
+ ( (This)->lpVtbl -> GetName(This,bufLen,nameLen,name) )
+
+#define IXCLRDataAppDomain_GetUniqueID(This,id) \
+ ( (This)->lpVtbl -> GetUniqueID(This,id) )
+
+#define IXCLRDataAppDomain_GetFlags(This,flags) \
+ ( (This)->lpVtbl -> GetFlags(This,flags) )
+
+#define IXCLRDataAppDomain_IsSameObject(This,appDomain) \
+ ( (This)->lpVtbl -> IsSameObject(This,appDomain) )
+
+#define IXCLRDataAppDomain_GetManagedObject(This,value) \
+ ( (This)->lpVtbl -> GetManagedObject(This,value) )
+
+#define IXCLRDataAppDomain_Request(This,reqCode,inBufferSize,inBuffer,outBufferSize,outBuffer) \
+ ( (This)->lpVtbl -> Request(This,reqCode,inBufferSize,inBuffer,outBufferSize,outBuffer) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IXCLRDataAppDomain_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_xclrdata_0000_0007 */
+/* [local] */
+
+#pragma warning(pop)
+typedef /* [public] */
+enum __MIDL___MIDL_itf_xclrdata_0000_0007_0001
+ {
+ CLRDATA_ASSEMBLY_DEFAULT = 0
+ } CLRDataAssemblyFlag;
+
+#pragma warning(push)
+#pragma warning(disable:28718)
+
+
+extern RPC_IF_HANDLE __MIDL_itf_xclrdata_0000_0007_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_xclrdata_0000_0007_v0_0_s_ifspec;
+
+#ifndef __IXCLRDataAssembly_INTERFACE_DEFINED__
+#define __IXCLRDataAssembly_INTERFACE_DEFINED__
+
+/* interface IXCLRDataAssembly */
+/* [uuid][local][object] */
+
+
+EXTERN_C const IID IID_IXCLRDataAssembly;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("2FA17588-43C2-46ab-9B51-C8F01E39C9AC")
+ IXCLRDataAssembly : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE StartEnumModules(
+ /* [out] */ CLRDATA_ENUM *handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumModule(
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataModule **mod) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EndEnumModules(
+ /* [in] */ CLRDATA_ENUM handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetName(
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR name[ ]) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetFileName(
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR name[ ]) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetFlags(
+ /* [out] */ ULONG32 *flags) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE IsSameObject(
+ /* [in] */ IXCLRDataAssembly *assembly) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Request(
+ /* [in] */ ULONG32 reqCode,
+ /* [in] */ ULONG32 inBufferSize,
+ /* [size_is][in] */ BYTE *inBuffer,
+ /* [in] */ ULONG32 outBufferSize,
+ /* [size_is][out] */ BYTE *outBuffer) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StartEnumAppDomains(
+ /* [out] */ CLRDATA_ENUM *handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumAppDomain(
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataAppDomain **appDomain) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EndEnumAppDomains(
+ /* [in] */ CLRDATA_ENUM handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetDisplayName(
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR name[ ]) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IXCLRDataAssemblyVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IXCLRDataAssembly * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IXCLRDataAssembly * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IXCLRDataAssembly * This);
+
+ HRESULT ( STDMETHODCALLTYPE *StartEnumModules )(
+ IXCLRDataAssembly * This,
+ /* [out] */ CLRDATA_ENUM *handle);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumModule )(
+ IXCLRDataAssembly * This,
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataModule **mod);
+
+ HRESULT ( STDMETHODCALLTYPE *EndEnumModules )(
+ IXCLRDataAssembly * This,
+ /* [in] */ CLRDATA_ENUM handle);
+
+ HRESULT ( STDMETHODCALLTYPE *GetName )(
+ IXCLRDataAssembly * This,
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR name[ ]);
+
+ HRESULT ( STDMETHODCALLTYPE *GetFileName )(
+ IXCLRDataAssembly * This,
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR name[ ]);
+
+ HRESULT ( STDMETHODCALLTYPE *GetFlags )(
+ IXCLRDataAssembly * This,
+ /* [out] */ ULONG32 *flags);
+
+ HRESULT ( STDMETHODCALLTYPE *IsSameObject )(
+ IXCLRDataAssembly * This,
+ /* [in] */ IXCLRDataAssembly *assembly);
+
+ HRESULT ( STDMETHODCALLTYPE *Request )(
+ IXCLRDataAssembly * This,
+ /* [in] */ ULONG32 reqCode,
+ /* [in] */ ULONG32 inBufferSize,
+ /* [size_is][in] */ BYTE *inBuffer,
+ /* [in] */ ULONG32 outBufferSize,
+ /* [size_is][out] */ BYTE *outBuffer);
+
+ HRESULT ( STDMETHODCALLTYPE *StartEnumAppDomains )(
+ IXCLRDataAssembly * This,
+ /* [out] */ CLRDATA_ENUM *handle);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumAppDomain )(
+ IXCLRDataAssembly * This,
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataAppDomain **appDomain);
+
+ HRESULT ( STDMETHODCALLTYPE *EndEnumAppDomains )(
+ IXCLRDataAssembly * This,
+ /* [in] */ CLRDATA_ENUM handle);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDisplayName )(
+ IXCLRDataAssembly * This,
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR name[ ]);
+
+ END_INTERFACE
+ } IXCLRDataAssemblyVtbl;
+
+ interface IXCLRDataAssembly
+ {
+ CONST_VTBL struct IXCLRDataAssemblyVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IXCLRDataAssembly_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IXCLRDataAssembly_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IXCLRDataAssembly_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IXCLRDataAssembly_StartEnumModules(This,handle) \
+ ( (This)->lpVtbl -> StartEnumModules(This,handle) )
+
+#define IXCLRDataAssembly_EnumModule(This,handle,mod) \
+ ( (This)->lpVtbl -> EnumModule(This,handle,mod) )
+
+#define IXCLRDataAssembly_EndEnumModules(This,handle) \
+ ( (This)->lpVtbl -> EndEnumModules(This,handle) )
+
+#define IXCLRDataAssembly_GetName(This,bufLen,nameLen,name) \
+ ( (This)->lpVtbl -> GetName(This,bufLen,nameLen,name) )
+
+#define IXCLRDataAssembly_GetFileName(This,bufLen,nameLen,name) \
+ ( (This)->lpVtbl -> GetFileName(This,bufLen,nameLen,name) )
+
+#define IXCLRDataAssembly_GetFlags(This,flags) \
+ ( (This)->lpVtbl -> GetFlags(This,flags) )
+
+#define IXCLRDataAssembly_IsSameObject(This,assembly) \
+ ( (This)->lpVtbl -> IsSameObject(This,assembly) )
+
+#define IXCLRDataAssembly_Request(This,reqCode,inBufferSize,inBuffer,outBufferSize,outBuffer) \
+ ( (This)->lpVtbl -> Request(This,reqCode,inBufferSize,inBuffer,outBufferSize,outBuffer) )
+
+#define IXCLRDataAssembly_StartEnumAppDomains(This,handle) \
+ ( (This)->lpVtbl -> StartEnumAppDomains(This,handle) )
+
+#define IXCLRDataAssembly_EnumAppDomain(This,handle,appDomain) \
+ ( (This)->lpVtbl -> EnumAppDomain(This,handle,appDomain) )
+
+#define IXCLRDataAssembly_EndEnumAppDomains(This,handle) \
+ ( (This)->lpVtbl -> EndEnumAppDomains(This,handle) )
+
+#define IXCLRDataAssembly_GetDisplayName(This,bufLen,nameLen,name) \
+ ( (This)->lpVtbl -> GetDisplayName(This,bufLen,nameLen,name) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IXCLRDataAssembly_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_xclrdata_0000_0008 */
+/* [local] */
+
+#pragma warning(pop)
+typedef /* [public] */
+enum __MIDL___MIDL_itf_xclrdata_0000_0008_0001
+ {
+ CLRDATA_MODULE_DEFAULT = 0,
+ CLRDATA_MODULE_IS_DYNAMIC = 0x1,
+ CLRDATA_MODULE_IS_MEMORY_STREAM = 0x2
+ } CLRDataModuleFlag;
+
+typedef /* [public][public][public] */
+enum __MIDL___MIDL_itf_xclrdata_0000_0008_0002
+ {
+ CLRDATA_MODULE_PE_FILE = 0,
+ CLRDATA_MODULE_PREJIT_FILE = ( CLRDATA_MODULE_PE_FILE + 1 ) ,
+ CLRDATA_MODULE_MEMORY_STREAM = ( CLRDATA_MODULE_PREJIT_FILE + 1 ) ,
+ CLRDATA_MODULE_OTHER = ( CLRDATA_MODULE_MEMORY_STREAM + 1 )
+ } CLRDataModuleExtentType;
+
+typedef /* [public][public] */ struct __MIDL___MIDL_itf_xclrdata_0000_0008_0003
+ {
+ CLRDATA_ADDRESS base;
+ ULONG32 length;
+ CLRDataModuleExtentType type;
+ } CLRDATA_MODULE_EXTENT;
+
+typedef /* [public] */
+enum __MIDL___MIDL_itf_xclrdata_0000_0008_0004
+ {
+ CLRDATA_TYPENOTIFY_NONE = 0,
+ CLRDATA_TYPENOTIFY_LOADED = 0x1,
+ CLRDATA_TYPENOTIFY_UNLOADED = 0x2
+ } CLRDataTypeNotification;
+
+typedef /* [public] */
+enum __MIDL___MIDL_itf_xclrdata_0000_0008_0005
+ {
+ CLRDATA_METHNOTIFY_NONE = 0,
+ CLRDATA_METHNOTIFY_GENERATED = 0x1,
+ CLRDATA_METHNOTIFY_DISCARDED = 0x2
+ } CLRDataMethodCodeNotification;
+
+#pragma warning(push)
+#pragma warning(disable:28718)
+
+
+extern RPC_IF_HANDLE __MIDL_itf_xclrdata_0000_0008_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_xclrdata_0000_0008_v0_0_s_ifspec;
+
+#ifndef __IXCLRDataModule_INTERFACE_DEFINED__
+#define __IXCLRDataModule_INTERFACE_DEFINED__
+
+/* interface IXCLRDataModule */
+/* [uuid][local][object] */
+
+
+EXTERN_C const IID IID_IXCLRDataModule;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("88E32849-0A0A-4cb0-9022-7CD2E9E139E2")
+ IXCLRDataModule : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE StartEnumAssemblies(
+ /* [out] */ CLRDATA_ENUM *handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumAssembly(
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataAssembly **assembly) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EndEnumAssemblies(
+ /* [in] */ CLRDATA_ENUM handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StartEnumTypeDefinitions(
+ /* [out] */ CLRDATA_ENUM *handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumTypeDefinition(
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataTypeDefinition **typeDefinition) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EndEnumTypeDefinitions(
+ /* [in] */ CLRDATA_ENUM handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StartEnumTypeInstances(
+ /* [in] */ IXCLRDataAppDomain *appDomain,
+ /* [out] */ CLRDATA_ENUM *handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumTypeInstance(
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataTypeInstance **typeInstance) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EndEnumTypeInstances(
+ /* [in] */ CLRDATA_ENUM handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StartEnumTypeDefinitionsByName(
+ /* [in] */ LPCWSTR name,
+ /* [in] */ ULONG32 flags,
+ /* [out] */ CLRDATA_ENUM *handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumTypeDefinitionByName(
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataTypeDefinition **type) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EndEnumTypeDefinitionsByName(
+ /* [in] */ CLRDATA_ENUM handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StartEnumTypeInstancesByName(
+ /* [in] */ LPCWSTR name,
+ /* [in] */ ULONG32 flags,
+ /* [in] */ IXCLRDataAppDomain *appDomain,
+ /* [out] */ CLRDATA_ENUM *handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumTypeInstanceByName(
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataTypeInstance **type) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EndEnumTypeInstancesByName(
+ /* [in] */ CLRDATA_ENUM handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetTypeDefinitionByToken(
+ /* [in] */ mdTypeDef token,
+ /* [out] */ IXCLRDataTypeDefinition **typeDefinition) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StartEnumMethodDefinitionsByName(
+ /* [in] */ LPCWSTR name,
+ /* [in] */ ULONG32 flags,
+ /* [out] */ CLRDATA_ENUM *handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumMethodDefinitionByName(
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataMethodDefinition **method) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EndEnumMethodDefinitionsByName(
+ /* [in] */ CLRDATA_ENUM handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StartEnumMethodInstancesByName(
+ /* [in] */ LPCWSTR name,
+ /* [in] */ ULONG32 flags,
+ /* [in] */ IXCLRDataAppDomain *appDomain,
+ /* [out] */ CLRDATA_ENUM *handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumMethodInstanceByName(
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataMethodInstance **method) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EndEnumMethodInstancesByName(
+ /* [in] */ CLRDATA_ENUM handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetMethodDefinitionByToken(
+ /* [in] */ mdMethodDef token,
+ /* [out] */ IXCLRDataMethodDefinition **methodDefinition) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StartEnumDataByName(
+ /* [in] */ LPCWSTR name,
+ /* [in] */ ULONG32 flags,
+ /* [in] */ IXCLRDataAppDomain *appDomain,
+ /* [in] */ IXCLRDataTask *tlsTask,
+ /* [out] */ CLRDATA_ENUM *handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumDataByName(
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataValue **value) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EndEnumDataByName(
+ /* [in] */ CLRDATA_ENUM handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetName(
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR name[ ]) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetFileName(
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR name[ ]) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetFlags(
+ /* [out] */ ULONG32 *flags) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE IsSameObject(
+ /* [in] */ IXCLRDataModule *mod) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StartEnumExtents(
+ /* [out] */ CLRDATA_ENUM *handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumExtent(
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ CLRDATA_MODULE_EXTENT *extent) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EndEnumExtents(
+ /* [in] */ CLRDATA_ENUM handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Request(
+ /* [in] */ ULONG32 reqCode,
+ /* [in] */ ULONG32 inBufferSize,
+ /* [size_is][in] */ BYTE *inBuffer,
+ /* [in] */ ULONG32 outBufferSize,
+ /* [size_is][out] */ BYTE *outBuffer) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StartEnumAppDomains(
+ /* [out] */ CLRDATA_ENUM *handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumAppDomain(
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataAppDomain **appDomain) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EndEnumAppDomains(
+ /* [in] */ CLRDATA_ENUM handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetVersionId(
+ /* [out] */ GUID *vid) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IXCLRDataModuleVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IXCLRDataModule * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IXCLRDataModule * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IXCLRDataModule * This);
+
+ HRESULT ( STDMETHODCALLTYPE *StartEnumAssemblies )(
+ IXCLRDataModule * This,
+ /* [out] */ CLRDATA_ENUM *handle);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumAssembly )(
+ IXCLRDataModule * This,
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataAssembly **assembly);
+
+ HRESULT ( STDMETHODCALLTYPE *EndEnumAssemblies )(
+ IXCLRDataModule * This,
+ /* [in] */ CLRDATA_ENUM handle);
+
+ HRESULT ( STDMETHODCALLTYPE *StartEnumTypeDefinitions )(
+ IXCLRDataModule * This,
+ /* [out] */ CLRDATA_ENUM *handle);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumTypeDefinition )(
+ IXCLRDataModule * This,
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataTypeDefinition **typeDefinition);
+
+ HRESULT ( STDMETHODCALLTYPE *EndEnumTypeDefinitions )(
+ IXCLRDataModule * This,
+ /* [in] */ CLRDATA_ENUM handle);
+
+ HRESULT ( STDMETHODCALLTYPE *StartEnumTypeInstances )(
+ IXCLRDataModule * This,
+ /* [in] */ IXCLRDataAppDomain *appDomain,
+ /* [out] */ CLRDATA_ENUM *handle);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumTypeInstance )(
+ IXCLRDataModule * This,
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataTypeInstance **typeInstance);
+
+ HRESULT ( STDMETHODCALLTYPE *EndEnumTypeInstances )(
+ IXCLRDataModule * This,
+ /* [in] */ CLRDATA_ENUM handle);
+
+ HRESULT ( STDMETHODCALLTYPE *StartEnumTypeDefinitionsByName )(
+ IXCLRDataModule * This,
+ /* [in] */ LPCWSTR name,
+ /* [in] */ ULONG32 flags,
+ /* [out] */ CLRDATA_ENUM *handle);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumTypeDefinitionByName )(
+ IXCLRDataModule * This,
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataTypeDefinition **type);
+
+ HRESULT ( STDMETHODCALLTYPE *EndEnumTypeDefinitionsByName )(
+ IXCLRDataModule * This,
+ /* [in] */ CLRDATA_ENUM handle);
+
+ HRESULT ( STDMETHODCALLTYPE *StartEnumTypeInstancesByName )(
+ IXCLRDataModule * This,
+ /* [in] */ LPCWSTR name,
+ /* [in] */ ULONG32 flags,
+ /* [in] */ IXCLRDataAppDomain *appDomain,
+ /* [out] */ CLRDATA_ENUM *handle);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumTypeInstanceByName )(
+ IXCLRDataModule * This,
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataTypeInstance **type);
+
+ HRESULT ( STDMETHODCALLTYPE *EndEnumTypeInstancesByName )(
+ IXCLRDataModule * This,
+ /* [in] */ CLRDATA_ENUM handle);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeDefinitionByToken )(
+ IXCLRDataModule * This,
+ /* [in] */ mdTypeDef token,
+ /* [out] */ IXCLRDataTypeDefinition **typeDefinition);
+
+ HRESULT ( STDMETHODCALLTYPE *StartEnumMethodDefinitionsByName )(
+ IXCLRDataModule * This,
+ /* [in] */ LPCWSTR name,
+ /* [in] */ ULONG32 flags,
+ /* [out] */ CLRDATA_ENUM *handle);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumMethodDefinitionByName )(
+ IXCLRDataModule * This,
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataMethodDefinition **method);
+
+ HRESULT ( STDMETHODCALLTYPE *EndEnumMethodDefinitionsByName )(
+ IXCLRDataModule * This,
+ /* [in] */ CLRDATA_ENUM handle);
+
+ HRESULT ( STDMETHODCALLTYPE *StartEnumMethodInstancesByName )(
+ IXCLRDataModule * This,
+ /* [in] */ LPCWSTR name,
+ /* [in] */ ULONG32 flags,
+ /* [in] */ IXCLRDataAppDomain *appDomain,
+ /* [out] */ CLRDATA_ENUM *handle);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumMethodInstanceByName )(
+ IXCLRDataModule * This,
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataMethodInstance **method);
+
+ HRESULT ( STDMETHODCALLTYPE *EndEnumMethodInstancesByName )(
+ IXCLRDataModule * This,
+ /* [in] */ CLRDATA_ENUM handle);
+
+ HRESULT ( STDMETHODCALLTYPE *GetMethodDefinitionByToken )(
+ IXCLRDataModule * This,
+ /* [in] */ mdMethodDef token,
+ /* [out] */ IXCLRDataMethodDefinition **methodDefinition);
+
+ HRESULT ( STDMETHODCALLTYPE *StartEnumDataByName )(
+ IXCLRDataModule * This,
+ /* [in] */ LPCWSTR name,
+ /* [in] */ ULONG32 flags,
+ /* [in] */ IXCLRDataAppDomain *appDomain,
+ /* [in] */ IXCLRDataTask *tlsTask,
+ /* [out] */ CLRDATA_ENUM *handle);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumDataByName )(
+ IXCLRDataModule * This,
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataValue **value);
+
+ HRESULT ( STDMETHODCALLTYPE *EndEnumDataByName )(
+ IXCLRDataModule * This,
+ /* [in] */ CLRDATA_ENUM handle);
+
+ HRESULT ( STDMETHODCALLTYPE *GetName )(
+ IXCLRDataModule * This,
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR name[ ]);
+
+ HRESULT ( STDMETHODCALLTYPE *GetFileName )(
+ IXCLRDataModule * This,
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR name[ ]);
+
+ HRESULT ( STDMETHODCALLTYPE *GetFlags )(
+ IXCLRDataModule * This,
+ /* [out] */ ULONG32 *flags);
+
+ HRESULT ( STDMETHODCALLTYPE *IsSameObject )(
+ IXCLRDataModule * This,
+ /* [in] */ IXCLRDataModule *mod);
+
+ HRESULT ( STDMETHODCALLTYPE *StartEnumExtents )(
+ IXCLRDataModule * This,
+ /* [out] */ CLRDATA_ENUM *handle);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumExtent )(
+ IXCLRDataModule * This,
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ CLRDATA_MODULE_EXTENT *extent);
+
+ HRESULT ( STDMETHODCALLTYPE *EndEnumExtents )(
+ IXCLRDataModule * This,
+ /* [in] */ CLRDATA_ENUM handle);
+
+ HRESULT ( STDMETHODCALLTYPE *Request )(
+ IXCLRDataModule * This,
+ /* [in] */ ULONG32 reqCode,
+ /* [in] */ ULONG32 inBufferSize,
+ /* [size_is][in] */ BYTE *inBuffer,
+ /* [in] */ ULONG32 outBufferSize,
+ /* [size_is][out] */ BYTE *outBuffer);
+
+ HRESULT ( STDMETHODCALLTYPE *StartEnumAppDomains )(
+ IXCLRDataModule * This,
+ /* [out] */ CLRDATA_ENUM *handle);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumAppDomain )(
+ IXCLRDataModule * This,
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataAppDomain **appDomain);
+
+ HRESULT ( STDMETHODCALLTYPE *EndEnumAppDomains )(
+ IXCLRDataModule * This,
+ /* [in] */ CLRDATA_ENUM handle);
+
+ HRESULT ( STDMETHODCALLTYPE *GetVersionId )(
+ IXCLRDataModule * This,
+ /* [out] */ GUID *vid);
+
+ END_INTERFACE
+ } IXCLRDataModuleVtbl;
+
+ interface IXCLRDataModule
+ {
+ CONST_VTBL struct IXCLRDataModuleVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IXCLRDataModule_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IXCLRDataModule_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IXCLRDataModule_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IXCLRDataModule_StartEnumAssemblies(This,handle) \
+ ( (This)->lpVtbl -> StartEnumAssemblies(This,handle) )
+
+#define IXCLRDataModule_EnumAssembly(This,handle,assembly) \
+ ( (This)->lpVtbl -> EnumAssembly(This,handle,assembly) )
+
+#define IXCLRDataModule_EndEnumAssemblies(This,handle) \
+ ( (This)->lpVtbl -> EndEnumAssemblies(This,handle) )
+
+#define IXCLRDataModule_StartEnumTypeDefinitions(This,handle) \
+ ( (This)->lpVtbl -> StartEnumTypeDefinitions(This,handle) )
+
+#define IXCLRDataModule_EnumTypeDefinition(This,handle,typeDefinition) \
+ ( (This)->lpVtbl -> EnumTypeDefinition(This,handle,typeDefinition) )
+
+#define IXCLRDataModule_EndEnumTypeDefinitions(This,handle) \
+ ( (This)->lpVtbl -> EndEnumTypeDefinitions(This,handle) )
+
+#define IXCLRDataModule_StartEnumTypeInstances(This,appDomain,handle) \
+ ( (This)->lpVtbl -> StartEnumTypeInstances(This,appDomain,handle) )
+
+#define IXCLRDataModule_EnumTypeInstance(This,handle,typeInstance) \
+ ( (This)->lpVtbl -> EnumTypeInstance(This,handle,typeInstance) )
+
+#define IXCLRDataModule_EndEnumTypeInstances(This,handle) \
+ ( (This)->lpVtbl -> EndEnumTypeInstances(This,handle) )
+
+#define IXCLRDataModule_StartEnumTypeDefinitionsByName(This,name,flags,handle) \
+ ( (This)->lpVtbl -> StartEnumTypeDefinitionsByName(This,name,flags,handle) )
+
+#define IXCLRDataModule_EnumTypeDefinitionByName(This,handle,type) \
+ ( (This)->lpVtbl -> EnumTypeDefinitionByName(This,handle,type) )
+
+#define IXCLRDataModule_EndEnumTypeDefinitionsByName(This,handle) \
+ ( (This)->lpVtbl -> EndEnumTypeDefinitionsByName(This,handle) )
+
+#define IXCLRDataModule_StartEnumTypeInstancesByName(This,name,flags,appDomain,handle) \
+ ( (This)->lpVtbl -> StartEnumTypeInstancesByName(This,name,flags,appDomain,handle) )
+
+#define IXCLRDataModule_EnumTypeInstanceByName(This,handle,type) \
+ ( (This)->lpVtbl -> EnumTypeInstanceByName(This,handle,type) )
+
+#define IXCLRDataModule_EndEnumTypeInstancesByName(This,handle) \
+ ( (This)->lpVtbl -> EndEnumTypeInstancesByName(This,handle) )
+
+#define IXCLRDataModule_GetTypeDefinitionByToken(This,token,typeDefinition) \
+ ( (This)->lpVtbl -> GetTypeDefinitionByToken(This,token,typeDefinition) )
+
+#define IXCLRDataModule_StartEnumMethodDefinitionsByName(This,name,flags,handle) \
+ ( (This)->lpVtbl -> StartEnumMethodDefinitionsByName(This,name,flags,handle) )
+
+#define IXCLRDataModule_EnumMethodDefinitionByName(This,handle,method) \
+ ( (This)->lpVtbl -> EnumMethodDefinitionByName(This,handle,method) )
+
+#define IXCLRDataModule_EndEnumMethodDefinitionsByName(This,handle) \
+ ( (This)->lpVtbl -> EndEnumMethodDefinitionsByName(This,handle) )
+
+#define IXCLRDataModule_StartEnumMethodInstancesByName(This,name,flags,appDomain,handle) \
+ ( (This)->lpVtbl -> StartEnumMethodInstancesByName(This,name,flags,appDomain,handle) )
+
+#define IXCLRDataModule_EnumMethodInstanceByName(This,handle,method) \
+ ( (This)->lpVtbl -> EnumMethodInstanceByName(This,handle,method) )
+
+#define IXCLRDataModule_EndEnumMethodInstancesByName(This,handle) \
+ ( (This)->lpVtbl -> EndEnumMethodInstancesByName(This,handle) )
+
+#define IXCLRDataModule_GetMethodDefinitionByToken(This,token,methodDefinition) \
+ ( (This)->lpVtbl -> GetMethodDefinitionByToken(This,token,methodDefinition) )
+
+#define IXCLRDataModule_StartEnumDataByName(This,name,flags,appDomain,tlsTask,handle) \
+ ( (This)->lpVtbl -> StartEnumDataByName(This,name,flags,appDomain,tlsTask,handle) )
+
+#define IXCLRDataModule_EnumDataByName(This,handle,value) \
+ ( (This)->lpVtbl -> EnumDataByName(This,handle,value) )
+
+#define IXCLRDataModule_EndEnumDataByName(This,handle) \
+ ( (This)->lpVtbl -> EndEnumDataByName(This,handle) )
+
+#define IXCLRDataModule_GetName(This,bufLen,nameLen,name) \
+ ( (This)->lpVtbl -> GetName(This,bufLen,nameLen,name) )
+
+#define IXCLRDataModule_GetFileName(This,bufLen,nameLen,name) \
+ ( (This)->lpVtbl -> GetFileName(This,bufLen,nameLen,name) )
+
+#define IXCLRDataModule_GetFlags(This,flags) \
+ ( (This)->lpVtbl -> GetFlags(This,flags) )
+
+#define IXCLRDataModule_IsSameObject(This,mod) \
+ ( (This)->lpVtbl -> IsSameObject(This,mod) )
+
+#define IXCLRDataModule_StartEnumExtents(This,handle) \
+ ( (This)->lpVtbl -> StartEnumExtents(This,handle) )
+
+#define IXCLRDataModule_EnumExtent(This,handle,extent) \
+ ( (This)->lpVtbl -> EnumExtent(This,handle,extent) )
+
+#define IXCLRDataModule_EndEnumExtents(This,handle) \
+ ( (This)->lpVtbl -> EndEnumExtents(This,handle) )
+
+#define IXCLRDataModule_Request(This,reqCode,inBufferSize,inBuffer,outBufferSize,outBuffer) \
+ ( (This)->lpVtbl -> Request(This,reqCode,inBufferSize,inBuffer,outBufferSize,outBuffer) )
+
+#define IXCLRDataModule_StartEnumAppDomains(This,handle) \
+ ( (This)->lpVtbl -> StartEnumAppDomains(This,handle) )
+
+#define IXCLRDataModule_EnumAppDomain(This,handle,appDomain) \
+ ( (This)->lpVtbl -> EnumAppDomain(This,handle,appDomain) )
+
+#define IXCLRDataModule_EndEnumAppDomains(This,handle) \
+ ( (This)->lpVtbl -> EndEnumAppDomains(This,handle) )
+
+#define IXCLRDataModule_GetVersionId(This,vid) \
+ ( (This)->lpVtbl -> GetVersionId(This,vid) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IXCLRDataModule_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_xclrdata_0000_0009 */
+/* [local] */
+
+#pragma warning(pop)
+
+
+extern RPC_IF_HANDLE __MIDL_itf_xclrdata_0000_0009_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_xclrdata_0000_0009_v0_0_s_ifspec;
+
+#ifndef __IXCLRDataModule2_INTERFACE_DEFINED__
+#define __IXCLRDataModule2_INTERFACE_DEFINED__
+
+/* interface IXCLRDataModule2 */
+/* [uuid][local][object] */
+
+
+EXTERN_C const IID IID_IXCLRDataModule2;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("34625881-7EB3-4524-817B-8DB9D064C760")
+ IXCLRDataModule2 : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE SetJITCompilerFlags(
+ /* [in] */ DWORD dwFlags) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IXCLRDataModule2Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IXCLRDataModule2 * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IXCLRDataModule2 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IXCLRDataModule2 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *SetJITCompilerFlags )(
+ IXCLRDataModule2 * This,
+ /* [in] */ DWORD dwFlags);
+
+ END_INTERFACE
+ } IXCLRDataModule2Vtbl;
+
+ interface IXCLRDataModule2
+ {
+ CONST_VTBL struct IXCLRDataModule2Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IXCLRDataModule2_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IXCLRDataModule2_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IXCLRDataModule2_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IXCLRDataModule2_SetJITCompilerFlags(This,dwFlags) \
+ ( (This)->lpVtbl -> SetJITCompilerFlags(This,dwFlags) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IXCLRDataModule2_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_xclrdata_0000_0010 */
+/* [local] */
+
+#pragma warning(push)
+#pragma warning(disable:28718)
+
+
+extern RPC_IF_HANDLE __MIDL_itf_xclrdata_0000_0010_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_xclrdata_0000_0010_v0_0_s_ifspec;
+
+#ifndef __IXCLRDataTypeDefinition_INTERFACE_DEFINED__
+#define __IXCLRDataTypeDefinition_INTERFACE_DEFINED__
+
+/* interface IXCLRDataTypeDefinition */
+/* [uuid][local][object] */
+
+
+EXTERN_C const IID IID_IXCLRDataTypeDefinition;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("4675666C-C275-45b8-9F6C-AB165D5C1E09")
+ IXCLRDataTypeDefinition : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE GetModule(
+ /* [out] */ IXCLRDataModule **mod) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StartEnumMethodDefinitions(
+ /* [out] */ CLRDATA_ENUM *handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumMethodDefinition(
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataMethodDefinition **methodDefinition) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EndEnumMethodDefinitions(
+ /* [in] */ CLRDATA_ENUM handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StartEnumMethodDefinitionsByName(
+ /* [in] */ LPCWSTR name,
+ /* [in] */ ULONG32 flags,
+ /* [out] */ CLRDATA_ENUM *handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumMethodDefinitionByName(
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataMethodDefinition **method) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EndEnumMethodDefinitionsByName(
+ /* [in] */ CLRDATA_ENUM handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetMethodDefinitionByToken(
+ /* [in] */ mdMethodDef token,
+ /* [out] */ IXCLRDataMethodDefinition **methodDefinition) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StartEnumInstances(
+ /* [in] */ IXCLRDataAppDomain *appDomain,
+ /* [out] */ CLRDATA_ENUM *handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumInstance(
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataTypeInstance **instance) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EndEnumInstances(
+ /* [in] */ CLRDATA_ENUM handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetName(
+ /* [in] */ ULONG32 flags,
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR nameBuf[ ]) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetTokenAndScope(
+ /* [out] */ mdTypeDef *token,
+ /* [out] */ IXCLRDataModule **mod) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetCorElementType(
+ /* [out] */ CorElementType *type) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetFlags(
+ /* [out] */ ULONG32 *flags) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE IsSameObject(
+ /* [in] */ IXCLRDataTypeDefinition *type) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Request(
+ /* [in] */ ULONG32 reqCode,
+ /* [in] */ ULONG32 inBufferSize,
+ /* [size_is][in] */ BYTE *inBuffer,
+ /* [in] */ ULONG32 outBufferSize,
+ /* [size_is][out] */ BYTE *outBuffer) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetArrayRank(
+ /* [out] */ ULONG32 *rank) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetBase(
+ /* [out] */ IXCLRDataTypeDefinition **base) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetNumFields(
+ /* [in] */ ULONG32 flags,
+ /* [out] */ ULONG32 *numFields) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StartEnumFields(
+ /* [in] */ ULONG32 flags,
+ /* [out] */ CLRDATA_ENUM *handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumField(
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [in] */ ULONG32 nameBufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR nameBuf[ ],
+ /* [out] */ IXCLRDataTypeDefinition **type,
+ /* [out] */ ULONG32 *flags,
+ /* [out] */ mdFieldDef *token) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EndEnumFields(
+ /* [in] */ CLRDATA_ENUM handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StartEnumFieldsByName(
+ /* [in] */ LPCWSTR name,
+ /* [in] */ ULONG32 nameFlags,
+ /* [in] */ ULONG32 fieldFlags,
+ /* [out] */ CLRDATA_ENUM *handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumFieldByName(
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataTypeDefinition **type,
+ /* [out] */ ULONG32 *flags,
+ /* [out] */ mdFieldDef *token) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EndEnumFieldsByName(
+ /* [in] */ CLRDATA_ENUM handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetFieldByToken(
+ /* [in] */ mdFieldDef token,
+ /* [in] */ ULONG32 nameBufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR nameBuf[ ],
+ /* [out] */ IXCLRDataTypeDefinition **type,
+ /* [out] */ ULONG32 *flags) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetTypeNotification(
+ /* [out] */ ULONG32 *flags) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetTypeNotification(
+ /* [in] */ ULONG32 flags) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumField2(
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [in] */ ULONG32 nameBufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR nameBuf[ ],
+ /* [out] */ IXCLRDataTypeDefinition **type,
+ /* [out] */ ULONG32 *flags,
+ /* [out] */ IXCLRDataModule **tokenScope,
+ /* [out] */ mdFieldDef *token) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumFieldByName2(
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataTypeDefinition **type,
+ /* [out] */ ULONG32 *flags,
+ /* [out] */ IXCLRDataModule **tokenScope,
+ /* [out] */ mdFieldDef *token) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetFieldByToken2(
+ /* [in] */ IXCLRDataModule *tokenScope,
+ /* [in] */ mdFieldDef token,
+ /* [in] */ ULONG32 nameBufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR nameBuf[ ],
+ /* [out] */ IXCLRDataTypeDefinition **type,
+ /* [out] */ ULONG32 *flags) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IXCLRDataTypeDefinitionVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IXCLRDataTypeDefinition * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IXCLRDataTypeDefinition * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IXCLRDataTypeDefinition * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetModule )(
+ IXCLRDataTypeDefinition * This,
+ /* [out] */ IXCLRDataModule **mod);
+
+ HRESULT ( STDMETHODCALLTYPE *StartEnumMethodDefinitions )(
+ IXCLRDataTypeDefinition * This,
+ /* [out] */ CLRDATA_ENUM *handle);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumMethodDefinition )(
+ IXCLRDataTypeDefinition * This,
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataMethodDefinition **methodDefinition);
+
+ HRESULT ( STDMETHODCALLTYPE *EndEnumMethodDefinitions )(
+ IXCLRDataTypeDefinition * This,
+ /* [in] */ CLRDATA_ENUM handle);
+
+ HRESULT ( STDMETHODCALLTYPE *StartEnumMethodDefinitionsByName )(
+ IXCLRDataTypeDefinition * This,
+ /* [in] */ LPCWSTR name,
+ /* [in] */ ULONG32 flags,
+ /* [out] */ CLRDATA_ENUM *handle);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumMethodDefinitionByName )(
+ IXCLRDataTypeDefinition * This,
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataMethodDefinition **method);
+
+ HRESULT ( STDMETHODCALLTYPE *EndEnumMethodDefinitionsByName )(
+ IXCLRDataTypeDefinition * This,
+ /* [in] */ CLRDATA_ENUM handle);
+
+ HRESULT ( STDMETHODCALLTYPE *GetMethodDefinitionByToken )(
+ IXCLRDataTypeDefinition * This,
+ /* [in] */ mdMethodDef token,
+ /* [out] */ IXCLRDataMethodDefinition **methodDefinition);
+
+ HRESULT ( STDMETHODCALLTYPE *StartEnumInstances )(
+ IXCLRDataTypeDefinition * This,
+ /* [in] */ IXCLRDataAppDomain *appDomain,
+ /* [out] */ CLRDATA_ENUM *handle);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumInstance )(
+ IXCLRDataTypeDefinition * This,
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataTypeInstance **instance);
+
+ HRESULT ( STDMETHODCALLTYPE *EndEnumInstances )(
+ IXCLRDataTypeDefinition * This,
+ /* [in] */ CLRDATA_ENUM handle);
+
+ HRESULT ( STDMETHODCALLTYPE *GetName )(
+ IXCLRDataTypeDefinition * This,
+ /* [in] */ ULONG32 flags,
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR nameBuf[ ]);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTokenAndScope )(
+ IXCLRDataTypeDefinition * This,
+ /* [out] */ mdTypeDef *token,
+ /* [out] */ IXCLRDataModule **mod);
+
+ HRESULT ( STDMETHODCALLTYPE *GetCorElementType )(
+ IXCLRDataTypeDefinition * This,
+ /* [out] */ CorElementType *type);
+
+ HRESULT ( STDMETHODCALLTYPE *GetFlags )(
+ IXCLRDataTypeDefinition * This,
+ /* [out] */ ULONG32 *flags);
+
+ HRESULT ( STDMETHODCALLTYPE *IsSameObject )(
+ IXCLRDataTypeDefinition * This,
+ /* [in] */ IXCLRDataTypeDefinition *type);
+
+ HRESULT ( STDMETHODCALLTYPE *Request )(
+ IXCLRDataTypeDefinition * This,
+ /* [in] */ ULONG32 reqCode,
+ /* [in] */ ULONG32 inBufferSize,
+ /* [size_is][in] */ BYTE *inBuffer,
+ /* [in] */ ULONG32 outBufferSize,
+ /* [size_is][out] */ BYTE *outBuffer);
+
+ HRESULT ( STDMETHODCALLTYPE *GetArrayRank )(
+ IXCLRDataTypeDefinition * This,
+ /* [out] */ ULONG32 *rank);
+
+ HRESULT ( STDMETHODCALLTYPE *GetBase )(
+ IXCLRDataTypeDefinition * This,
+ /* [out] */ IXCLRDataTypeDefinition **base);
+
+ HRESULT ( STDMETHODCALLTYPE *GetNumFields )(
+ IXCLRDataTypeDefinition * This,
+ /* [in] */ ULONG32 flags,
+ /* [out] */ ULONG32 *numFields);
+
+ HRESULT ( STDMETHODCALLTYPE *StartEnumFields )(
+ IXCLRDataTypeDefinition * This,
+ /* [in] */ ULONG32 flags,
+ /* [out] */ CLRDATA_ENUM *handle);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumField )(
+ IXCLRDataTypeDefinition * This,
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [in] */ ULONG32 nameBufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR nameBuf[ ],
+ /* [out] */ IXCLRDataTypeDefinition **type,
+ /* [out] */ ULONG32 *flags,
+ /* [out] */ mdFieldDef *token);
+
+ HRESULT ( STDMETHODCALLTYPE *EndEnumFields )(
+ IXCLRDataTypeDefinition * This,
+ /* [in] */ CLRDATA_ENUM handle);
+
+ HRESULT ( STDMETHODCALLTYPE *StartEnumFieldsByName )(
+ IXCLRDataTypeDefinition * This,
+ /* [in] */ LPCWSTR name,
+ /* [in] */ ULONG32 nameFlags,
+ /* [in] */ ULONG32 fieldFlags,
+ /* [out] */ CLRDATA_ENUM *handle);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumFieldByName )(
+ IXCLRDataTypeDefinition * This,
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataTypeDefinition **type,
+ /* [out] */ ULONG32 *flags,
+ /* [out] */ mdFieldDef *token);
+
+ HRESULT ( STDMETHODCALLTYPE *EndEnumFieldsByName )(
+ IXCLRDataTypeDefinition * This,
+ /* [in] */ CLRDATA_ENUM handle);
+
+ HRESULT ( STDMETHODCALLTYPE *GetFieldByToken )(
+ IXCLRDataTypeDefinition * This,
+ /* [in] */ mdFieldDef token,
+ /* [in] */ ULONG32 nameBufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR nameBuf[ ],
+ /* [out] */ IXCLRDataTypeDefinition **type,
+ /* [out] */ ULONG32 *flags);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeNotification )(
+ IXCLRDataTypeDefinition * This,
+ /* [out] */ ULONG32 *flags);
+
+ HRESULT ( STDMETHODCALLTYPE *SetTypeNotification )(
+ IXCLRDataTypeDefinition * This,
+ /* [in] */ ULONG32 flags);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumField2 )(
+ IXCLRDataTypeDefinition * This,
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [in] */ ULONG32 nameBufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR nameBuf[ ],
+ /* [out] */ IXCLRDataTypeDefinition **type,
+ /* [out] */ ULONG32 *flags,
+ /* [out] */ IXCLRDataModule **tokenScope,
+ /* [out] */ mdFieldDef *token);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumFieldByName2 )(
+ IXCLRDataTypeDefinition * This,
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataTypeDefinition **type,
+ /* [out] */ ULONG32 *flags,
+ /* [out] */ IXCLRDataModule **tokenScope,
+ /* [out] */ mdFieldDef *token);
+
+ HRESULT ( STDMETHODCALLTYPE *GetFieldByToken2 )(
+ IXCLRDataTypeDefinition * This,
+ /* [in] */ IXCLRDataModule *tokenScope,
+ /* [in] */ mdFieldDef token,
+ /* [in] */ ULONG32 nameBufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR nameBuf[ ],
+ /* [out] */ IXCLRDataTypeDefinition **type,
+ /* [out] */ ULONG32 *flags);
+
+ END_INTERFACE
+ } IXCLRDataTypeDefinitionVtbl;
+
+ interface IXCLRDataTypeDefinition
+ {
+ CONST_VTBL struct IXCLRDataTypeDefinitionVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IXCLRDataTypeDefinition_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IXCLRDataTypeDefinition_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IXCLRDataTypeDefinition_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IXCLRDataTypeDefinition_GetModule(This,mod) \
+ ( (This)->lpVtbl -> GetModule(This,mod) )
+
+#define IXCLRDataTypeDefinition_StartEnumMethodDefinitions(This,handle) \
+ ( (This)->lpVtbl -> StartEnumMethodDefinitions(This,handle) )
+
+#define IXCLRDataTypeDefinition_EnumMethodDefinition(This,handle,methodDefinition) \
+ ( (This)->lpVtbl -> EnumMethodDefinition(This,handle,methodDefinition) )
+
+#define IXCLRDataTypeDefinition_EndEnumMethodDefinitions(This,handle) \
+ ( (This)->lpVtbl -> EndEnumMethodDefinitions(This,handle) )
+
+#define IXCLRDataTypeDefinition_StartEnumMethodDefinitionsByName(This,name,flags,handle) \
+ ( (This)->lpVtbl -> StartEnumMethodDefinitionsByName(This,name,flags,handle) )
+
+#define IXCLRDataTypeDefinition_EnumMethodDefinitionByName(This,handle,method) \
+ ( (This)->lpVtbl -> EnumMethodDefinitionByName(This,handle,method) )
+
+#define IXCLRDataTypeDefinition_EndEnumMethodDefinitionsByName(This,handle) \
+ ( (This)->lpVtbl -> EndEnumMethodDefinitionsByName(This,handle) )
+
+#define IXCLRDataTypeDefinition_GetMethodDefinitionByToken(This,token,methodDefinition) \
+ ( (This)->lpVtbl -> GetMethodDefinitionByToken(This,token,methodDefinition) )
+
+#define IXCLRDataTypeDefinition_StartEnumInstances(This,appDomain,handle) \
+ ( (This)->lpVtbl -> StartEnumInstances(This,appDomain,handle) )
+
+#define IXCLRDataTypeDefinition_EnumInstance(This,handle,instance) \
+ ( (This)->lpVtbl -> EnumInstance(This,handle,instance) )
+
+#define IXCLRDataTypeDefinition_EndEnumInstances(This,handle) \
+ ( (This)->lpVtbl -> EndEnumInstances(This,handle) )
+
+#define IXCLRDataTypeDefinition_GetName(This,flags,bufLen,nameLen,nameBuf) \
+ ( (This)->lpVtbl -> GetName(This,flags,bufLen,nameLen,nameBuf) )
+
+#define IXCLRDataTypeDefinition_GetTokenAndScope(This,token,mod) \
+ ( (This)->lpVtbl -> GetTokenAndScope(This,token,mod) )
+
+#define IXCLRDataTypeDefinition_GetCorElementType(This,type) \
+ ( (This)->lpVtbl -> GetCorElementType(This,type) )
+
+#define IXCLRDataTypeDefinition_GetFlags(This,flags) \
+ ( (This)->lpVtbl -> GetFlags(This,flags) )
+
+#define IXCLRDataTypeDefinition_IsSameObject(This,type) \
+ ( (This)->lpVtbl -> IsSameObject(This,type) )
+
+#define IXCLRDataTypeDefinition_Request(This,reqCode,inBufferSize,inBuffer,outBufferSize,outBuffer) \
+ ( (This)->lpVtbl -> Request(This,reqCode,inBufferSize,inBuffer,outBufferSize,outBuffer) )
+
+#define IXCLRDataTypeDefinition_GetArrayRank(This,rank) \
+ ( (This)->lpVtbl -> GetArrayRank(This,rank) )
+
+#define IXCLRDataTypeDefinition_GetBase(This,base) \
+ ( (This)->lpVtbl -> GetBase(This,base) )
+
+#define IXCLRDataTypeDefinition_GetNumFields(This,flags,numFields) \
+ ( (This)->lpVtbl -> GetNumFields(This,flags,numFields) )
+
+#define IXCLRDataTypeDefinition_StartEnumFields(This,flags,handle) \
+ ( (This)->lpVtbl -> StartEnumFields(This,flags,handle) )
+
+#define IXCLRDataTypeDefinition_EnumField(This,handle,nameBufLen,nameLen,nameBuf,type,flags,token) \
+ ( (This)->lpVtbl -> EnumField(This,handle,nameBufLen,nameLen,nameBuf,type,flags,token) )
+
+#define IXCLRDataTypeDefinition_EndEnumFields(This,handle) \
+ ( (This)->lpVtbl -> EndEnumFields(This,handle) )
+
+#define IXCLRDataTypeDefinition_StartEnumFieldsByName(This,name,nameFlags,fieldFlags,handle) \
+ ( (This)->lpVtbl -> StartEnumFieldsByName(This,name,nameFlags,fieldFlags,handle) )
+
+#define IXCLRDataTypeDefinition_EnumFieldByName(This,handle,type,flags,token) \
+ ( (This)->lpVtbl -> EnumFieldByName(This,handle,type,flags,token) )
+
+#define IXCLRDataTypeDefinition_EndEnumFieldsByName(This,handle) \
+ ( (This)->lpVtbl -> EndEnumFieldsByName(This,handle) )
+
+#define IXCLRDataTypeDefinition_GetFieldByToken(This,token,nameBufLen,nameLen,nameBuf,type,flags) \
+ ( (This)->lpVtbl -> GetFieldByToken(This,token,nameBufLen,nameLen,nameBuf,type,flags) )
+
+#define IXCLRDataTypeDefinition_GetTypeNotification(This,flags) \
+ ( (This)->lpVtbl -> GetTypeNotification(This,flags) )
+
+#define IXCLRDataTypeDefinition_SetTypeNotification(This,flags) \
+ ( (This)->lpVtbl -> SetTypeNotification(This,flags) )
+
+#define IXCLRDataTypeDefinition_EnumField2(This,handle,nameBufLen,nameLen,nameBuf,type,flags,tokenScope,token) \
+ ( (This)->lpVtbl -> EnumField2(This,handle,nameBufLen,nameLen,nameBuf,type,flags,tokenScope,token) )
+
+#define IXCLRDataTypeDefinition_EnumFieldByName2(This,handle,type,flags,tokenScope,token) \
+ ( (This)->lpVtbl -> EnumFieldByName2(This,handle,type,flags,tokenScope,token) )
+
+#define IXCLRDataTypeDefinition_GetFieldByToken2(This,tokenScope,token,nameBufLen,nameLen,nameBuf,type,flags) \
+ ( (This)->lpVtbl -> GetFieldByToken2(This,tokenScope,token,nameBufLen,nameLen,nameBuf,type,flags) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IXCLRDataTypeDefinition_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_xclrdata_0000_0011 */
+/* [local] */
+
+#pragma warning(pop)
+#pragma warning(push)
+#pragma warning(disable:28718)
+
+
+extern RPC_IF_HANDLE __MIDL_itf_xclrdata_0000_0011_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_xclrdata_0000_0011_v0_0_s_ifspec;
+
+#ifndef __IXCLRDataTypeInstance_INTERFACE_DEFINED__
+#define __IXCLRDataTypeInstance_INTERFACE_DEFINED__
+
+/* interface IXCLRDataTypeInstance */
+/* [uuid][local][object] */
+
+
+EXTERN_C const IID IID_IXCLRDataTypeInstance;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("4D078D91-9CB3-4b0d-97AC-28C8A5A82597")
+ IXCLRDataTypeInstance : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE StartEnumMethodInstances(
+ /* [out] */ CLRDATA_ENUM *handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumMethodInstance(
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataMethodInstance **methodInstance) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EndEnumMethodInstances(
+ /* [in] */ CLRDATA_ENUM handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StartEnumMethodInstancesByName(
+ /* [in] */ LPCWSTR name,
+ /* [in] */ ULONG32 flags,
+ /* [out] */ CLRDATA_ENUM *handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumMethodInstanceByName(
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataMethodInstance **method) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EndEnumMethodInstancesByName(
+ /* [in] */ CLRDATA_ENUM handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetNumStaticFields(
+ /* [out] */ ULONG32 *numFields) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetStaticFieldByIndex(
+ /* [in] */ ULONG32 index,
+ /* [in] */ IXCLRDataTask *tlsTask,
+ /* [out] */ IXCLRDataValue **field,
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR nameBuf[ ],
+ /* [out] */ mdFieldDef *token) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StartEnumStaticFieldsByName(
+ /* [in] */ LPCWSTR name,
+ /* [in] */ ULONG32 flags,
+ /* [in] */ IXCLRDataTask *tlsTask,
+ /* [out] */ CLRDATA_ENUM *handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumStaticFieldByName(
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataValue **value) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EndEnumStaticFieldsByName(
+ /* [in] */ CLRDATA_ENUM handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetNumTypeArguments(
+ /* [out] */ ULONG32 *numTypeArgs) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetTypeArgumentByIndex(
+ /* [in] */ ULONG32 index,
+ /* [out] */ IXCLRDataTypeInstance **typeArg) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetName(
+ /* [in] */ ULONG32 flags,
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR nameBuf[ ]) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetModule(
+ /* [out] */ IXCLRDataModule **mod) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetDefinition(
+ /* [out] */ IXCLRDataTypeDefinition **typeDefinition) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetFlags(
+ /* [out] */ ULONG32 *flags) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE IsSameObject(
+ /* [in] */ IXCLRDataTypeInstance *type) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Request(
+ /* [in] */ ULONG32 reqCode,
+ /* [in] */ ULONG32 inBufferSize,
+ /* [size_is][in] */ BYTE *inBuffer,
+ /* [in] */ ULONG32 outBufferSize,
+ /* [size_is][out] */ BYTE *outBuffer) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetNumStaticFields2(
+ /* [in] */ ULONG32 flags,
+ /* [out] */ ULONG32 *numFields) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StartEnumStaticFields(
+ /* [in] */ ULONG32 flags,
+ /* [in] */ IXCLRDataTask *tlsTask,
+ /* [out] */ CLRDATA_ENUM *handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumStaticField(
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataValue **value) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EndEnumStaticFields(
+ /* [in] */ CLRDATA_ENUM handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StartEnumStaticFieldsByName2(
+ /* [in] */ LPCWSTR name,
+ /* [in] */ ULONG32 nameFlags,
+ /* [in] */ ULONG32 fieldFlags,
+ /* [in] */ IXCLRDataTask *tlsTask,
+ /* [out] */ CLRDATA_ENUM *handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumStaticFieldByName2(
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataValue **value) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EndEnumStaticFieldsByName2(
+ /* [in] */ CLRDATA_ENUM handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetStaticFieldByToken(
+ /* [in] */ mdFieldDef token,
+ /* [in] */ IXCLRDataTask *tlsTask,
+ /* [out] */ IXCLRDataValue **field,
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR nameBuf[ ]) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetBase(
+ /* [out] */ IXCLRDataTypeInstance **base) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumStaticField2(
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataValue **value,
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR nameBuf[ ],
+ /* [out] */ IXCLRDataModule **tokenScope,
+ /* [out] */ mdFieldDef *token) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumStaticFieldByName3(
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataValue **value,
+ /* [out] */ IXCLRDataModule **tokenScope,
+ /* [out] */ mdFieldDef *token) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetStaticFieldByToken2(
+ /* [in] */ IXCLRDataModule *tokenScope,
+ /* [in] */ mdFieldDef token,
+ /* [in] */ IXCLRDataTask *tlsTask,
+ /* [out] */ IXCLRDataValue **field,
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR nameBuf[ ]) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IXCLRDataTypeInstanceVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IXCLRDataTypeInstance * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IXCLRDataTypeInstance * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IXCLRDataTypeInstance * This);
+
+ HRESULT ( STDMETHODCALLTYPE *StartEnumMethodInstances )(
+ IXCLRDataTypeInstance * This,
+ /* [out] */ CLRDATA_ENUM *handle);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumMethodInstance )(
+ IXCLRDataTypeInstance * This,
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataMethodInstance **methodInstance);
+
+ HRESULT ( STDMETHODCALLTYPE *EndEnumMethodInstances )(
+ IXCLRDataTypeInstance * This,
+ /* [in] */ CLRDATA_ENUM handle);
+
+ HRESULT ( STDMETHODCALLTYPE *StartEnumMethodInstancesByName )(
+ IXCLRDataTypeInstance * This,
+ /* [in] */ LPCWSTR name,
+ /* [in] */ ULONG32 flags,
+ /* [out] */ CLRDATA_ENUM *handle);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumMethodInstanceByName )(
+ IXCLRDataTypeInstance * This,
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataMethodInstance **method);
+
+ HRESULT ( STDMETHODCALLTYPE *EndEnumMethodInstancesByName )(
+ IXCLRDataTypeInstance * This,
+ /* [in] */ CLRDATA_ENUM handle);
+
+ HRESULT ( STDMETHODCALLTYPE *GetNumStaticFields )(
+ IXCLRDataTypeInstance * This,
+ /* [out] */ ULONG32 *numFields);
+
+ HRESULT ( STDMETHODCALLTYPE *GetStaticFieldByIndex )(
+ IXCLRDataTypeInstance * This,
+ /* [in] */ ULONG32 index,
+ /* [in] */ IXCLRDataTask *tlsTask,
+ /* [out] */ IXCLRDataValue **field,
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR nameBuf[ ],
+ /* [out] */ mdFieldDef *token);
+
+ HRESULT ( STDMETHODCALLTYPE *StartEnumStaticFieldsByName )(
+ IXCLRDataTypeInstance * This,
+ /* [in] */ LPCWSTR name,
+ /* [in] */ ULONG32 flags,
+ /* [in] */ IXCLRDataTask *tlsTask,
+ /* [out] */ CLRDATA_ENUM *handle);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumStaticFieldByName )(
+ IXCLRDataTypeInstance * This,
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataValue **value);
+
+ HRESULT ( STDMETHODCALLTYPE *EndEnumStaticFieldsByName )(
+ IXCLRDataTypeInstance * This,
+ /* [in] */ CLRDATA_ENUM handle);
+
+ HRESULT ( STDMETHODCALLTYPE *GetNumTypeArguments )(
+ IXCLRDataTypeInstance * This,
+ /* [out] */ ULONG32 *numTypeArgs);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeArgumentByIndex )(
+ IXCLRDataTypeInstance * This,
+ /* [in] */ ULONG32 index,
+ /* [out] */ IXCLRDataTypeInstance **typeArg);
+
+ HRESULT ( STDMETHODCALLTYPE *GetName )(
+ IXCLRDataTypeInstance * This,
+ /* [in] */ ULONG32 flags,
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR nameBuf[ ]);
+
+ HRESULT ( STDMETHODCALLTYPE *GetModule )(
+ IXCLRDataTypeInstance * This,
+ /* [out] */ IXCLRDataModule **mod);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDefinition )(
+ IXCLRDataTypeInstance * This,
+ /* [out] */ IXCLRDataTypeDefinition **typeDefinition);
+
+ HRESULT ( STDMETHODCALLTYPE *GetFlags )(
+ IXCLRDataTypeInstance * This,
+ /* [out] */ ULONG32 *flags);
+
+ HRESULT ( STDMETHODCALLTYPE *IsSameObject )(
+ IXCLRDataTypeInstance * This,
+ /* [in] */ IXCLRDataTypeInstance *type);
+
+ HRESULT ( STDMETHODCALLTYPE *Request )(
+ IXCLRDataTypeInstance * This,
+ /* [in] */ ULONG32 reqCode,
+ /* [in] */ ULONG32 inBufferSize,
+ /* [size_is][in] */ BYTE *inBuffer,
+ /* [in] */ ULONG32 outBufferSize,
+ /* [size_is][out] */ BYTE *outBuffer);
+
+ HRESULT ( STDMETHODCALLTYPE *GetNumStaticFields2 )(
+ IXCLRDataTypeInstance * This,
+ /* [in] */ ULONG32 flags,
+ /* [out] */ ULONG32 *numFields);
+
+ HRESULT ( STDMETHODCALLTYPE *StartEnumStaticFields )(
+ IXCLRDataTypeInstance * This,
+ /* [in] */ ULONG32 flags,
+ /* [in] */ IXCLRDataTask *tlsTask,
+ /* [out] */ CLRDATA_ENUM *handle);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumStaticField )(
+ IXCLRDataTypeInstance * This,
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataValue **value);
+
+ HRESULT ( STDMETHODCALLTYPE *EndEnumStaticFields )(
+ IXCLRDataTypeInstance * This,
+ /* [in] */ CLRDATA_ENUM handle);
+
+ HRESULT ( STDMETHODCALLTYPE *StartEnumStaticFieldsByName2 )(
+ IXCLRDataTypeInstance * This,
+ /* [in] */ LPCWSTR name,
+ /* [in] */ ULONG32 nameFlags,
+ /* [in] */ ULONG32 fieldFlags,
+ /* [in] */ IXCLRDataTask *tlsTask,
+ /* [out] */ CLRDATA_ENUM *handle);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumStaticFieldByName2 )(
+ IXCLRDataTypeInstance * This,
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataValue **value);
+
+ HRESULT ( STDMETHODCALLTYPE *EndEnumStaticFieldsByName2 )(
+ IXCLRDataTypeInstance * This,
+ /* [in] */ CLRDATA_ENUM handle);
+
+ HRESULT ( STDMETHODCALLTYPE *GetStaticFieldByToken )(
+ IXCLRDataTypeInstance * This,
+ /* [in] */ mdFieldDef token,
+ /* [in] */ IXCLRDataTask *tlsTask,
+ /* [out] */ IXCLRDataValue **field,
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR nameBuf[ ]);
+
+ HRESULT ( STDMETHODCALLTYPE *GetBase )(
+ IXCLRDataTypeInstance * This,
+ /* [out] */ IXCLRDataTypeInstance **base);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumStaticField2 )(
+ IXCLRDataTypeInstance * This,
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataValue **value,
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR nameBuf[ ],
+ /* [out] */ IXCLRDataModule **tokenScope,
+ /* [out] */ mdFieldDef *token);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumStaticFieldByName3 )(
+ IXCLRDataTypeInstance * This,
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataValue **value,
+ /* [out] */ IXCLRDataModule **tokenScope,
+ /* [out] */ mdFieldDef *token);
+
+ HRESULT ( STDMETHODCALLTYPE *GetStaticFieldByToken2 )(
+ IXCLRDataTypeInstance * This,
+ /* [in] */ IXCLRDataModule *tokenScope,
+ /* [in] */ mdFieldDef token,
+ /* [in] */ IXCLRDataTask *tlsTask,
+ /* [out] */ IXCLRDataValue **field,
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR nameBuf[ ]);
+
+ END_INTERFACE
+ } IXCLRDataTypeInstanceVtbl;
+
+ interface IXCLRDataTypeInstance
+ {
+ CONST_VTBL struct IXCLRDataTypeInstanceVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IXCLRDataTypeInstance_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IXCLRDataTypeInstance_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IXCLRDataTypeInstance_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IXCLRDataTypeInstance_StartEnumMethodInstances(This,handle) \
+ ( (This)->lpVtbl -> StartEnumMethodInstances(This,handle) )
+
+#define IXCLRDataTypeInstance_EnumMethodInstance(This,handle,methodInstance) \
+ ( (This)->lpVtbl -> EnumMethodInstance(This,handle,methodInstance) )
+
+#define IXCLRDataTypeInstance_EndEnumMethodInstances(This,handle) \
+ ( (This)->lpVtbl -> EndEnumMethodInstances(This,handle) )
+
+#define IXCLRDataTypeInstance_StartEnumMethodInstancesByName(This,name,flags,handle) \
+ ( (This)->lpVtbl -> StartEnumMethodInstancesByName(This,name,flags,handle) )
+
+#define IXCLRDataTypeInstance_EnumMethodInstanceByName(This,handle,method) \
+ ( (This)->lpVtbl -> EnumMethodInstanceByName(This,handle,method) )
+
+#define IXCLRDataTypeInstance_EndEnumMethodInstancesByName(This,handle) \
+ ( (This)->lpVtbl -> EndEnumMethodInstancesByName(This,handle) )
+
+#define IXCLRDataTypeInstance_GetNumStaticFields(This,numFields) \
+ ( (This)->lpVtbl -> GetNumStaticFields(This,numFields) )
+
+#define IXCLRDataTypeInstance_GetStaticFieldByIndex(This,index,tlsTask,field,bufLen,nameLen,nameBuf,token) \
+ ( (This)->lpVtbl -> GetStaticFieldByIndex(This,index,tlsTask,field,bufLen,nameLen,nameBuf,token) )
+
+#define IXCLRDataTypeInstance_StartEnumStaticFieldsByName(This,name,flags,tlsTask,handle) \
+ ( (This)->lpVtbl -> StartEnumStaticFieldsByName(This,name,flags,tlsTask,handle) )
+
+#define IXCLRDataTypeInstance_EnumStaticFieldByName(This,handle,value) \
+ ( (This)->lpVtbl -> EnumStaticFieldByName(This,handle,value) )
+
+#define IXCLRDataTypeInstance_EndEnumStaticFieldsByName(This,handle) \
+ ( (This)->lpVtbl -> EndEnumStaticFieldsByName(This,handle) )
+
+#define IXCLRDataTypeInstance_GetNumTypeArguments(This,numTypeArgs) \
+ ( (This)->lpVtbl -> GetNumTypeArguments(This,numTypeArgs) )
+
+#define IXCLRDataTypeInstance_GetTypeArgumentByIndex(This,index,typeArg) \
+ ( (This)->lpVtbl -> GetTypeArgumentByIndex(This,index,typeArg) )
+
+#define IXCLRDataTypeInstance_GetName(This,flags,bufLen,nameLen,nameBuf) \
+ ( (This)->lpVtbl -> GetName(This,flags,bufLen,nameLen,nameBuf) )
+
+#define IXCLRDataTypeInstance_GetModule(This,mod) \
+ ( (This)->lpVtbl -> GetModule(This,mod) )
+
+#define IXCLRDataTypeInstance_GetDefinition(This,typeDefinition) \
+ ( (This)->lpVtbl -> GetDefinition(This,typeDefinition) )
+
+#define IXCLRDataTypeInstance_GetFlags(This,flags) \
+ ( (This)->lpVtbl -> GetFlags(This,flags) )
+
+#define IXCLRDataTypeInstance_IsSameObject(This,type) \
+ ( (This)->lpVtbl -> IsSameObject(This,type) )
+
+#define IXCLRDataTypeInstance_Request(This,reqCode,inBufferSize,inBuffer,outBufferSize,outBuffer) \
+ ( (This)->lpVtbl -> Request(This,reqCode,inBufferSize,inBuffer,outBufferSize,outBuffer) )
+
+#define IXCLRDataTypeInstance_GetNumStaticFields2(This,flags,numFields) \
+ ( (This)->lpVtbl -> GetNumStaticFields2(This,flags,numFields) )
+
+#define IXCLRDataTypeInstance_StartEnumStaticFields(This,flags,tlsTask,handle) \
+ ( (This)->lpVtbl -> StartEnumStaticFields(This,flags,tlsTask,handle) )
+
+#define IXCLRDataTypeInstance_EnumStaticField(This,handle,value) \
+ ( (This)->lpVtbl -> EnumStaticField(This,handle,value) )
+
+#define IXCLRDataTypeInstance_EndEnumStaticFields(This,handle) \
+ ( (This)->lpVtbl -> EndEnumStaticFields(This,handle) )
+
+#define IXCLRDataTypeInstance_StartEnumStaticFieldsByName2(This,name,nameFlags,fieldFlags,tlsTask,handle) \
+ ( (This)->lpVtbl -> StartEnumStaticFieldsByName2(This,name,nameFlags,fieldFlags,tlsTask,handle) )
+
+#define IXCLRDataTypeInstance_EnumStaticFieldByName2(This,handle,value) \
+ ( (This)->lpVtbl -> EnumStaticFieldByName2(This,handle,value) )
+
+#define IXCLRDataTypeInstance_EndEnumStaticFieldsByName2(This,handle) \
+ ( (This)->lpVtbl -> EndEnumStaticFieldsByName2(This,handle) )
+
+#define IXCLRDataTypeInstance_GetStaticFieldByToken(This,token,tlsTask,field,bufLen,nameLen,nameBuf) \
+ ( (This)->lpVtbl -> GetStaticFieldByToken(This,token,tlsTask,field,bufLen,nameLen,nameBuf) )
+
+#define IXCLRDataTypeInstance_GetBase(This,base) \
+ ( (This)->lpVtbl -> GetBase(This,base) )
+
+#define IXCLRDataTypeInstance_EnumStaticField2(This,handle,value,bufLen,nameLen,nameBuf,tokenScope,token) \
+ ( (This)->lpVtbl -> EnumStaticField2(This,handle,value,bufLen,nameLen,nameBuf,tokenScope,token) )
+
+#define IXCLRDataTypeInstance_EnumStaticFieldByName3(This,handle,value,tokenScope,token) \
+ ( (This)->lpVtbl -> EnumStaticFieldByName3(This,handle,value,tokenScope,token) )
+
+#define IXCLRDataTypeInstance_GetStaticFieldByToken2(This,tokenScope,token,tlsTask,field,bufLen,nameLen,nameBuf) \
+ ( (This)->lpVtbl -> GetStaticFieldByToken2(This,tokenScope,token,tlsTask,field,bufLen,nameLen,nameBuf) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IXCLRDataTypeInstance_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_xclrdata_0000_0012 */
+/* [local] */
+
+#pragma warning(pop)
+typedef /* [public][public][public] */
+enum __MIDL___MIDL_itf_xclrdata_0000_0012_0001
+ {
+ CLRDATA_SOURCE_TYPE_INVALID = 0
+ } CLRDataSourceType;
+
+typedef /* [public] */
+enum __MIDL___MIDL_itf_xclrdata_0000_0012_0002
+ {
+ CLRDATA_IL_OFFSET_NO_MAPPING = -1,
+ CLRDATA_IL_OFFSET_PROLOG = -2,
+ CLRDATA_IL_OFFSET_EPILOG = -3
+ } CLRDATA_IL_OFFSET_MARKER;
+
+typedef /* [public][public] */ struct __MIDL___MIDL_itf_xclrdata_0000_0012_0003
+ {
+ ULONG32 ilOffset;
+ CLRDATA_ADDRESS startAddress;
+ CLRDATA_ADDRESS endAddress;
+ CLRDataSourceType type;
+ } CLRDATA_IL_ADDRESS_MAP;
+
+typedef /* [public] */
+enum __MIDL___MIDL_itf_xclrdata_0000_0012_0004
+ {
+ CLRDATA_METHOD_DEFAULT = 0,
+ CLRDATA_METHOD_HAS_THIS = 0x1
+ } CLRDataMethodFlag;
+
+typedef /* [public][public][public] */
+enum __MIDL___MIDL_itf_xclrdata_0000_0012_0005
+ {
+ CLRDATA_METHDEF_IL = 0
+ } CLRDataMethodDefinitionExtentType;
+
+typedef /* [public][public] */ struct __MIDL___MIDL_itf_xclrdata_0000_0012_0006
+ {
+ CLRDATA_ADDRESS startAddress;
+ CLRDATA_ADDRESS endAddress;
+ ULONG32 enCVersion;
+ CLRDataMethodDefinitionExtentType type;
+ } CLRDATA_METHDEF_EXTENT;
+
+#pragma warning(push)
+#pragma warning(disable:28718)
+
+
+extern RPC_IF_HANDLE __MIDL_itf_xclrdata_0000_0012_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_xclrdata_0000_0012_v0_0_s_ifspec;
+
+#ifndef __IXCLRDataMethodDefinition_INTERFACE_DEFINED__
+#define __IXCLRDataMethodDefinition_INTERFACE_DEFINED__
+
+/* interface IXCLRDataMethodDefinition */
+/* [uuid][local][object] */
+
+
+EXTERN_C const IID IID_IXCLRDataMethodDefinition;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("AAF60008-FB2C-420b-8FB1-42D244A54A97")
+ IXCLRDataMethodDefinition : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE GetTypeDefinition(
+ /* [out] */ IXCLRDataTypeDefinition **typeDefinition) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StartEnumInstances(
+ /* [in] */ IXCLRDataAppDomain *appDomain,
+ /* [out] */ CLRDATA_ENUM *handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumInstance(
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataMethodInstance **instance) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EndEnumInstances(
+ /* [in] */ CLRDATA_ENUM handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetName(
+ /* [in] */ ULONG32 flags,
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR name[ ]) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetTokenAndScope(
+ /* [out] */ mdMethodDef *token,
+ /* [out] */ IXCLRDataModule **mod) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetFlags(
+ /* [out] */ ULONG32 *flags) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE IsSameObject(
+ /* [in] */ IXCLRDataMethodDefinition *method) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetLatestEnCVersion(
+ /* [out] */ ULONG32 *version) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StartEnumExtents(
+ /* [out] */ CLRDATA_ENUM *handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumExtent(
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ CLRDATA_METHDEF_EXTENT *extent) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EndEnumExtents(
+ /* [in] */ CLRDATA_ENUM handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetCodeNotification(
+ /* [out] */ ULONG32 *flags) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetCodeNotification(
+ /* [in] */ ULONG32 flags) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Request(
+ /* [in] */ ULONG32 reqCode,
+ /* [in] */ ULONG32 inBufferSize,
+ /* [size_is][in] */ BYTE *inBuffer,
+ /* [in] */ ULONG32 outBufferSize,
+ /* [size_is][out] */ BYTE *outBuffer) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetRepresentativeEntryAddress(
+ /* [out] */ CLRDATA_ADDRESS *addr) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE HasClassOrMethodInstantiation(
+ /* [out] */ BOOL *bGeneric) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IXCLRDataMethodDefinitionVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IXCLRDataMethodDefinition * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IXCLRDataMethodDefinition * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IXCLRDataMethodDefinition * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeDefinition )(
+ IXCLRDataMethodDefinition * This,
+ /* [out] */ IXCLRDataTypeDefinition **typeDefinition);
+
+ HRESULT ( STDMETHODCALLTYPE *StartEnumInstances )(
+ IXCLRDataMethodDefinition * This,
+ /* [in] */ IXCLRDataAppDomain *appDomain,
+ /* [out] */ CLRDATA_ENUM *handle);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumInstance )(
+ IXCLRDataMethodDefinition * This,
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataMethodInstance **instance);
+
+ HRESULT ( STDMETHODCALLTYPE *EndEnumInstances )(
+ IXCLRDataMethodDefinition * This,
+ /* [in] */ CLRDATA_ENUM handle);
+
+ HRESULT ( STDMETHODCALLTYPE *GetName )(
+ IXCLRDataMethodDefinition * This,
+ /* [in] */ ULONG32 flags,
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR name[ ]);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTokenAndScope )(
+ IXCLRDataMethodDefinition * This,
+ /* [out] */ mdMethodDef *token,
+ /* [out] */ IXCLRDataModule **mod);
+
+ HRESULT ( STDMETHODCALLTYPE *GetFlags )(
+ IXCLRDataMethodDefinition * This,
+ /* [out] */ ULONG32 *flags);
+
+ HRESULT ( STDMETHODCALLTYPE *IsSameObject )(
+ IXCLRDataMethodDefinition * This,
+ /* [in] */ IXCLRDataMethodDefinition *method);
+
+ HRESULT ( STDMETHODCALLTYPE *GetLatestEnCVersion )(
+ IXCLRDataMethodDefinition * This,
+ /* [out] */ ULONG32 *version);
+
+ HRESULT ( STDMETHODCALLTYPE *StartEnumExtents )(
+ IXCLRDataMethodDefinition * This,
+ /* [out] */ CLRDATA_ENUM *handle);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumExtent )(
+ IXCLRDataMethodDefinition * This,
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ CLRDATA_METHDEF_EXTENT *extent);
+
+ HRESULT ( STDMETHODCALLTYPE *EndEnumExtents )(
+ IXCLRDataMethodDefinition * This,
+ /* [in] */ CLRDATA_ENUM handle);
+
+ HRESULT ( STDMETHODCALLTYPE *GetCodeNotification )(
+ IXCLRDataMethodDefinition * This,
+ /* [out] */ ULONG32 *flags);
+
+ HRESULT ( STDMETHODCALLTYPE *SetCodeNotification )(
+ IXCLRDataMethodDefinition * This,
+ /* [in] */ ULONG32 flags);
+
+ HRESULT ( STDMETHODCALLTYPE *Request )(
+ IXCLRDataMethodDefinition * This,
+ /* [in] */ ULONG32 reqCode,
+ /* [in] */ ULONG32 inBufferSize,
+ /* [size_is][in] */ BYTE *inBuffer,
+ /* [in] */ ULONG32 outBufferSize,
+ /* [size_is][out] */ BYTE *outBuffer);
+
+ HRESULT ( STDMETHODCALLTYPE *GetRepresentativeEntryAddress )(
+ IXCLRDataMethodDefinition * This,
+ /* [out] */ CLRDATA_ADDRESS *addr);
+
+ HRESULT ( STDMETHODCALLTYPE *HasClassOrMethodInstantiation )(
+ IXCLRDataMethodDefinition * This,
+ /* [out] */ BOOL *bGeneric);
+
+ END_INTERFACE
+ } IXCLRDataMethodDefinitionVtbl;
+
+ interface IXCLRDataMethodDefinition
+ {
+ CONST_VTBL struct IXCLRDataMethodDefinitionVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IXCLRDataMethodDefinition_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IXCLRDataMethodDefinition_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IXCLRDataMethodDefinition_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IXCLRDataMethodDefinition_GetTypeDefinition(This,typeDefinition) \
+ ( (This)->lpVtbl -> GetTypeDefinition(This,typeDefinition) )
+
+#define IXCLRDataMethodDefinition_StartEnumInstances(This,appDomain,handle) \
+ ( (This)->lpVtbl -> StartEnumInstances(This,appDomain,handle) )
+
+#define IXCLRDataMethodDefinition_EnumInstance(This,handle,instance) \
+ ( (This)->lpVtbl -> EnumInstance(This,handle,instance) )
+
+#define IXCLRDataMethodDefinition_EndEnumInstances(This,handle) \
+ ( (This)->lpVtbl -> EndEnumInstances(This,handle) )
+
+#define IXCLRDataMethodDefinition_GetName(This,flags,bufLen,nameLen,name) \
+ ( (This)->lpVtbl -> GetName(This,flags,bufLen,nameLen,name) )
+
+#define IXCLRDataMethodDefinition_GetTokenAndScope(This,token,mod) \
+ ( (This)->lpVtbl -> GetTokenAndScope(This,token,mod) )
+
+#define IXCLRDataMethodDefinition_GetFlags(This,flags) \
+ ( (This)->lpVtbl -> GetFlags(This,flags) )
+
+#define IXCLRDataMethodDefinition_IsSameObject(This,method) \
+ ( (This)->lpVtbl -> IsSameObject(This,method) )
+
+#define IXCLRDataMethodDefinition_GetLatestEnCVersion(This,version) \
+ ( (This)->lpVtbl -> GetLatestEnCVersion(This,version) )
+
+#define IXCLRDataMethodDefinition_StartEnumExtents(This,handle) \
+ ( (This)->lpVtbl -> StartEnumExtents(This,handle) )
+
+#define IXCLRDataMethodDefinition_EnumExtent(This,handle,extent) \
+ ( (This)->lpVtbl -> EnumExtent(This,handle,extent) )
+
+#define IXCLRDataMethodDefinition_EndEnumExtents(This,handle) \
+ ( (This)->lpVtbl -> EndEnumExtents(This,handle) )
+
+#define IXCLRDataMethodDefinition_GetCodeNotification(This,flags) \
+ ( (This)->lpVtbl -> GetCodeNotification(This,flags) )
+
+#define IXCLRDataMethodDefinition_SetCodeNotification(This,flags) \
+ ( (This)->lpVtbl -> SetCodeNotification(This,flags) )
+
+#define IXCLRDataMethodDefinition_Request(This,reqCode,inBufferSize,inBuffer,outBufferSize,outBuffer) \
+ ( (This)->lpVtbl -> Request(This,reqCode,inBufferSize,inBuffer,outBufferSize,outBuffer) )
+
+#define IXCLRDataMethodDefinition_GetRepresentativeEntryAddress(This,addr) \
+ ( (This)->lpVtbl -> GetRepresentativeEntryAddress(This,addr) )
+
+#define IXCLRDataMethodDefinition_HasClassOrMethodInstantiation(This,bGeneric) \
+ ( (This)->lpVtbl -> HasClassOrMethodInstantiation(This,bGeneric) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IXCLRDataMethodDefinition_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_xclrdata_0000_0013 */
+/* [local] */
+
+#pragma warning(pop)
+#pragma warning(push)
+#pragma warning(disable:28718)
+
+
+extern RPC_IF_HANDLE __MIDL_itf_xclrdata_0000_0013_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_xclrdata_0000_0013_v0_0_s_ifspec;
+
+#ifndef __IXCLRDataMethodInstance_INTERFACE_DEFINED__
+#define __IXCLRDataMethodInstance_INTERFACE_DEFINED__
+
+/* interface IXCLRDataMethodInstance */
+/* [uuid][local][object] */
+
+
+EXTERN_C const IID IID_IXCLRDataMethodInstance;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("ECD73800-22CA-4b0d-AB55-E9BA7E6318A5")
+ IXCLRDataMethodInstance : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE GetTypeInstance(
+ /* [out] */ IXCLRDataTypeInstance **typeInstance) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetDefinition(
+ /* [out] */ IXCLRDataMethodDefinition **methodDefinition) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetTokenAndScope(
+ /* [out] */ mdMethodDef *token,
+ /* [out] */ IXCLRDataModule **mod) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetName(
+ /* [in] */ ULONG32 flags,
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR nameBuf[ ]) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetFlags(
+ /* [out] */ ULONG32 *flags) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE IsSameObject(
+ /* [in] */ IXCLRDataMethodInstance *method) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetEnCVersion(
+ /* [out] */ ULONG32 *version) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetNumTypeArguments(
+ /* [out] */ ULONG32 *numTypeArgs) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetTypeArgumentByIndex(
+ /* [in] */ ULONG32 index,
+ /* [out] */ IXCLRDataTypeInstance **typeArg) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetILOffsetsByAddress(
+ /* [in] */ CLRDATA_ADDRESS address,
+ /* [in] */ ULONG32 offsetsLen,
+ /* [out] */ ULONG32 *offsetsNeeded,
+ /* [size_is][out] */ ULONG32 ilOffsets[ ]) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetAddressRangesByILOffset(
+ /* [in] */ ULONG32 ilOffset,
+ /* [in] */ ULONG32 rangesLen,
+ /* [out] */ ULONG32 *rangesNeeded,
+ /* [size_is][out] */ CLRDATA_ADDRESS_RANGE addressRanges[ ]) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetILAddressMap(
+ /* [in] */ ULONG32 mapLen,
+ /* [out] */ ULONG32 *mapNeeded,
+ /* [size_is][out] */ CLRDATA_IL_ADDRESS_MAP maps[ ]) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StartEnumExtents(
+ /* [out] */ CLRDATA_ENUM *handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumExtent(
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ CLRDATA_ADDRESS_RANGE *extent) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EndEnumExtents(
+ /* [in] */ CLRDATA_ENUM handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Request(
+ /* [in] */ ULONG32 reqCode,
+ /* [in] */ ULONG32 inBufferSize,
+ /* [size_is][in] */ BYTE *inBuffer,
+ /* [in] */ ULONG32 outBufferSize,
+ /* [size_is][out] */ BYTE *outBuffer) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetRepresentativeEntryAddress(
+ /* [out] */ CLRDATA_ADDRESS *addr) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IXCLRDataMethodInstanceVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IXCLRDataMethodInstance * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IXCLRDataMethodInstance * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IXCLRDataMethodInstance * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInstance )(
+ IXCLRDataMethodInstance * This,
+ /* [out] */ IXCLRDataTypeInstance **typeInstance);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDefinition )(
+ IXCLRDataMethodInstance * This,
+ /* [out] */ IXCLRDataMethodDefinition **methodDefinition);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTokenAndScope )(
+ IXCLRDataMethodInstance * This,
+ /* [out] */ mdMethodDef *token,
+ /* [out] */ IXCLRDataModule **mod);
+
+ HRESULT ( STDMETHODCALLTYPE *GetName )(
+ IXCLRDataMethodInstance * This,
+ /* [in] */ ULONG32 flags,
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR nameBuf[ ]);
+
+ HRESULT ( STDMETHODCALLTYPE *GetFlags )(
+ IXCLRDataMethodInstance * This,
+ /* [out] */ ULONG32 *flags);
+
+ HRESULT ( STDMETHODCALLTYPE *IsSameObject )(
+ IXCLRDataMethodInstance * This,
+ /* [in] */ IXCLRDataMethodInstance *method);
+
+ HRESULT ( STDMETHODCALLTYPE *GetEnCVersion )(
+ IXCLRDataMethodInstance * This,
+ /* [out] */ ULONG32 *version);
+
+ HRESULT ( STDMETHODCALLTYPE *GetNumTypeArguments )(
+ IXCLRDataMethodInstance * This,
+ /* [out] */ ULONG32 *numTypeArgs);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeArgumentByIndex )(
+ IXCLRDataMethodInstance * This,
+ /* [in] */ ULONG32 index,
+ /* [out] */ IXCLRDataTypeInstance **typeArg);
+
+ HRESULT ( STDMETHODCALLTYPE *GetILOffsetsByAddress )(
+ IXCLRDataMethodInstance * This,
+ /* [in] */ CLRDATA_ADDRESS address,
+ /* [in] */ ULONG32 offsetsLen,
+ /* [out] */ ULONG32 *offsetsNeeded,
+ /* [size_is][out] */ ULONG32 ilOffsets[ ]);
+
+ HRESULT ( STDMETHODCALLTYPE *GetAddressRangesByILOffset )(
+ IXCLRDataMethodInstance * This,
+ /* [in] */ ULONG32 ilOffset,
+ /* [in] */ ULONG32 rangesLen,
+ /* [out] */ ULONG32 *rangesNeeded,
+ /* [size_is][out] */ CLRDATA_ADDRESS_RANGE addressRanges[ ]);
+
+ HRESULT ( STDMETHODCALLTYPE *GetILAddressMap )(
+ IXCLRDataMethodInstance * This,
+ /* [in] */ ULONG32 mapLen,
+ /* [out] */ ULONG32 *mapNeeded,
+ /* [size_is][out] */ CLRDATA_IL_ADDRESS_MAP maps[ ]);
+
+ HRESULT ( STDMETHODCALLTYPE *StartEnumExtents )(
+ IXCLRDataMethodInstance * This,
+ /* [out] */ CLRDATA_ENUM *handle);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumExtent )(
+ IXCLRDataMethodInstance * This,
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ CLRDATA_ADDRESS_RANGE *extent);
+
+ HRESULT ( STDMETHODCALLTYPE *EndEnumExtents )(
+ IXCLRDataMethodInstance * This,
+ /* [in] */ CLRDATA_ENUM handle);
+
+ HRESULT ( STDMETHODCALLTYPE *Request )(
+ IXCLRDataMethodInstance * This,
+ /* [in] */ ULONG32 reqCode,
+ /* [in] */ ULONG32 inBufferSize,
+ /* [size_is][in] */ BYTE *inBuffer,
+ /* [in] */ ULONG32 outBufferSize,
+ /* [size_is][out] */ BYTE *outBuffer);
+
+ HRESULT ( STDMETHODCALLTYPE *GetRepresentativeEntryAddress )(
+ IXCLRDataMethodInstance * This,
+ /* [out] */ CLRDATA_ADDRESS *addr);
+
+ END_INTERFACE
+ } IXCLRDataMethodInstanceVtbl;
+
+ interface IXCLRDataMethodInstance
+ {
+ CONST_VTBL struct IXCLRDataMethodInstanceVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IXCLRDataMethodInstance_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IXCLRDataMethodInstance_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IXCLRDataMethodInstance_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IXCLRDataMethodInstance_GetTypeInstance(This,typeInstance) \
+ ( (This)->lpVtbl -> GetTypeInstance(This,typeInstance) )
+
+#define IXCLRDataMethodInstance_GetDefinition(This,methodDefinition) \
+ ( (This)->lpVtbl -> GetDefinition(This,methodDefinition) )
+
+#define IXCLRDataMethodInstance_GetTokenAndScope(This,token,mod) \
+ ( (This)->lpVtbl -> GetTokenAndScope(This,token,mod) )
+
+#define IXCLRDataMethodInstance_GetName(This,flags,bufLen,nameLen,nameBuf) \
+ ( (This)->lpVtbl -> GetName(This,flags,bufLen,nameLen,nameBuf) )
+
+#define IXCLRDataMethodInstance_GetFlags(This,flags) \
+ ( (This)->lpVtbl -> GetFlags(This,flags) )
+
+#define IXCLRDataMethodInstance_IsSameObject(This,method) \
+ ( (This)->lpVtbl -> IsSameObject(This,method) )
+
+#define IXCLRDataMethodInstance_GetEnCVersion(This,version) \
+ ( (This)->lpVtbl -> GetEnCVersion(This,version) )
+
+#define IXCLRDataMethodInstance_GetNumTypeArguments(This,numTypeArgs) \
+ ( (This)->lpVtbl -> GetNumTypeArguments(This,numTypeArgs) )
+
+#define IXCLRDataMethodInstance_GetTypeArgumentByIndex(This,index,typeArg) \
+ ( (This)->lpVtbl -> GetTypeArgumentByIndex(This,index,typeArg) )
+
+#define IXCLRDataMethodInstance_GetILOffsetsByAddress(This,address,offsetsLen,offsetsNeeded,ilOffsets) \
+ ( (This)->lpVtbl -> GetILOffsetsByAddress(This,address,offsetsLen,offsetsNeeded,ilOffsets) )
+
+#define IXCLRDataMethodInstance_GetAddressRangesByILOffset(This,ilOffset,rangesLen,rangesNeeded,addressRanges) \
+ ( (This)->lpVtbl -> GetAddressRangesByILOffset(This,ilOffset,rangesLen,rangesNeeded,addressRanges) )
+
+#define IXCLRDataMethodInstance_GetILAddressMap(This,mapLen,mapNeeded,maps) \
+ ( (This)->lpVtbl -> GetILAddressMap(This,mapLen,mapNeeded,maps) )
+
+#define IXCLRDataMethodInstance_StartEnumExtents(This,handle) \
+ ( (This)->lpVtbl -> StartEnumExtents(This,handle) )
+
+#define IXCLRDataMethodInstance_EnumExtent(This,handle,extent) \
+ ( (This)->lpVtbl -> EnumExtent(This,handle,extent) )
+
+#define IXCLRDataMethodInstance_EndEnumExtents(This,handle) \
+ ( (This)->lpVtbl -> EndEnumExtents(This,handle) )
+
+#define IXCLRDataMethodInstance_Request(This,reqCode,inBufferSize,inBuffer,outBufferSize,outBuffer) \
+ ( (This)->lpVtbl -> Request(This,reqCode,inBufferSize,inBuffer,outBufferSize,outBuffer) )
+
+#define IXCLRDataMethodInstance_GetRepresentativeEntryAddress(This,addr) \
+ ( (This)->lpVtbl -> GetRepresentativeEntryAddress(This,addr) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IXCLRDataMethodInstance_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_xclrdata_0000_0014 */
+/* [local] */
+
+#pragma warning(pop)
+typedef /* [public] */
+enum __MIDL___MIDL_itf_xclrdata_0000_0014_0001
+ {
+ CLRDATA_TASK_DEFAULT = 0,
+ CLRDATA_TASK_WAITING_FOR_GC = 0x1
+ } CLRDataTaskFlag;
+
+#pragma warning(push)
+#pragma warning(disable:28718)
+
+
+extern RPC_IF_HANDLE __MIDL_itf_xclrdata_0000_0014_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_xclrdata_0000_0014_v0_0_s_ifspec;
+
+#ifndef __IXCLRDataTask_INTERFACE_DEFINED__
+#define __IXCLRDataTask_INTERFACE_DEFINED__
+
+/* interface IXCLRDataTask */
+/* [uuid][local][object] */
+
+
+EXTERN_C const IID IID_IXCLRDataTask;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("A5B0BEEA-EC62-4618-8012-A24FFC23934C")
+ IXCLRDataTask : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE GetProcess(
+ /* [out] */ IXCLRDataProcess **process) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetCurrentAppDomain(
+ /* [out] */ IXCLRDataAppDomain **appDomain) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetUniqueID(
+ /* [out] */ ULONG64 *id) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetFlags(
+ /* [out] */ ULONG32 *flags) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE IsSameObject(
+ /* [in] */ IXCLRDataTask *task) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetManagedObject(
+ /* [out] */ IXCLRDataValue **value) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetDesiredExecutionState(
+ /* [out] */ ULONG32 *state) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetDesiredExecutionState(
+ /* [in] */ ULONG32 state) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateStackWalk(
+ /* [in] */ ULONG32 flags,
+ /* [out] */ IXCLRDataStackWalk **stackWalk) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetOSThreadID(
+ /* [out] */ ULONG32 *id) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetContext(
+ /* [in] */ ULONG32 contextFlags,
+ /* [in] */ ULONG32 contextBufSize,
+ /* [out] */ ULONG32 *contextSize,
+ /* [size_is][out] */ BYTE contextBuf[ ]) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetContext(
+ /* [in] */ ULONG32 contextSize,
+ /* [size_is][in] */ BYTE context[ ]) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetCurrentExceptionState(
+ /* [out] */ IXCLRDataExceptionState **exception) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Request(
+ /* [in] */ ULONG32 reqCode,
+ /* [in] */ ULONG32 inBufferSize,
+ /* [size_is][in] */ BYTE *inBuffer,
+ /* [in] */ ULONG32 outBufferSize,
+ /* [size_is][out] */ BYTE *outBuffer) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetName(
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR name[ ]) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetLastExceptionState(
+ /* [out] */ IXCLRDataExceptionState **exception) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IXCLRDataTaskVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IXCLRDataTask * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IXCLRDataTask * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IXCLRDataTask * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetProcess )(
+ IXCLRDataTask * This,
+ /* [out] */ IXCLRDataProcess **process);
+
+ HRESULT ( STDMETHODCALLTYPE *GetCurrentAppDomain )(
+ IXCLRDataTask * This,
+ /* [out] */ IXCLRDataAppDomain **appDomain);
+
+ HRESULT ( STDMETHODCALLTYPE *GetUniqueID )(
+ IXCLRDataTask * This,
+ /* [out] */ ULONG64 *id);
+
+ HRESULT ( STDMETHODCALLTYPE *GetFlags )(
+ IXCLRDataTask * This,
+ /* [out] */ ULONG32 *flags);
+
+ HRESULT ( STDMETHODCALLTYPE *IsSameObject )(
+ IXCLRDataTask * This,
+ /* [in] */ IXCLRDataTask *task);
+
+ HRESULT ( STDMETHODCALLTYPE *GetManagedObject )(
+ IXCLRDataTask * This,
+ /* [out] */ IXCLRDataValue **value);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDesiredExecutionState )(
+ IXCLRDataTask * This,
+ /* [out] */ ULONG32 *state);
+
+ HRESULT ( STDMETHODCALLTYPE *SetDesiredExecutionState )(
+ IXCLRDataTask * This,
+ /* [in] */ ULONG32 state);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateStackWalk )(
+ IXCLRDataTask * This,
+ /* [in] */ ULONG32 flags,
+ /* [out] */ IXCLRDataStackWalk **stackWalk);
+
+ HRESULT ( STDMETHODCALLTYPE *GetOSThreadID )(
+ IXCLRDataTask * This,
+ /* [out] */ ULONG32 *id);
+
+ HRESULT ( STDMETHODCALLTYPE *GetContext )(
+ IXCLRDataTask * This,
+ /* [in] */ ULONG32 contextFlags,
+ /* [in] */ ULONG32 contextBufSize,
+ /* [out] */ ULONG32 *contextSize,
+ /* [size_is][out] */ BYTE contextBuf[ ]);
+
+ HRESULT ( STDMETHODCALLTYPE *SetContext )(
+ IXCLRDataTask * This,
+ /* [in] */ ULONG32 contextSize,
+ /* [size_is][in] */ BYTE context[ ]);
+
+ HRESULT ( STDMETHODCALLTYPE *GetCurrentExceptionState )(
+ IXCLRDataTask * This,
+ /* [out] */ IXCLRDataExceptionState **exception);
+
+ HRESULT ( STDMETHODCALLTYPE *Request )(
+ IXCLRDataTask * This,
+ /* [in] */ ULONG32 reqCode,
+ /* [in] */ ULONG32 inBufferSize,
+ /* [size_is][in] */ BYTE *inBuffer,
+ /* [in] */ ULONG32 outBufferSize,
+ /* [size_is][out] */ BYTE *outBuffer);
+
+ HRESULT ( STDMETHODCALLTYPE *GetName )(
+ IXCLRDataTask * This,
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR name[ ]);
+
+ HRESULT ( STDMETHODCALLTYPE *GetLastExceptionState )(
+ IXCLRDataTask * This,
+ /* [out] */ IXCLRDataExceptionState **exception);
+
+ END_INTERFACE
+ } IXCLRDataTaskVtbl;
+
+ interface IXCLRDataTask
+ {
+ CONST_VTBL struct IXCLRDataTaskVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IXCLRDataTask_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IXCLRDataTask_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IXCLRDataTask_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IXCLRDataTask_GetProcess(This,process) \
+ ( (This)->lpVtbl -> GetProcess(This,process) )
+
+#define IXCLRDataTask_GetCurrentAppDomain(This,appDomain) \
+ ( (This)->lpVtbl -> GetCurrentAppDomain(This,appDomain) )
+
+#define IXCLRDataTask_GetUniqueID(This,id) \
+ ( (This)->lpVtbl -> GetUniqueID(This,id) )
+
+#define IXCLRDataTask_GetFlags(This,flags) \
+ ( (This)->lpVtbl -> GetFlags(This,flags) )
+
+#define IXCLRDataTask_IsSameObject(This,task) \
+ ( (This)->lpVtbl -> IsSameObject(This,task) )
+
+#define IXCLRDataTask_GetManagedObject(This,value) \
+ ( (This)->lpVtbl -> GetManagedObject(This,value) )
+
+#define IXCLRDataTask_GetDesiredExecutionState(This,state) \
+ ( (This)->lpVtbl -> GetDesiredExecutionState(This,state) )
+
+#define IXCLRDataTask_SetDesiredExecutionState(This,state) \
+ ( (This)->lpVtbl -> SetDesiredExecutionState(This,state) )
+
+#define IXCLRDataTask_CreateStackWalk(This,flags,stackWalk) \
+ ( (This)->lpVtbl -> CreateStackWalk(This,flags,stackWalk) )
+
+#define IXCLRDataTask_GetOSThreadID(This,id) \
+ ( (This)->lpVtbl -> GetOSThreadID(This,id) )
+
+#define IXCLRDataTask_GetContext(This,contextFlags,contextBufSize,contextSize,contextBuf) \
+ ( (This)->lpVtbl -> GetContext(This,contextFlags,contextBufSize,contextSize,contextBuf) )
+
+#define IXCLRDataTask_SetContext(This,contextSize,context) \
+ ( (This)->lpVtbl -> SetContext(This,contextSize,context) )
+
+#define IXCLRDataTask_GetCurrentExceptionState(This,exception) \
+ ( (This)->lpVtbl -> GetCurrentExceptionState(This,exception) )
+
+#define IXCLRDataTask_Request(This,reqCode,inBufferSize,inBuffer,outBufferSize,outBuffer) \
+ ( (This)->lpVtbl -> Request(This,reqCode,inBufferSize,inBuffer,outBufferSize,outBuffer) )
+
+#define IXCLRDataTask_GetName(This,bufLen,nameLen,name) \
+ ( (This)->lpVtbl -> GetName(This,bufLen,nameLen,name) )
+
+#define IXCLRDataTask_GetLastExceptionState(This,exception) \
+ ( (This)->lpVtbl -> GetLastExceptionState(This,exception) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IXCLRDataTask_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_xclrdata_0000_0015 */
+/* [local] */
+
+#pragma warning(pop)
+typedef /* [public][public][public] */
+enum __MIDL___MIDL_itf_xclrdata_0000_0015_0001
+ {
+ CLRDATA_SIMPFRAME_UNRECOGNIZED = 0x1,
+ CLRDATA_SIMPFRAME_MANAGED_METHOD = 0x2,
+ CLRDATA_SIMPFRAME_RUNTIME_MANAGED_CODE = 0x4,
+ CLRDATA_SIMPFRAME_RUNTIME_UNMANAGED_CODE = 0x8
+ } CLRDataSimpleFrameType;
+
+typedef /* [public][public][public] */
+enum __MIDL___MIDL_itf_xclrdata_0000_0015_0002
+ {
+ CLRDATA_DETFRAME_UNRECOGNIZED = 0,
+ CLRDATA_DETFRAME_UNKNOWN_STUB = ( CLRDATA_DETFRAME_UNRECOGNIZED + 1 ) ,
+ CLRDATA_DETFRAME_CLASS_INIT = ( CLRDATA_DETFRAME_UNKNOWN_STUB + 1 ) ,
+ CLRDATA_DETFRAME_EXCEPTION_FILTER = ( CLRDATA_DETFRAME_CLASS_INIT + 1 ) ,
+ CLRDATA_DETFRAME_SECURITY = ( CLRDATA_DETFRAME_EXCEPTION_FILTER + 1 ) ,
+ CLRDATA_DETFRAME_CONTEXT_POLICY = ( CLRDATA_DETFRAME_SECURITY + 1 ) ,
+ CLRDATA_DETFRAME_INTERCEPTION = ( CLRDATA_DETFRAME_CONTEXT_POLICY + 1 ) ,
+ CLRDATA_DETFRAME_PROCESS_START = ( CLRDATA_DETFRAME_INTERCEPTION + 1 ) ,
+ CLRDATA_DETFRAME_THREAD_START = ( CLRDATA_DETFRAME_PROCESS_START + 1 ) ,
+ CLRDATA_DETFRAME_TRANSITION_TO_MANAGED = ( CLRDATA_DETFRAME_THREAD_START + 1 ) ,
+ CLRDATA_DETFRAME_TRANSITION_TO_UNMANAGED = ( CLRDATA_DETFRAME_TRANSITION_TO_MANAGED + 1 ) ,
+ CLRDATA_DETFRAME_COM_INTEROP_STUB = ( CLRDATA_DETFRAME_TRANSITION_TO_UNMANAGED + 1 ) ,
+ CLRDATA_DETFRAME_DEBUGGER_EVAL = ( CLRDATA_DETFRAME_COM_INTEROP_STUB + 1 ) ,
+ CLRDATA_DETFRAME_CONTEXT_SWITCH = ( CLRDATA_DETFRAME_DEBUGGER_EVAL + 1 ) ,
+ CLRDATA_DETFRAME_FUNC_EVAL = ( CLRDATA_DETFRAME_CONTEXT_SWITCH + 1 ) ,
+ CLRDATA_DETFRAME_FINALLY = ( CLRDATA_DETFRAME_FUNC_EVAL + 1 )
+ } CLRDataDetailedFrameType;
+
+typedef /* [public] */
+enum __MIDL___MIDL_itf_xclrdata_0000_0015_0003
+ {
+ CLRDATA_STACK_WALK_REQUEST_SET_FIRST_FRAME = 0xe1000000
+ } CLRDataStackWalkRequest;
+
+typedef /* [public] */
+enum __MIDL___MIDL_itf_xclrdata_0000_0015_0004
+ {
+ CLRDATA_STACK_SET_UNWIND_CONTEXT = 0,
+ CLRDATA_STACK_SET_CURRENT_CONTEXT = 0x1
+ } CLRDataStackSetContextFlag;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_xclrdata_0000_0015_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_xclrdata_0000_0015_v0_0_s_ifspec;
+
+#ifndef __IXCLRDataStackWalk_INTERFACE_DEFINED__
+#define __IXCLRDataStackWalk_INTERFACE_DEFINED__
+
+/* interface IXCLRDataStackWalk */
+/* [uuid][local][object] */
+
+
+EXTERN_C const IID IID_IXCLRDataStackWalk;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("E59D8D22-ADA7-49a2-89B5-A415AFCFC95F")
+ IXCLRDataStackWalk : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE GetContext(
+ /* [in] */ ULONG32 contextFlags,
+ /* [in] */ ULONG32 contextBufSize,
+ /* [out] */ ULONG32 *contextSize,
+ /* [size_is][out] */ BYTE contextBuf[ ]) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetContext(
+ /* [in] */ ULONG32 contextSize,
+ /* [size_is][in] */ BYTE context[ ]) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Next( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetStackSizeSkipped(
+ /* [out] */ ULONG64 *stackSizeSkipped) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetFrameType(
+ /* [out] */ CLRDataSimpleFrameType *simpleType,
+ /* [out] */ CLRDataDetailedFrameType *detailedType) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetFrame(
+ /* [out] */ IXCLRDataFrame **frame) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Request(
+ /* [in] */ ULONG32 reqCode,
+ /* [in] */ ULONG32 inBufferSize,
+ /* [size_is][in] */ BYTE *inBuffer,
+ /* [in] */ ULONG32 outBufferSize,
+ /* [size_is][out] */ BYTE *outBuffer) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetContext2(
+ /* [in] */ ULONG32 flags,
+ /* [in] */ ULONG32 contextSize,
+ /* [size_is][in] */ BYTE context[ ]) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IXCLRDataStackWalkVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IXCLRDataStackWalk * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IXCLRDataStackWalk * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IXCLRDataStackWalk * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetContext )(
+ IXCLRDataStackWalk * This,
+ /* [in] */ ULONG32 contextFlags,
+ /* [in] */ ULONG32 contextBufSize,
+ /* [out] */ ULONG32 *contextSize,
+ /* [size_is][out] */ BYTE contextBuf[ ]);
+
+ HRESULT ( STDMETHODCALLTYPE *SetContext )(
+ IXCLRDataStackWalk * This,
+ /* [in] */ ULONG32 contextSize,
+ /* [size_is][in] */ BYTE context[ ]);
+
+ HRESULT ( STDMETHODCALLTYPE *Next )(
+ IXCLRDataStackWalk * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetStackSizeSkipped )(
+ IXCLRDataStackWalk * This,
+ /* [out] */ ULONG64 *stackSizeSkipped);
+
+ HRESULT ( STDMETHODCALLTYPE *GetFrameType )(
+ IXCLRDataStackWalk * This,
+ /* [out] */ CLRDataSimpleFrameType *simpleType,
+ /* [out] */ CLRDataDetailedFrameType *detailedType);
+
+ HRESULT ( STDMETHODCALLTYPE *GetFrame )(
+ IXCLRDataStackWalk * This,
+ /* [out] */ IXCLRDataFrame **frame);
+
+ HRESULT ( STDMETHODCALLTYPE *Request )(
+ IXCLRDataStackWalk * This,
+ /* [in] */ ULONG32 reqCode,
+ /* [in] */ ULONG32 inBufferSize,
+ /* [size_is][in] */ BYTE *inBuffer,
+ /* [in] */ ULONG32 outBufferSize,
+ /* [size_is][out] */ BYTE *outBuffer);
+
+ HRESULT ( STDMETHODCALLTYPE *SetContext2 )(
+ IXCLRDataStackWalk * This,
+ /* [in] */ ULONG32 flags,
+ /* [in] */ ULONG32 contextSize,
+ /* [size_is][in] */ BYTE context[ ]);
+
+ END_INTERFACE
+ } IXCLRDataStackWalkVtbl;
+
+ interface IXCLRDataStackWalk
+ {
+ CONST_VTBL struct IXCLRDataStackWalkVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IXCLRDataStackWalk_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IXCLRDataStackWalk_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IXCLRDataStackWalk_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IXCLRDataStackWalk_GetContext(This,contextFlags,contextBufSize,contextSize,contextBuf) \
+ ( (This)->lpVtbl -> GetContext(This,contextFlags,contextBufSize,contextSize,contextBuf) )
+
+#define IXCLRDataStackWalk_SetContext(This,contextSize,context) \
+ ( (This)->lpVtbl -> SetContext(This,contextSize,context) )
+
+#define IXCLRDataStackWalk_Next(This) \
+ ( (This)->lpVtbl -> Next(This) )
+
+#define IXCLRDataStackWalk_GetStackSizeSkipped(This,stackSizeSkipped) \
+ ( (This)->lpVtbl -> GetStackSizeSkipped(This,stackSizeSkipped) )
+
+#define IXCLRDataStackWalk_GetFrameType(This,simpleType,detailedType) \
+ ( (This)->lpVtbl -> GetFrameType(This,simpleType,detailedType) )
+
+#define IXCLRDataStackWalk_GetFrame(This,frame) \
+ ( (This)->lpVtbl -> GetFrame(This,frame) )
+
+#define IXCLRDataStackWalk_Request(This,reqCode,inBufferSize,inBuffer,outBufferSize,outBuffer) \
+ ( (This)->lpVtbl -> Request(This,reqCode,inBufferSize,inBuffer,outBufferSize,outBuffer) )
+
+#define IXCLRDataStackWalk_SetContext2(This,flags,contextSize,context) \
+ ( (This)->lpVtbl -> SetContext2(This,flags,contextSize,context) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IXCLRDataStackWalk_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_xclrdata_0000_0016 */
+/* [local] */
+
+#pragma warning(push)
+#pragma warning(disable:28718)
+
+
+extern RPC_IF_HANDLE __MIDL_itf_xclrdata_0000_0016_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_xclrdata_0000_0016_v0_0_s_ifspec;
+
+#ifndef __IXCLRDataFrame_INTERFACE_DEFINED__
+#define __IXCLRDataFrame_INTERFACE_DEFINED__
+
+/* interface IXCLRDataFrame */
+/* [uuid][local][object] */
+
+
+EXTERN_C const IID IID_IXCLRDataFrame;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("271498C2-4085-4766-BC3A-7F8ED188A173")
+ IXCLRDataFrame : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE GetFrameType(
+ /* [out] */ CLRDataSimpleFrameType *simpleType,
+ /* [out] */ CLRDataDetailedFrameType *detailedType) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetContext(
+ /* [in] */ ULONG32 contextFlags,
+ /* [in] */ ULONG32 contextBufSize,
+ /* [out] */ ULONG32 *contextSize,
+ /* [size_is][out] */ BYTE contextBuf[ ]) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetAppDomain(
+ /* [out] */ IXCLRDataAppDomain **appDomain) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetNumArguments(
+ /* [out] */ ULONG32 *numArgs) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetArgumentByIndex(
+ /* [in] */ ULONG32 index,
+ /* [out] */ IXCLRDataValue **arg,
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR name[ ]) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetNumLocalVariables(
+ /* [out] */ ULONG32 *numLocals) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetLocalVariableByIndex(
+ /* [in] */ ULONG32 index,
+ /* [out] */ IXCLRDataValue **localVariable,
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR name[ ]) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetCodeName(
+ /* [in] */ ULONG32 flags,
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR nameBuf[ ]) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetMethodInstance(
+ /* [out] */ IXCLRDataMethodInstance **method) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Request(
+ /* [in] */ ULONG32 reqCode,
+ /* [in] */ ULONG32 inBufferSize,
+ /* [size_is][in] */ BYTE *inBuffer,
+ /* [in] */ ULONG32 outBufferSize,
+ /* [size_is][out] */ BYTE *outBuffer) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetNumTypeArguments(
+ /* [out] */ ULONG32 *numTypeArgs) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetTypeArgumentByIndex(
+ /* [in] */ ULONG32 index,
+ /* [out] */ IXCLRDataTypeInstance **typeArg) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IXCLRDataFrameVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IXCLRDataFrame * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IXCLRDataFrame * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IXCLRDataFrame * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetFrameType )(
+ IXCLRDataFrame * This,
+ /* [out] */ CLRDataSimpleFrameType *simpleType,
+ /* [out] */ CLRDataDetailedFrameType *detailedType);
+
+ HRESULT ( STDMETHODCALLTYPE *GetContext )(
+ IXCLRDataFrame * This,
+ /* [in] */ ULONG32 contextFlags,
+ /* [in] */ ULONG32 contextBufSize,
+ /* [out] */ ULONG32 *contextSize,
+ /* [size_is][out] */ BYTE contextBuf[ ]);
+
+ HRESULT ( STDMETHODCALLTYPE *GetAppDomain )(
+ IXCLRDataFrame * This,
+ /* [out] */ IXCLRDataAppDomain **appDomain);
+
+ HRESULT ( STDMETHODCALLTYPE *GetNumArguments )(
+ IXCLRDataFrame * This,
+ /* [out] */ ULONG32 *numArgs);
+
+ HRESULT ( STDMETHODCALLTYPE *GetArgumentByIndex )(
+ IXCLRDataFrame * This,
+ /* [in] */ ULONG32 index,
+ /* [out] */ IXCLRDataValue **arg,
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR name[ ]);
+
+ HRESULT ( STDMETHODCALLTYPE *GetNumLocalVariables )(
+ IXCLRDataFrame * This,
+ /* [out] */ ULONG32 *numLocals);
+
+ HRESULT ( STDMETHODCALLTYPE *GetLocalVariableByIndex )(
+ IXCLRDataFrame * This,
+ /* [in] */ ULONG32 index,
+ /* [out] */ IXCLRDataValue **localVariable,
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR name[ ]);
+
+ HRESULT ( STDMETHODCALLTYPE *GetCodeName )(
+ IXCLRDataFrame * This,
+ /* [in] */ ULONG32 flags,
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR nameBuf[ ]);
+
+ HRESULT ( STDMETHODCALLTYPE *GetMethodInstance )(
+ IXCLRDataFrame * This,
+ /* [out] */ IXCLRDataMethodInstance **method);
+
+ HRESULT ( STDMETHODCALLTYPE *Request )(
+ IXCLRDataFrame * This,
+ /* [in] */ ULONG32 reqCode,
+ /* [in] */ ULONG32 inBufferSize,
+ /* [size_is][in] */ BYTE *inBuffer,
+ /* [in] */ ULONG32 outBufferSize,
+ /* [size_is][out] */ BYTE *outBuffer);
+
+ HRESULT ( STDMETHODCALLTYPE *GetNumTypeArguments )(
+ IXCLRDataFrame * This,
+ /* [out] */ ULONG32 *numTypeArgs);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeArgumentByIndex )(
+ IXCLRDataFrame * This,
+ /* [in] */ ULONG32 index,
+ /* [out] */ IXCLRDataTypeInstance **typeArg);
+
+ END_INTERFACE
+ } IXCLRDataFrameVtbl;
+
+ interface IXCLRDataFrame
+ {
+ CONST_VTBL struct IXCLRDataFrameVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IXCLRDataFrame_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IXCLRDataFrame_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IXCLRDataFrame_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IXCLRDataFrame_GetFrameType(This,simpleType,detailedType) \
+ ( (This)->lpVtbl -> GetFrameType(This,simpleType,detailedType) )
+
+#define IXCLRDataFrame_GetContext(This,contextFlags,contextBufSize,contextSize,contextBuf) \
+ ( (This)->lpVtbl -> GetContext(This,contextFlags,contextBufSize,contextSize,contextBuf) )
+
+#define IXCLRDataFrame_GetAppDomain(This,appDomain) \
+ ( (This)->lpVtbl -> GetAppDomain(This,appDomain) )
+
+#define IXCLRDataFrame_GetNumArguments(This,numArgs) \
+ ( (This)->lpVtbl -> GetNumArguments(This,numArgs) )
+
+#define IXCLRDataFrame_GetArgumentByIndex(This,index,arg,bufLen,nameLen,name) \
+ ( (This)->lpVtbl -> GetArgumentByIndex(This,index,arg,bufLen,nameLen,name) )
+
+#define IXCLRDataFrame_GetNumLocalVariables(This,numLocals) \
+ ( (This)->lpVtbl -> GetNumLocalVariables(This,numLocals) )
+
+#define IXCLRDataFrame_GetLocalVariableByIndex(This,index,localVariable,bufLen,nameLen,name) \
+ ( (This)->lpVtbl -> GetLocalVariableByIndex(This,index,localVariable,bufLen,nameLen,name) )
+
+#define IXCLRDataFrame_GetCodeName(This,flags,bufLen,nameLen,nameBuf) \
+ ( (This)->lpVtbl -> GetCodeName(This,flags,bufLen,nameLen,nameBuf) )
+
+#define IXCLRDataFrame_GetMethodInstance(This,method) \
+ ( (This)->lpVtbl -> GetMethodInstance(This,method) )
+
+#define IXCLRDataFrame_Request(This,reqCode,inBufferSize,inBuffer,outBufferSize,outBuffer) \
+ ( (This)->lpVtbl -> Request(This,reqCode,inBufferSize,inBuffer,outBufferSize,outBuffer) )
+
+#define IXCLRDataFrame_GetNumTypeArguments(This,numTypeArgs) \
+ ( (This)->lpVtbl -> GetNumTypeArguments(This,numTypeArgs) )
+
+#define IXCLRDataFrame_GetTypeArgumentByIndex(This,index,typeArg) \
+ ( (This)->lpVtbl -> GetTypeArgumentByIndex(This,index,typeArg) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IXCLRDataFrame_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_xclrdata_0000_0017 */
+/* [local] */
+
+#pragma warning(pop)
+
+
+extern RPC_IF_HANDLE __MIDL_itf_xclrdata_0000_0017_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_xclrdata_0000_0017_v0_0_s_ifspec;
+
+#ifndef __IXCLRDataFrame2_INTERFACE_DEFINED__
+#define __IXCLRDataFrame2_INTERFACE_DEFINED__
+
+/* interface IXCLRDataFrame2 */
+/* [uuid][local][object] */
+
+
+EXTERN_C const IID IID_IXCLRDataFrame2;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("1C4D9A4B-702D-4CF6-B290-1DB6F43050D0")
+ IXCLRDataFrame2 : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE GetExactGenericArgsToken(
+ /* [out] */ IXCLRDataValue **genericToken) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IXCLRDataFrame2Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IXCLRDataFrame2 * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IXCLRDataFrame2 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IXCLRDataFrame2 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetExactGenericArgsToken )(
+ IXCLRDataFrame2 * This,
+ /* [out] */ IXCLRDataValue **genericToken);
+
+ END_INTERFACE
+ } IXCLRDataFrame2Vtbl;
+
+ interface IXCLRDataFrame2
+ {
+ CONST_VTBL struct IXCLRDataFrame2Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IXCLRDataFrame2_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IXCLRDataFrame2_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IXCLRDataFrame2_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IXCLRDataFrame2_GetExactGenericArgsToken(This,genericToken) \
+ ( (This)->lpVtbl -> GetExactGenericArgsToken(This,genericToken) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IXCLRDataFrame2_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_xclrdata_0000_0018 */
+/* [local] */
+
+typedef /* [public] */
+enum __MIDL___MIDL_itf_xclrdata_0000_0018_0001
+ {
+ CLRDATA_EXCEPTION_DEFAULT = 0,
+ CLRDATA_EXCEPTION_NESTED = 0x1,
+ CLRDATA_EXCEPTION_PARTIAL = 0x2
+ } CLRDataExceptionStateFlag;
+
+typedef /* [public][public] */
+enum __MIDL___MIDL_itf_xclrdata_0000_0018_0002
+ {
+ CLRDATA_EXBASE_EXCEPTION = 0,
+ CLRDATA_EXBASE_OUT_OF_MEMORY = ( CLRDATA_EXBASE_EXCEPTION + 1 ) ,
+ CLRDATA_EXBASE_INVALID_ARGUMENT = ( CLRDATA_EXBASE_OUT_OF_MEMORY + 1 )
+ } CLRDataBaseExceptionType;
+
+typedef /* [public] */
+enum __MIDL___MIDL_itf_xclrdata_0000_0018_0003
+ {
+ CLRDATA_EXSAME_SECOND_CHANCE = 0,
+ CLRDATA_EXSAME_FIRST_CHANCE = 0x1
+ } CLRDataExceptionSameFlag;
+
+#pragma warning(push)
+#pragma warning(disable:28718)
+
+
+extern RPC_IF_HANDLE __MIDL_itf_xclrdata_0000_0018_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_xclrdata_0000_0018_v0_0_s_ifspec;
+
+#ifndef __IXCLRDataExceptionState_INTERFACE_DEFINED__
+#define __IXCLRDataExceptionState_INTERFACE_DEFINED__
+
+/* interface IXCLRDataExceptionState */
+/* [uuid][local][object] */
+
+
+EXTERN_C const IID IID_IXCLRDataExceptionState;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("75DA9E4C-BD33-43C8-8F5C-96E8A5241F57")
+ IXCLRDataExceptionState : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE GetFlags(
+ /* [out] */ ULONG32 *flags) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetPrevious(
+ /* [out] */ IXCLRDataExceptionState **exState) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetManagedObject(
+ /* [out] */ IXCLRDataValue **value) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetBaseType(
+ /* [out] */ CLRDataBaseExceptionType *type) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetCode(
+ /* [out] */ ULONG32 *code) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetString(
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *strLen,
+ /* [size_is][out] */ WCHAR str[ ]) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Request(
+ /* [in] */ ULONG32 reqCode,
+ /* [in] */ ULONG32 inBufferSize,
+ /* [size_is][in] */ BYTE *inBuffer,
+ /* [in] */ ULONG32 outBufferSize,
+ /* [size_is][out] */ BYTE *outBuffer) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE IsSameState(
+ /* [in] */ EXCEPTION_RECORD64 *exRecord,
+ /* [in] */ ULONG32 contextSize,
+ /* [size_is][in] */ BYTE cxRecord[ ]) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE IsSameState2(
+ /* [in] */ ULONG32 flags,
+ /* [in] */ EXCEPTION_RECORD64 *exRecord,
+ /* [in] */ ULONG32 contextSize,
+ /* [size_is][in] */ BYTE cxRecord[ ]) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetTask(
+ /* [out] */ IXCLRDataTask **task) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IXCLRDataExceptionStateVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IXCLRDataExceptionState * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IXCLRDataExceptionState * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IXCLRDataExceptionState * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetFlags )(
+ IXCLRDataExceptionState * This,
+ /* [out] */ ULONG32 *flags);
+
+ HRESULT ( STDMETHODCALLTYPE *GetPrevious )(
+ IXCLRDataExceptionState * This,
+ /* [out] */ IXCLRDataExceptionState **exState);
+
+ HRESULT ( STDMETHODCALLTYPE *GetManagedObject )(
+ IXCLRDataExceptionState * This,
+ /* [out] */ IXCLRDataValue **value);
+
+ HRESULT ( STDMETHODCALLTYPE *GetBaseType )(
+ IXCLRDataExceptionState * This,
+ /* [out] */ CLRDataBaseExceptionType *type);
+
+ HRESULT ( STDMETHODCALLTYPE *GetCode )(
+ IXCLRDataExceptionState * This,
+ /* [out] */ ULONG32 *code);
+
+ HRESULT ( STDMETHODCALLTYPE *GetString )(
+ IXCLRDataExceptionState * This,
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *strLen,
+ /* [size_is][out] */ WCHAR str[ ]);
+
+ HRESULT ( STDMETHODCALLTYPE *Request )(
+ IXCLRDataExceptionState * This,
+ /* [in] */ ULONG32 reqCode,
+ /* [in] */ ULONG32 inBufferSize,
+ /* [size_is][in] */ BYTE *inBuffer,
+ /* [in] */ ULONG32 outBufferSize,
+ /* [size_is][out] */ BYTE *outBuffer);
+
+ HRESULT ( STDMETHODCALLTYPE *IsSameState )(
+ IXCLRDataExceptionState * This,
+ /* [in] */ EXCEPTION_RECORD64 *exRecord,
+ /* [in] */ ULONG32 contextSize,
+ /* [size_is][in] */ BYTE cxRecord[ ]);
+
+ HRESULT ( STDMETHODCALLTYPE *IsSameState2 )(
+ IXCLRDataExceptionState * This,
+ /* [in] */ ULONG32 flags,
+ /* [in] */ EXCEPTION_RECORD64 *exRecord,
+ /* [in] */ ULONG32 contextSize,
+ /* [size_is][in] */ BYTE cxRecord[ ]);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTask )(
+ IXCLRDataExceptionState * This,
+ /* [out] */ IXCLRDataTask **task);
+
+ END_INTERFACE
+ } IXCLRDataExceptionStateVtbl;
+
+ interface IXCLRDataExceptionState
+ {
+ CONST_VTBL struct IXCLRDataExceptionStateVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IXCLRDataExceptionState_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IXCLRDataExceptionState_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IXCLRDataExceptionState_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IXCLRDataExceptionState_GetFlags(This,flags) \
+ ( (This)->lpVtbl -> GetFlags(This,flags) )
+
+#define IXCLRDataExceptionState_GetPrevious(This,exState) \
+ ( (This)->lpVtbl -> GetPrevious(This,exState) )
+
+#define IXCLRDataExceptionState_GetManagedObject(This,value) \
+ ( (This)->lpVtbl -> GetManagedObject(This,value) )
+
+#define IXCLRDataExceptionState_GetBaseType(This,type) \
+ ( (This)->lpVtbl -> GetBaseType(This,type) )
+
+#define IXCLRDataExceptionState_GetCode(This,code) \
+ ( (This)->lpVtbl -> GetCode(This,code) )
+
+#define IXCLRDataExceptionState_GetString(This,bufLen,strLen,str) \
+ ( (This)->lpVtbl -> GetString(This,bufLen,strLen,str) )
+
+#define IXCLRDataExceptionState_Request(This,reqCode,inBufferSize,inBuffer,outBufferSize,outBuffer) \
+ ( (This)->lpVtbl -> Request(This,reqCode,inBufferSize,inBuffer,outBufferSize,outBuffer) )
+
+#define IXCLRDataExceptionState_IsSameState(This,exRecord,contextSize,cxRecord) \
+ ( (This)->lpVtbl -> IsSameState(This,exRecord,contextSize,cxRecord) )
+
+#define IXCLRDataExceptionState_IsSameState2(This,flags,exRecord,contextSize,cxRecord) \
+ ( (This)->lpVtbl -> IsSameState2(This,flags,exRecord,contextSize,cxRecord) )
+
+#define IXCLRDataExceptionState_GetTask(This,task) \
+ ( (This)->lpVtbl -> GetTask(This,task) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IXCLRDataExceptionState_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_xclrdata_0000_0019 */
+/* [local] */
+
+#pragma warning(pop)
+typedef /* [public] */
+enum __MIDL___MIDL_itf_xclrdata_0000_0019_0001
+ {
+ CLRDATA_VLOC_MEMORY = 0,
+ CLRDATA_VLOC_REGISTER = 0x1
+ } ClrDataValueLocationFlag;
+
+#pragma warning(push)
+#pragma warning(disable:28718)
+
+
+extern RPC_IF_HANDLE __MIDL_itf_xclrdata_0000_0019_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_xclrdata_0000_0019_v0_0_s_ifspec;
+
+#ifndef __IXCLRDataValue_INTERFACE_DEFINED__
+#define __IXCLRDataValue_INTERFACE_DEFINED__
+
+/* interface IXCLRDataValue */
+/* [uuid][local][object] */
+
+
+EXTERN_C const IID IID_IXCLRDataValue;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("96EC93C7-1000-4e93-8991-98D8766E6666")
+ IXCLRDataValue : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE GetFlags(
+ /* [out] */ ULONG32 *flags) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetAddress(
+ /* [out] */ CLRDATA_ADDRESS *address) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetSize(
+ /* [out] */ ULONG64 *size) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetBytes(
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *dataSize,
+ /* [size_is][out] */ BYTE buffer[ ]) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetBytes(
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *dataSize,
+ /* [size_is][in] */ BYTE buffer[ ]) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetType(
+ /* [out] */ IXCLRDataTypeInstance **typeInstance) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetNumFields(
+ /* [out] */ ULONG32 *numFields) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetFieldByIndex(
+ /* [in] */ ULONG32 index,
+ /* [out] */ IXCLRDataValue **field,
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR nameBuf[ ],
+ /* [out] */ mdFieldDef *token) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Request(
+ /* [in] */ ULONG32 reqCode,
+ /* [in] */ ULONG32 inBufferSize,
+ /* [size_is][in] */ BYTE *inBuffer,
+ /* [in] */ ULONG32 outBufferSize,
+ /* [size_is][out] */ BYTE *outBuffer) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetNumFields2(
+ /* [in] */ ULONG32 flags,
+ /* [in] */ IXCLRDataTypeInstance *fromType,
+ /* [out] */ ULONG32 *numFields) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StartEnumFields(
+ /* [in] */ ULONG32 flags,
+ /* [in] */ IXCLRDataTypeInstance *fromType,
+ /* [out] */ CLRDATA_ENUM *handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumField(
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataValue **field,
+ /* [in] */ ULONG32 nameBufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR nameBuf[ ],
+ /* [out] */ mdFieldDef *token) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EndEnumFields(
+ /* [in] */ CLRDATA_ENUM handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StartEnumFieldsByName(
+ /* [in] */ LPCWSTR name,
+ /* [in] */ ULONG32 nameFlags,
+ /* [in] */ ULONG32 fieldFlags,
+ /* [in] */ IXCLRDataTypeInstance *fromType,
+ /* [out] */ CLRDATA_ENUM *handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumFieldByName(
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataValue **field,
+ /* [out] */ mdFieldDef *token) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EndEnumFieldsByName(
+ /* [in] */ CLRDATA_ENUM handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetFieldByToken(
+ /* [in] */ mdFieldDef token,
+ /* [out] */ IXCLRDataValue **field,
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR nameBuf[ ]) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetAssociatedValue(
+ /* [out] */ IXCLRDataValue **assocValue) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetAssociatedType(
+ /* [out] */ IXCLRDataTypeInstance **assocType) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetString(
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *strLen,
+ /* [size_is][out] */ WCHAR str[ ]) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetArrayProperties(
+ /* [out] */ ULONG32 *rank,
+ /* [out] */ ULONG32 *totalElements,
+ /* [in] */ ULONG32 numDim,
+ /* [size_is][out] */ ULONG32 dims[ ],
+ /* [in] */ ULONG32 numBases,
+ /* [size_is][out] */ LONG32 bases[ ]) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetArrayElement(
+ /* [in] */ ULONG32 numInd,
+ /* [size_is][in] */ LONG32 indices[ ],
+ /* [out] */ IXCLRDataValue **value) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumField2(
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataValue **field,
+ /* [in] */ ULONG32 nameBufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR nameBuf[ ],
+ /* [out] */ IXCLRDataModule **tokenScope,
+ /* [out] */ mdFieldDef *token) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumFieldByName2(
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataValue **field,
+ /* [out] */ IXCLRDataModule **tokenScope,
+ /* [out] */ mdFieldDef *token) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetFieldByToken2(
+ /* [in] */ IXCLRDataModule *tokenScope,
+ /* [in] */ mdFieldDef token,
+ /* [out] */ IXCLRDataValue **field,
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR nameBuf[ ]) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetNumLocations(
+ /* [out] */ ULONG32 *numLocs) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetLocationByIndex(
+ /* [in] */ ULONG32 loc,
+ /* [out] */ ULONG32 *flags,
+ /* [out] */ CLRDATA_ADDRESS *arg) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IXCLRDataValueVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IXCLRDataValue * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IXCLRDataValue * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IXCLRDataValue * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetFlags )(
+ IXCLRDataValue * This,
+ /* [out] */ ULONG32 *flags);
+
+ HRESULT ( STDMETHODCALLTYPE *GetAddress )(
+ IXCLRDataValue * This,
+ /* [out] */ CLRDATA_ADDRESS *address);
+
+ HRESULT ( STDMETHODCALLTYPE *GetSize )(
+ IXCLRDataValue * This,
+ /* [out] */ ULONG64 *size);
+
+ HRESULT ( STDMETHODCALLTYPE *GetBytes )(
+ IXCLRDataValue * This,
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *dataSize,
+ /* [size_is][out] */ BYTE buffer[ ]);
+
+ HRESULT ( STDMETHODCALLTYPE *SetBytes )(
+ IXCLRDataValue * This,
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *dataSize,
+ /* [size_is][in] */ BYTE buffer[ ]);
+
+ HRESULT ( STDMETHODCALLTYPE *GetType )(
+ IXCLRDataValue * This,
+ /* [out] */ IXCLRDataTypeInstance **typeInstance);
+
+ HRESULT ( STDMETHODCALLTYPE *GetNumFields )(
+ IXCLRDataValue * This,
+ /* [out] */ ULONG32 *numFields);
+
+ HRESULT ( STDMETHODCALLTYPE *GetFieldByIndex )(
+ IXCLRDataValue * This,
+ /* [in] */ ULONG32 index,
+ /* [out] */ IXCLRDataValue **field,
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR nameBuf[ ],
+ /* [out] */ mdFieldDef *token);
+
+ HRESULT ( STDMETHODCALLTYPE *Request )(
+ IXCLRDataValue * This,
+ /* [in] */ ULONG32 reqCode,
+ /* [in] */ ULONG32 inBufferSize,
+ /* [size_is][in] */ BYTE *inBuffer,
+ /* [in] */ ULONG32 outBufferSize,
+ /* [size_is][out] */ BYTE *outBuffer);
+
+ HRESULT ( STDMETHODCALLTYPE *GetNumFields2 )(
+ IXCLRDataValue * This,
+ /* [in] */ ULONG32 flags,
+ /* [in] */ IXCLRDataTypeInstance *fromType,
+ /* [out] */ ULONG32 *numFields);
+
+ HRESULT ( STDMETHODCALLTYPE *StartEnumFields )(
+ IXCLRDataValue * This,
+ /* [in] */ ULONG32 flags,
+ /* [in] */ IXCLRDataTypeInstance *fromType,
+ /* [out] */ CLRDATA_ENUM *handle);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumField )(
+ IXCLRDataValue * This,
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataValue **field,
+ /* [in] */ ULONG32 nameBufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR nameBuf[ ],
+ /* [out] */ mdFieldDef *token);
+
+ HRESULT ( STDMETHODCALLTYPE *EndEnumFields )(
+ IXCLRDataValue * This,
+ /* [in] */ CLRDATA_ENUM handle);
+
+ HRESULT ( STDMETHODCALLTYPE *StartEnumFieldsByName )(
+ IXCLRDataValue * This,
+ /* [in] */ LPCWSTR name,
+ /* [in] */ ULONG32 nameFlags,
+ /* [in] */ ULONG32 fieldFlags,
+ /* [in] */ IXCLRDataTypeInstance *fromType,
+ /* [out] */ CLRDATA_ENUM *handle);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumFieldByName )(
+ IXCLRDataValue * This,
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataValue **field,
+ /* [out] */ mdFieldDef *token);
+
+ HRESULT ( STDMETHODCALLTYPE *EndEnumFieldsByName )(
+ IXCLRDataValue * This,
+ /* [in] */ CLRDATA_ENUM handle);
+
+ HRESULT ( STDMETHODCALLTYPE *GetFieldByToken )(
+ IXCLRDataValue * This,
+ /* [in] */ mdFieldDef token,
+ /* [out] */ IXCLRDataValue **field,
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR nameBuf[ ]);
+
+ HRESULT ( STDMETHODCALLTYPE *GetAssociatedValue )(
+ IXCLRDataValue * This,
+ /* [out] */ IXCLRDataValue **assocValue);
+
+ HRESULT ( STDMETHODCALLTYPE *GetAssociatedType )(
+ IXCLRDataValue * This,
+ /* [out] */ IXCLRDataTypeInstance **assocType);
+
+ HRESULT ( STDMETHODCALLTYPE *GetString )(
+ IXCLRDataValue * This,
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *strLen,
+ /* [size_is][out] */ WCHAR str[ ]);
+
+ HRESULT ( STDMETHODCALLTYPE *GetArrayProperties )(
+ IXCLRDataValue * This,
+ /* [out] */ ULONG32 *rank,
+ /* [out] */ ULONG32 *totalElements,
+ /* [in] */ ULONG32 numDim,
+ /* [size_is][out] */ ULONG32 dims[ ],
+ /* [in] */ ULONG32 numBases,
+ /* [size_is][out] */ LONG32 bases[ ]);
+
+ HRESULT ( STDMETHODCALLTYPE *GetArrayElement )(
+ IXCLRDataValue * This,
+ /* [in] */ ULONG32 numInd,
+ /* [size_is][in] */ LONG32 indices[ ],
+ /* [out] */ IXCLRDataValue **value);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumField2 )(
+ IXCLRDataValue * This,
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataValue **field,
+ /* [in] */ ULONG32 nameBufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR nameBuf[ ],
+ /* [out] */ IXCLRDataModule **tokenScope,
+ /* [out] */ mdFieldDef *token);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumFieldByName2 )(
+ IXCLRDataValue * This,
+ /* [out][in] */ CLRDATA_ENUM *handle,
+ /* [out] */ IXCLRDataValue **field,
+ /* [out] */ IXCLRDataModule **tokenScope,
+ /* [out] */ mdFieldDef *token);
+
+ HRESULT ( STDMETHODCALLTYPE *GetFieldByToken2 )(
+ IXCLRDataValue * This,
+ /* [in] */ IXCLRDataModule *tokenScope,
+ /* [in] */ mdFieldDef token,
+ /* [out] */ IXCLRDataValue **field,
+ /* [in] */ ULONG32 bufLen,
+ /* [out] */ ULONG32 *nameLen,
+ /* [size_is][out] */ WCHAR nameBuf[ ]);
+
+ HRESULT ( STDMETHODCALLTYPE *GetNumLocations )(
+ IXCLRDataValue * This,
+ /* [out] */ ULONG32 *numLocs);
+
+ HRESULT ( STDMETHODCALLTYPE *GetLocationByIndex )(
+ IXCLRDataValue * This,
+ /* [in] */ ULONG32 loc,
+ /* [out] */ ULONG32 *flags,
+ /* [out] */ CLRDATA_ADDRESS *arg);
+
+ END_INTERFACE
+ } IXCLRDataValueVtbl;
+
+ interface IXCLRDataValue
+ {
+ CONST_VTBL struct IXCLRDataValueVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IXCLRDataValue_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IXCLRDataValue_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IXCLRDataValue_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IXCLRDataValue_GetFlags(This,flags) \
+ ( (This)->lpVtbl -> GetFlags(This,flags) )
+
+#define IXCLRDataValue_GetAddress(This,address) \
+ ( (This)->lpVtbl -> GetAddress(This,address) )
+
+#define IXCLRDataValue_GetSize(This,size) \
+ ( (This)->lpVtbl -> GetSize(This,size) )
+
+#define IXCLRDataValue_GetBytes(This,bufLen,dataSize,buffer) \
+ ( (This)->lpVtbl -> GetBytes(This,bufLen,dataSize,buffer) )
+
+#define IXCLRDataValue_SetBytes(This,bufLen,dataSize,buffer) \
+ ( (This)->lpVtbl -> SetBytes(This,bufLen,dataSize,buffer) )
+
+#define IXCLRDataValue_GetType(This,typeInstance) \
+ ( (This)->lpVtbl -> GetType(This,typeInstance) )
+
+#define IXCLRDataValue_GetNumFields(This,numFields) \
+ ( (This)->lpVtbl -> GetNumFields(This,numFields) )
+
+#define IXCLRDataValue_GetFieldByIndex(This,index,field,bufLen,nameLen,nameBuf,token) \
+ ( (This)->lpVtbl -> GetFieldByIndex(This,index,field,bufLen,nameLen,nameBuf,token) )
+
+#define IXCLRDataValue_Request(This,reqCode,inBufferSize,inBuffer,outBufferSize,outBuffer) \
+ ( (This)->lpVtbl -> Request(This,reqCode,inBufferSize,inBuffer,outBufferSize,outBuffer) )
+
+#define IXCLRDataValue_GetNumFields2(This,flags,fromType,numFields) \
+ ( (This)->lpVtbl -> GetNumFields2(This,flags,fromType,numFields) )
+
+#define IXCLRDataValue_StartEnumFields(This,flags,fromType,handle) \
+ ( (This)->lpVtbl -> StartEnumFields(This,flags,fromType,handle) )
+
+#define IXCLRDataValue_EnumField(This,handle,field,nameBufLen,nameLen,nameBuf,token) \
+ ( (This)->lpVtbl -> EnumField(This,handle,field,nameBufLen,nameLen,nameBuf,token) )
+
+#define IXCLRDataValue_EndEnumFields(This,handle) \
+ ( (This)->lpVtbl -> EndEnumFields(This,handle) )
+
+#define IXCLRDataValue_StartEnumFieldsByName(This,name,nameFlags,fieldFlags,fromType,handle) \
+ ( (This)->lpVtbl -> StartEnumFieldsByName(This,name,nameFlags,fieldFlags,fromType,handle) )
+
+#define IXCLRDataValue_EnumFieldByName(This,handle,field,token) \
+ ( (This)->lpVtbl -> EnumFieldByName(This,handle,field,token) )
+
+#define IXCLRDataValue_EndEnumFieldsByName(This,handle) \
+ ( (This)->lpVtbl -> EndEnumFieldsByName(This,handle) )
+
+#define IXCLRDataValue_GetFieldByToken(This,token,field,bufLen,nameLen,nameBuf) \
+ ( (This)->lpVtbl -> GetFieldByToken(This,token,field,bufLen,nameLen,nameBuf) )
+
+#define IXCLRDataValue_GetAssociatedValue(This,assocValue) \
+ ( (This)->lpVtbl -> GetAssociatedValue(This,assocValue) )
+
+#define IXCLRDataValue_GetAssociatedType(This,assocType) \
+ ( (This)->lpVtbl -> GetAssociatedType(This,assocType) )
+
+#define IXCLRDataValue_GetString(This,bufLen,strLen,str) \
+ ( (This)->lpVtbl -> GetString(This,bufLen,strLen,str) )
+
+#define IXCLRDataValue_GetArrayProperties(This,rank,totalElements,numDim,dims,numBases,bases) \
+ ( (This)->lpVtbl -> GetArrayProperties(This,rank,totalElements,numDim,dims,numBases,bases) )
+
+#define IXCLRDataValue_GetArrayElement(This,numInd,indices,value) \
+ ( (This)->lpVtbl -> GetArrayElement(This,numInd,indices,value) )
+
+#define IXCLRDataValue_EnumField2(This,handle,field,nameBufLen,nameLen,nameBuf,tokenScope,token) \
+ ( (This)->lpVtbl -> EnumField2(This,handle,field,nameBufLen,nameLen,nameBuf,tokenScope,token) )
+
+#define IXCLRDataValue_EnumFieldByName2(This,handle,field,tokenScope,token) \
+ ( (This)->lpVtbl -> EnumFieldByName2(This,handle,field,tokenScope,token) )
+
+#define IXCLRDataValue_GetFieldByToken2(This,tokenScope,token,field,bufLen,nameLen,nameBuf) \
+ ( (This)->lpVtbl -> GetFieldByToken2(This,tokenScope,token,field,bufLen,nameLen,nameBuf) )
+
+#define IXCLRDataValue_GetNumLocations(This,numLocs) \
+ ( (This)->lpVtbl -> GetNumLocations(This,numLocs) )
+
+#define IXCLRDataValue_GetLocationByIndex(This,loc,flags,arg) \
+ ( (This)->lpVtbl -> GetLocationByIndex(This,loc,flags,arg) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IXCLRDataValue_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_xclrdata_0000_0020 */
+/* [local] */
+
+#pragma warning(pop)
+
+
+extern RPC_IF_HANDLE __MIDL_itf_xclrdata_0000_0020_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_xclrdata_0000_0020_v0_0_s_ifspec;
+
+#ifndef __IXCLRDataExceptionNotification_INTERFACE_DEFINED__
+#define __IXCLRDataExceptionNotification_INTERFACE_DEFINED__
+
+/* interface IXCLRDataExceptionNotification */
+/* [uuid][local][object] */
+
+
+EXTERN_C const IID IID_IXCLRDataExceptionNotification;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("2D95A079-42A1-4837-818F-0B97D7048E0E")
+ IXCLRDataExceptionNotification : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE OnCodeGenerated(
+ /* [in] */ IXCLRDataMethodInstance *method) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OnCodeDiscarded(
+ /* [in] */ IXCLRDataMethodInstance *method) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OnProcessExecution(
+ /* [in] */ ULONG32 state) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OnTaskExecution(
+ /* [in] */ IXCLRDataTask *task,
+ /* [in] */ ULONG32 state) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OnModuleLoaded(
+ /* [in] */ IXCLRDataModule *mod) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OnModuleUnloaded(
+ /* [in] */ IXCLRDataModule *mod) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OnTypeLoaded(
+ /* [in] */ IXCLRDataTypeInstance *typeInst) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OnTypeUnloaded(
+ /* [in] */ IXCLRDataTypeInstance *typeInst) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IXCLRDataExceptionNotificationVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IXCLRDataExceptionNotification * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IXCLRDataExceptionNotification * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IXCLRDataExceptionNotification * This);
+
+ HRESULT ( STDMETHODCALLTYPE *OnCodeGenerated )(
+ IXCLRDataExceptionNotification * This,
+ /* [in] */ IXCLRDataMethodInstance *method);
+
+ HRESULT ( STDMETHODCALLTYPE *OnCodeDiscarded )(
+ IXCLRDataExceptionNotification * This,
+ /* [in] */ IXCLRDataMethodInstance *method);
+
+ HRESULT ( STDMETHODCALLTYPE *OnProcessExecution )(
+ IXCLRDataExceptionNotification * This,
+ /* [in] */ ULONG32 state);
+
+ HRESULT ( STDMETHODCALLTYPE *OnTaskExecution )(
+ IXCLRDataExceptionNotification * This,
+ /* [in] */ IXCLRDataTask *task,
+ /* [in] */ ULONG32 state);
+
+ HRESULT ( STDMETHODCALLTYPE *OnModuleLoaded )(
+ IXCLRDataExceptionNotification * This,
+ /* [in] */ IXCLRDataModule *mod);
+
+ HRESULT ( STDMETHODCALLTYPE *OnModuleUnloaded )(
+ IXCLRDataExceptionNotification * This,
+ /* [in] */ IXCLRDataModule *mod);
+
+ HRESULT ( STDMETHODCALLTYPE *OnTypeLoaded )(
+ IXCLRDataExceptionNotification * This,
+ /* [in] */ IXCLRDataTypeInstance *typeInst);
+
+ HRESULT ( STDMETHODCALLTYPE *OnTypeUnloaded )(
+ IXCLRDataExceptionNotification * This,
+ /* [in] */ IXCLRDataTypeInstance *typeInst);
+
+ END_INTERFACE
+ } IXCLRDataExceptionNotificationVtbl;
+
+ interface IXCLRDataExceptionNotification
+ {
+ CONST_VTBL struct IXCLRDataExceptionNotificationVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IXCLRDataExceptionNotification_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IXCLRDataExceptionNotification_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IXCLRDataExceptionNotification_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IXCLRDataExceptionNotification_OnCodeGenerated(This,method) \
+ ( (This)->lpVtbl -> OnCodeGenerated(This,method) )
+
+#define IXCLRDataExceptionNotification_OnCodeDiscarded(This,method) \
+ ( (This)->lpVtbl -> OnCodeDiscarded(This,method) )
+
+#define IXCLRDataExceptionNotification_OnProcessExecution(This,state) \
+ ( (This)->lpVtbl -> OnProcessExecution(This,state) )
+
+#define IXCLRDataExceptionNotification_OnTaskExecution(This,task,state) \
+ ( (This)->lpVtbl -> OnTaskExecution(This,task,state) )
+
+#define IXCLRDataExceptionNotification_OnModuleLoaded(This,mod) \
+ ( (This)->lpVtbl -> OnModuleLoaded(This,mod) )
+
+#define IXCLRDataExceptionNotification_OnModuleUnloaded(This,mod) \
+ ( (This)->lpVtbl -> OnModuleUnloaded(This,mod) )
+
+#define IXCLRDataExceptionNotification_OnTypeLoaded(This,typeInst) \
+ ( (This)->lpVtbl -> OnTypeLoaded(This,typeInst) )
+
+#define IXCLRDataExceptionNotification_OnTypeUnloaded(This,typeInst) \
+ ( (This)->lpVtbl -> OnTypeUnloaded(This,typeInst) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IXCLRDataExceptionNotification_INTERFACE_DEFINED__ */
+
+
+#ifndef __IXCLRDataExceptionNotification2_INTERFACE_DEFINED__
+#define __IXCLRDataExceptionNotification2_INTERFACE_DEFINED__
+
+/* interface IXCLRDataExceptionNotification2 */
+/* [uuid][local][object] */
+
+
+EXTERN_C const IID IID_IXCLRDataExceptionNotification2;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("31201a94-4337-49b7-aef7-0c755054091f")
+ IXCLRDataExceptionNotification2 : public IXCLRDataExceptionNotification
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE OnAppDomainLoaded(
+ /* [in] */ IXCLRDataAppDomain *domain) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OnAppDomainUnloaded(
+ /* [in] */ IXCLRDataAppDomain *domain) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OnException(
+ /* [in] */ IXCLRDataExceptionState *exception) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IXCLRDataExceptionNotification2Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IXCLRDataExceptionNotification2 * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IXCLRDataExceptionNotification2 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IXCLRDataExceptionNotification2 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *OnCodeGenerated )(
+ IXCLRDataExceptionNotification2 * This,
+ /* [in] */ IXCLRDataMethodInstance *method);
+
+ HRESULT ( STDMETHODCALLTYPE *OnCodeDiscarded )(
+ IXCLRDataExceptionNotification2 * This,
+ /* [in] */ IXCLRDataMethodInstance *method);
+
+ HRESULT ( STDMETHODCALLTYPE *OnProcessExecution )(
+ IXCLRDataExceptionNotification2 * This,
+ /* [in] */ ULONG32 state);
+
+ HRESULT ( STDMETHODCALLTYPE *OnTaskExecution )(
+ IXCLRDataExceptionNotification2 * This,
+ /* [in] */ IXCLRDataTask *task,
+ /* [in] */ ULONG32 state);
+
+ HRESULT ( STDMETHODCALLTYPE *OnModuleLoaded )(
+ IXCLRDataExceptionNotification2 * This,
+ /* [in] */ IXCLRDataModule *mod);
+
+ HRESULT ( STDMETHODCALLTYPE *OnModuleUnloaded )(
+ IXCLRDataExceptionNotification2 * This,
+ /* [in] */ IXCLRDataModule *mod);
+
+ HRESULT ( STDMETHODCALLTYPE *OnTypeLoaded )(
+ IXCLRDataExceptionNotification2 * This,
+ /* [in] */ IXCLRDataTypeInstance *typeInst);
+
+ HRESULT ( STDMETHODCALLTYPE *OnTypeUnloaded )(
+ IXCLRDataExceptionNotification2 * This,
+ /* [in] */ IXCLRDataTypeInstance *typeInst);
+
+ HRESULT ( STDMETHODCALLTYPE *OnAppDomainLoaded )(
+ IXCLRDataExceptionNotification2 * This,
+ /* [in] */ IXCLRDataAppDomain *domain);
+
+ HRESULT ( STDMETHODCALLTYPE *OnAppDomainUnloaded )(
+ IXCLRDataExceptionNotification2 * This,
+ /* [in] */ IXCLRDataAppDomain *domain);
+
+ HRESULT ( STDMETHODCALLTYPE *OnException )(
+ IXCLRDataExceptionNotification2 * This,
+ /* [in] */ IXCLRDataExceptionState *exception);
+
+ END_INTERFACE
+ } IXCLRDataExceptionNotification2Vtbl;
+
+ interface IXCLRDataExceptionNotification2
+ {
+ CONST_VTBL struct IXCLRDataExceptionNotification2Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IXCLRDataExceptionNotification2_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IXCLRDataExceptionNotification2_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IXCLRDataExceptionNotification2_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IXCLRDataExceptionNotification2_OnCodeGenerated(This,method) \
+ ( (This)->lpVtbl -> OnCodeGenerated(This,method) )
+
+#define IXCLRDataExceptionNotification2_OnCodeDiscarded(This,method) \
+ ( (This)->lpVtbl -> OnCodeDiscarded(This,method) )
+
+#define IXCLRDataExceptionNotification2_OnProcessExecution(This,state) \
+ ( (This)->lpVtbl -> OnProcessExecution(This,state) )
+
+#define IXCLRDataExceptionNotification2_OnTaskExecution(This,task,state) \
+ ( (This)->lpVtbl -> OnTaskExecution(This,task,state) )
+
+#define IXCLRDataExceptionNotification2_OnModuleLoaded(This,mod) \
+ ( (This)->lpVtbl -> OnModuleLoaded(This,mod) )
+
+#define IXCLRDataExceptionNotification2_OnModuleUnloaded(This,mod) \
+ ( (This)->lpVtbl -> OnModuleUnloaded(This,mod) )
+
+#define IXCLRDataExceptionNotification2_OnTypeLoaded(This,typeInst) \
+ ( (This)->lpVtbl -> OnTypeLoaded(This,typeInst) )
+
+#define IXCLRDataExceptionNotification2_OnTypeUnloaded(This,typeInst) \
+ ( (This)->lpVtbl -> OnTypeUnloaded(This,typeInst) )
+
+
+#define IXCLRDataExceptionNotification2_OnAppDomainLoaded(This,domain) \
+ ( (This)->lpVtbl -> OnAppDomainLoaded(This,domain) )
+
+#define IXCLRDataExceptionNotification2_OnAppDomainUnloaded(This,domain) \
+ ( (This)->lpVtbl -> OnAppDomainUnloaded(This,domain) )
+
+#define IXCLRDataExceptionNotification2_OnException(This,exception) \
+ ( (This)->lpVtbl -> OnException(This,exception) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IXCLRDataExceptionNotification2_INTERFACE_DEFINED__ */
+
+
+#ifndef __IXCLRDataExceptionNotification3_INTERFACE_DEFINED__
+#define __IXCLRDataExceptionNotification3_INTERFACE_DEFINED__
+
+/* interface IXCLRDataExceptionNotification3 */
+/* [uuid][local][object] */
+
+
+EXTERN_C const IID IID_IXCLRDataExceptionNotification3;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("31201a94-4337-49b7-aef7-0c7550540920")
+ IXCLRDataExceptionNotification3 : public IXCLRDataExceptionNotification2
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE OnGcEvent(
+ /* [in] */ GcEvtArgs gcEvtArgs) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IXCLRDataExceptionNotification3Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IXCLRDataExceptionNotification3 * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IXCLRDataExceptionNotification3 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IXCLRDataExceptionNotification3 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *OnCodeGenerated )(
+ IXCLRDataExceptionNotification3 * This,
+ /* [in] */ IXCLRDataMethodInstance *method);
+
+ HRESULT ( STDMETHODCALLTYPE *OnCodeDiscarded )(
+ IXCLRDataExceptionNotification3 * This,
+ /* [in] */ IXCLRDataMethodInstance *method);
+
+ HRESULT ( STDMETHODCALLTYPE *OnProcessExecution )(
+ IXCLRDataExceptionNotification3 * This,
+ /* [in] */ ULONG32 state);
+
+ HRESULT ( STDMETHODCALLTYPE *OnTaskExecution )(
+ IXCLRDataExceptionNotification3 * This,
+ /* [in] */ IXCLRDataTask *task,
+ /* [in] */ ULONG32 state);
+
+ HRESULT ( STDMETHODCALLTYPE *OnModuleLoaded )(
+ IXCLRDataExceptionNotification3 * This,
+ /* [in] */ IXCLRDataModule *mod);
+
+ HRESULT ( STDMETHODCALLTYPE *OnModuleUnloaded )(
+ IXCLRDataExceptionNotification3 * This,
+ /* [in] */ IXCLRDataModule *mod);
+
+ HRESULT ( STDMETHODCALLTYPE *OnTypeLoaded )(
+ IXCLRDataExceptionNotification3 * This,
+ /* [in] */ IXCLRDataTypeInstance *typeInst);
+
+ HRESULT ( STDMETHODCALLTYPE *OnTypeUnloaded )(
+ IXCLRDataExceptionNotification3 * This,
+ /* [in] */ IXCLRDataTypeInstance *typeInst);
+
+ HRESULT ( STDMETHODCALLTYPE *OnAppDomainLoaded )(
+ IXCLRDataExceptionNotification3 * This,
+ /* [in] */ IXCLRDataAppDomain *domain);
+
+ HRESULT ( STDMETHODCALLTYPE *OnAppDomainUnloaded )(
+ IXCLRDataExceptionNotification3 * This,
+ /* [in] */ IXCLRDataAppDomain *domain);
+
+ HRESULT ( STDMETHODCALLTYPE *OnException )(
+ IXCLRDataExceptionNotification3 * This,
+ /* [in] */ IXCLRDataExceptionState *exception);
+
+ HRESULT ( STDMETHODCALLTYPE *OnGcEvent )(
+ IXCLRDataExceptionNotification3 * This,
+ /* [in] */ GcEvtArgs gcEvtArgs);
+
+ END_INTERFACE
+ } IXCLRDataExceptionNotification3Vtbl;
+
+ interface IXCLRDataExceptionNotification3
+ {
+ CONST_VTBL struct IXCLRDataExceptionNotification3Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IXCLRDataExceptionNotification3_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IXCLRDataExceptionNotification3_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IXCLRDataExceptionNotification3_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IXCLRDataExceptionNotification3_OnCodeGenerated(This,method) \
+ ( (This)->lpVtbl -> OnCodeGenerated(This,method) )
+
+#define IXCLRDataExceptionNotification3_OnCodeDiscarded(This,method) \
+ ( (This)->lpVtbl -> OnCodeDiscarded(This,method) )
+
+#define IXCLRDataExceptionNotification3_OnProcessExecution(This,state) \
+ ( (This)->lpVtbl -> OnProcessExecution(This,state) )
+
+#define IXCLRDataExceptionNotification3_OnTaskExecution(This,task,state) \
+ ( (This)->lpVtbl -> OnTaskExecution(This,task,state) )
+
+#define IXCLRDataExceptionNotification3_OnModuleLoaded(This,mod) \
+ ( (This)->lpVtbl -> OnModuleLoaded(This,mod) )
+
+#define IXCLRDataExceptionNotification3_OnModuleUnloaded(This,mod) \
+ ( (This)->lpVtbl -> OnModuleUnloaded(This,mod) )
+
+#define IXCLRDataExceptionNotification3_OnTypeLoaded(This,typeInst) \
+ ( (This)->lpVtbl -> OnTypeLoaded(This,typeInst) )
+
+#define IXCLRDataExceptionNotification3_OnTypeUnloaded(This,typeInst) \
+ ( (This)->lpVtbl -> OnTypeUnloaded(This,typeInst) )
+
+
+#define IXCLRDataExceptionNotification3_OnAppDomainLoaded(This,domain) \
+ ( (This)->lpVtbl -> OnAppDomainLoaded(This,domain) )
+
+#define IXCLRDataExceptionNotification3_OnAppDomainUnloaded(This,domain) \
+ ( (This)->lpVtbl -> OnAppDomainUnloaded(This,domain) )
+
+#define IXCLRDataExceptionNotification3_OnException(This,exception) \
+ ( (This)->lpVtbl -> OnException(This,exception) )
+
+
+#define IXCLRDataExceptionNotification3_OnGcEvent(This,gcEvtArgs) \
+ ( (This)->lpVtbl -> OnGcEvent(This,gcEvtArgs) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IXCLRDataExceptionNotification3_INTERFACE_DEFINED__ */
+
+
+#ifndef __IXCLRDataExceptionNotification4_INTERFACE_DEFINED__
+#define __IXCLRDataExceptionNotification4_INTERFACE_DEFINED__
+
+/* interface IXCLRDataExceptionNotification4 */
+/* [uuid][local][object] */
+
+
+EXTERN_C const IID IID_IXCLRDataExceptionNotification4;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("C25E926E-5F09-4AA2-BBAD-B7FC7F10CFD7")
+ IXCLRDataExceptionNotification4 : public IXCLRDataExceptionNotification3
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE ExceptionCatcherEnter(
+ /* [in] */ IXCLRDataMethodInstance *catchingMethod,
+ DWORD catcherNativeOffset) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IXCLRDataExceptionNotification4Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IXCLRDataExceptionNotification4 * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IXCLRDataExceptionNotification4 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IXCLRDataExceptionNotification4 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *OnCodeGenerated )(
+ IXCLRDataExceptionNotification4 * This,
+ /* [in] */ IXCLRDataMethodInstance *method);
+
+ HRESULT ( STDMETHODCALLTYPE *OnCodeDiscarded )(
+ IXCLRDataExceptionNotification4 * This,
+ /* [in] */ IXCLRDataMethodInstance *method);
+
+ HRESULT ( STDMETHODCALLTYPE *OnProcessExecution )(
+ IXCLRDataExceptionNotification4 * This,
+ /* [in] */ ULONG32 state);
+
+ HRESULT ( STDMETHODCALLTYPE *OnTaskExecution )(
+ IXCLRDataExceptionNotification4 * This,
+ /* [in] */ IXCLRDataTask *task,
+ /* [in] */ ULONG32 state);
+
+ HRESULT ( STDMETHODCALLTYPE *OnModuleLoaded )(
+ IXCLRDataExceptionNotification4 * This,
+ /* [in] */ IXCLRDataModule *mod);
+
+ HRESULT ( STDMETHODCALLTYPE *OnModuleUnloaded )(
+ IXCLRDataExceptionNotification4 * This,
+ /* [in] */ IXCLRDataModule *mod);
+
+ HRESULT ( STDMETHODCALLTYPE *OnTypeLoaded )(
+ IXCLRDataExceptionNotification4 * This,
+ /* [in] */ IXCLRDataTypeInstance *typeInst);
+
+ HRESULT ( STDMETHODCALLTYPE *OnTypeUnloaded )(
+ IXCLRDataExceptionNotification4 * This,
+ /* [in] */ IXCLRDataTypeInstance *typeInst);
+
+ HRESULT ( STDMETHODCALLTYPE *OnAppDomainLoaded )(
+ IXCLRDataExceptionNotification4 * This,
+ /* [in] */ IXCLRDataAppDomain *domain);
+
+ HRESULT ( STDMETHODCALLTYPE *OnAppDomainUnloaded )(
+ IXCLRDataExceptionNotification4 * This,
+ /* [in] */ IXCLRDataAppDomain *domain);
+
+ HRESULT ( STDMETHODCALLTYPE *OnException )(
+ IXCLRDataExceptionNotification4 * This,
+ /* [in] */ IXCLRDataExceptionState *exception);
+
+ HRESULT ( STDMETHODCALLTYPE *OnGcEvent )(
+ IXCLRDataExceptionNotification4 * This,
+ /* [in] */ GcEvtArgs gcEvtArgs);
+
+ HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherEnter )(
+ IXCLRDataExceptionNotification4 * This,
+ /* [in] */ IXCLRDataMethodInstance *catchingMethod,
+ DWORD catcherNativeOffset);
+
+ END_INTERFACE
+ } IXCLRDataExceptionNotification4Vtbl;
+
+ interface IXCLRDataExceptionNotification4
+ {
+ CONST_VTBL struct IXCLRDataExceptionNotification4Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IXCLRDataExceptionNotification4_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IXCLRDataExceptionNotification4_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IXCLRDataExceptionNotification4_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IXCLRDataExceptionNotification4_OnCodeGenerated(This,method) \
+ ( (This)->lpVtbl -> OnCodeGenerated(This,method) )
+
+#define IXCLRDataExceptionNotification4_OnCodeDiscarded(This,method) \
+ ( (This)->lpVtbl -> OnCodeDiscarded(This,method) )
+
+#define IXCLRDataExceptionNotification4_OnProcessExecution(This,state) \
+ ( (This)->lpVtbl -> OnProcessExecution(This,state) )
+
+#define IXCLRDataExceptionNotification4_OnTaskExecution(This,task,state) \
+ ( (This)->lpVtbl -> OnTaskExecution(This,task,state) )
+
+#define IXCLRDataExceptionNotification4_OnModuleLoaded(This,mod) \
+ ( (This)->lpVtbl -> OnModuleLoaded(This,mod) )
+
+#define IXCLRDataExceptionNotification4_OnModuleUnloaded(This,mod) \
+ ( (This)->lpVtbl -> OnModuleUnloaded(This,mod) )
+
+#define IXCLRDataExceptionNotification4_OnTypeLoaded(This,typeInst) \
+ ( (This)->lpVtbl -> OnTypeLoaded(This,typeInst) )
+
+#define IXCLRDataExceptionNotification4_OnTypeUnloaded(This,typeInst) \
+ ( (This)->lpVtbl -> OnTypeUnloaded(This,typeInst) )
+
+
+#define IXCLRDataExceptionNotification4_OnAppDomainLoaded(This,domain) \
+ ( (This)->lpVtbl -> OnAppDomainLoaded(This,domain) )
+
+#define IXCLRDataExceptionNotification4_OnAppDomainUnloaded(This,domain) \
+ ( (This)->lpVtbl -> OnAppDomainUnloaded(This,domain) )
+
+#define IXCLRDataExceptionNotification4_OnException(This,exception) \
+ ( (This)->lpVtbl -> OnException(This,exception) )
+
+
+#define IXCLRDataExceptionNotification4_OnGcEvent(This,gcEvtArgs) \
+ ( (This)->lpVtbl -> OnGcEvent(This,gcEvtArgs) )
+
+
+#define IXCLRDataExceptionNotification4_ExceptionCatcherEnter(This,catchingMethod,catcherNativeOffset) \
+ ( (This)->lpVtbl -> ExceptionCatcherEnter(This,catchingMethod,catcherNativeOffset) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IXCLRDataExceptionNotification4_INTERFACE_DEFINED__ */
+
+
+/* Additional Prototypes for ALL interfaces */
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+