Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/extras
diff options
context:
space:
mode:
authorLluis Sanchez <lluis@xamarin.com>2013-09-03 22:21:53 +0400
committerLluis Sanchez <lluis@xamarin.com>2013-09-03 22:21:53 +0400
commit755910e49cfdc556f9003a0831957ecb332eea99 (patch)
treeeb6b25656fb2447378a5680573b7c23a10618b00 /extras
parent6e07c0984371ac5a6cfb360f4370b23cdcbbfb28 (diff)
parent7d6dab06239462b5165a148bf08212864337b610 (diff)
Merge remote-tracking branch 'origin/master' into retina
Conflicts: version-checks
Diffstat (limited to 'extras')
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi-License.txt62
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi/CorApi.csproj18
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi/ICorDebugWrappers.cs1906
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi/ICorPublishWrappers.cs123
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi/IMetadataImport.cs2687
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi/RawAssemblyAttributes.cs (renamed from extras/MonoDevelop.Debugger.Win32/CorApi2/Metadata/Constants.cs)11
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi/WindowsImports.cs117
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi/context.il130
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi/cordblib.il4195
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi/corpublib.il327
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi/refs.il29
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi2/CorApi2.csproj3
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi2/Metadata/CorMetadata.cs47
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi2/Metadata/MetadataFieldInfo.cs8
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi2/Metadata/MetadataParameterInfo.cs8
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi2/Metadata/MetadataType.cs43
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/ISymConstant.cs11
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/ISymEncMethod.cs15
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/ISymReader2.cs4
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/ISymScope2.cs4
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/ISymSearchInfo.cs4
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/ISymWriter2.cs47
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/SymAccess.cs150
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/SymConstant.cs5
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/SymDocument.cs10
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/SymDocumentWriter.cs4
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/SymNamespace.cs4
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/SymReader.cs92
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/SymScope.cs36
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/SymWriter.cs266
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/symbinder.cs137
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/symmethod.cs20
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/symvariable.cs2
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi2/debug/AppDomain.cs19
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Assembly.cs10
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Breakpoint.cs10
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Class.cs10
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Constants.cs187
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi2/debug/CorAPIAssemblyAttributes.cs13
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Debugger.cs1975
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi2/debug/ErrorInfoEnumerator.cs15
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Eval.cs13
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi2/debug/HResults.cs4
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Module.cs41
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Process.cs58
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi2/debug/RegisterSet.cs12
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Stepper.cs28
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Thread.cs162
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Type.cs11
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi2/debug/TypeEnumerator.cs3
-rw-r--r--extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Value.cs14
-rw-r--r--extras/MonoDevelop.Debugger.Win32/MonoDevelop.Debugger.Win32/ArrayAdaptor.cs10
-rw-r--r--extras/MonoDevelop.Debugger.Win32/MonoDevelop.Debugger.Win32/CorDebuggerSession.cs10
-rw-r--r--extras/MonoDevelop.Debugger.Win32/MonoDevelop.Debugger.Win32/MonoDevelop.Debugger.Win32.csproj19
-rw-r--r--extras/MonoDevelop.Debugger.Win32/README9
-rw-r--r--extras/MonoDevelop.Debugger.Win32/eula.rtf428
56 files changed, 5845 insertions, 7741 deletions
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi-License.txt b/extras/MonoDevelop.Debugger.Win32/CorApi-License.txt
deleted file mode 100644
index bccba8c237..0000000000
--- a/extras/MonoDevelop.Debugger.Win32/CorApi-License.txt
+++ /dev/null
@@ -1,62 +0,0 @@
-Microsoft Public License (Ms-PL)
-
-This license governs use of the accompanying software. If you use the
-software, you accept this license. If you do not accept the license, do
-not use the software.
-
-1. Definitions
-
-The terms "reproduce," "reproduction," "derivative works," and
-"distribution" have the same meaning here as under U.S. copyright law.
-
-A "contribution" is the original software, or any additions or changes
-to the software.
-
-A "contributor" is any person that distributes its contribution under
-this license.
-
-"Licensed patents" are a contributor's patent claims that read directly
-on its contribution.
-
-2. Grant of Rights
-
-(A) Copyright Grant- Subject to the terms of this license, including the
-license conditions and limitations in section 3, each contributor grants
-you a non-exclusive, worldwide, royalty-free copyright license to
-reproduce its contribution, prepare derivative works of its
-contribution, and distribute its contribution or any derivative works
-that you create.
-
-(B) Patent Grant- Subject to the terms of this license, including the
-license conditions and limitations in section 3, each contributor grants
-you a non-exclusive, worldwide, royalty-free license under its licensed
-patents to make, have made, use, sell, offer for sale, import, and/or
-otherwise dispose of its contribution in the software or derivative
-works of the contribution in the software.
-
-3. Conditions and Limitations
-
-(A) No Trademark License- This license does not grant you rights to use
-any contributors' name, logo, or trademarks.
-
-(B) If you bring a patent claim against any contributor over patents
-that you claim are infringed by the software, your patent license from
-such contributor to the software ends automatically.
-
-(C) If you distribute any portion of the software, you must retain all
-copyright, patent, trademark, and attribution notices that are present
-in the software.
-
-(D) If you distribute any portion of the software in source code form,
-you may do so only under this license by including a complete copy of
-this license with your distribution. If you distribute any portion of
-the software in compiled or object code form, you may only do so under a
-license that complies with this license.
-
-(E) The software is licensed "as-is." You bear the risk of using it. The
-contributors give no express warranties, guarantees or conditions. You
-may have additional consumer rights under your local laws which this
-license cannot change. To the extent permitted under your local laws,
-the contributors exclude the implied warranties of merchantability,
-fitness for a particular purpose and non-infringement.
-
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi/CorApi.csproj b/extras/MonoDevelop.Debugger.Win32/CorApi/CorApi.csproj
index e6c96b2f29..5d0bfc1f96 100644
--- a/extras/MonoDevelop.Debugger.Win32/CorApi/CorApi.csproj
+++ b/extras/MonoDevelop.Debugger.Win32/CorApi/CorApi.csproj
@@ -48,6 +48,7 @@
<PlatformTarget>AnyCPU</PlatformTarget>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
@@ -55,20 +56,11 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
- <None Include="context.il" />
- <None Include="cordblib.il" />
- <None Include="corpublib.il" />
- <None Include="refs.il" />
- </ItemGroup>
- <ItemGroup>
<Compile Include="IMetadataImport.cs" />
+ <Compile Include="ICorDebugWrappers.cs" />
+ <Compile Include="ICorPublishWrappers.cs" />
+ <Compile Include="RawAssemblyAttributes.cs" />
+ <Compile Include="WindowsImports.cs" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
- <PropertyGroup>
- <PostBuildEvent>call "$(FrameworkSDKDir)bin\ildasm.exe" /NOBAR "$(TargetDir)CorApi.dll" /OUT="$(TargetDir)CorApiMDImp.il"
-del /F /Q "$(TargetDir)CorApi.dll"
-call "$(FrameworkDir)\$(FrameworkVersion)\ilasm.exe" /DLL /DEBUG /OUT="$(TargetDir)CorApi.dll" "$(ProjectDir)refs.il" "$(ProjectDir)context.il" "$(ProjectDir)cordblib.il" "$(ProjectDir)corpublib.il" "$(TargetDir)CorApiMDImp.il"
-del /F /Q "$(TargetDir)CorApiMDImp.il"
-del /F /Q "$(TargetDir)CorApiMDImp.res"</PostBuildEvent>
- </PropertyGroup>
</Project> \ No newline at end of file
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi/ICorDebugWrappers.cs b/extras/MonoDevelop.Debugger.Win32/CorApi/ICorDebugWrappers.cs
new file mode 100644
index 0000000000..5f8f793dba
--- /dev/null
+++ b/extras/MonoDevelop.Debugger.Win32/CorApi/ICorDebugWrappers.cs
@@ -0,0 +1,1906 @@
+//---------------------------------------------------------------------
+// This file is part of the CLR Managed Debugger (mdbg) Sample.
+//
+// Copyright (C) Microsoft Corporation. All rights reserved.
+//
+// Imports ICorDebug interface from CorDebug.idl into managed code.
+//---------------------------------------------------------------------
+
+
+using System;
+using System.Text;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+using IStream = System.Runtime.InteropServices.ComTypes.IStream;
+using Microsoft.Samples.Debugging.CorMetadata.NativeApi;
+using Microsoft.Win32.SafeHandles;
+
+namespace Microsoft.Samples.Debugging.CorDebug.NativeApi
+{
+ [StructLayout(LayoutKind.Sequential, Pack = 4)]
+ public struct _COR_VERSION
+ {
+ public uint dwMajor;
+ public uint dwMinor;
+ public uint dwBuild;
+ public uint dwSubBuild;
+ }
+
+ [StructLayout(LayoutKind.Sequential, Pack = 8)]
+ public struct _LARGE_INTEGER
+ {
+ public long QuadPart;
+ }
+
+ [StructLayout(LayoutKind.Sequential, Pack = 4)]
+ public struct _SECURITY_ATTRIBUTES
+ {
+ public uint nLength;
+ public IntPtr lpSecurityDescriptor;
+ public int bInheritHandle;
+ }
+
+ [StructLayout(LayoutKind.Sequential, Pack = 8)]
+ public struct _ULARGE_INTEGER
+ {
+ public ulong QuadPart;
+ }
+
+ [StructLayout(LayoutKind.Sequential, Pack = 4)]
+ public struct COR_IL_MAP
+ {
+ public uint oldOffset;
+ public uint newOffset;
+ public int fAccurate;
+ }
+
+ public enum CorDebugCreateProcessFlags
+ {
+ DEBUG_NO_SPECIAL_OPTIONS
+ }
+
+ public enum CorDebugExceptionCallbackType
+ {
+ // Fields
+ DEBUG_EXCEPTION_CATCH_HANDLER_FOUND = 3,
+ DEBUG_EXCEPTION_FIRST_CHANCE = 1,
+ DEBUG_EXCEPTION_UNHANDLED = 4,
+ DEBUG_EXCEPTION_USER_FIRST_CHANCE = 2
+ }
+
+ public enum CorDebugExceptionUnwindCallbackType
+ {
+ // Fields
+ DEBUG_EXCEPTION_INTERCEPTED = 2,
+ DEBUG_EXCEPTION_UNWIND_BEGIN = 1
+ }
+
+
+ public enum CorDebugRegister
+ {
+ // Fields
+ REGISTER_AMD64_R10 = 11,
+ REGISTER_AMD64_R11 = 12,
+ REGISTER_AMD64_R12 = 13,
+ REGISTER_AMD64_R13 = 14,
+ REGISTER_AMD64_R14 = 15,
+ REGISTER_AMD64_R15 = 0x10,
+ REGISTER_AMD64_R8 = 9,
+ REGISTER_AMD64_R9 = 10,
+ REGISTER_AMD64_RAX = 3,
+ REGISTER_AMD64_RBP = 2,
+ REGISTER_AMD64_RBX = 6,
+ REGISTER_AMD64_RCX = 4,
+ REGISTER_AMD64_RDI = 8,
+ REGISTER_AMD64_RDX = 5,
+ REGISTER_AMD64_RIP = 0,
+ REGISTER_AMD64_RSI = 7,
+ REGISTER_AMD64_RSP = 1,
+ REGISTER_AMD64_XMM0 = 0x11,
+ REGISTER_AMD64_XMM1 = 0x12,
+ REGISTER_AMD64_XMM10 = 0x1b,
+ REGISTER_AMD64_XMM11 = 0x1c,
+ REGISTER_AMD64_XMM12 = 0x1d,
+ REGISTER_AMD64_XMM13 = 30,
+ REGISTER_AMD64_XMM14 = 0x1f,
+ REGISTER_AMD64_XMM15 = 0x20,
+ REGISTER_AMD64_XMM2 = 0x13,
+ REGISTER_AMD64_XMM3 = 20,
+ REGISTER_AMD64_XMM4 = 0x15,
+ REGISTER_AMD64_XMM5 = 0x16,
+ REGISTER_AMD64_XMM6 = 0x17,
+ REGISTER_AMD64_XMM7 = 0x18,
+ REGISTER_AMD64_XMM8 = 0x19,
+ REGISTER_AMD64_XMM9 = 0x1a,
+ REGISTER_FRAME_POINTER = 2,
+ REGISTER_IA64_BSP = 2,
+ REGISTER_IA64_F0 = 0x83,
+ REGISTER_IA64_R0 = 3,
+ REGISTER_INSTRUCTION_POINTER = 0,
+ REGISTER_STACK_POINTER = 1,
+ REGISTER_X86_EAX = 3,
+ REGISTER_X86_EBP = 2,
+ REGISTER_X86_EBX = 6,
+ REGISTER_X86_ECX = 4,
+ REGISTER_X86_EDI = 8,
+ REGISTER_X86_EDX = 5,
+ REGISTER_X86_EIP = 0,
+ REGISTER_X86_ESI = 7,
+ REGISTER_X86_ESP = 1,
+ REGISTER_X86_FPSTACK_0 = 9,
+ REGISTER_X86_FPSTACK_1 = 10,
+ REGISTER_X86_FPSTACK_2 = 11,
+ REGISTER_X86_FPSTACK_3 = 12,
+ REGISTER_X86_FPSTACK_4 = 13,
+ REGISTER_X86_FPSTACK_5 = 14,
+ REGISTER_X86_FPSTACK_6 = 15,
+ REGISTER_X86_FPSTACK_7 = 0x10
+ }
+
+
+
+
+
+ [Flags]
+ public enum CorDebugUserState
+ {
+ // Fields
+ USER_STOP_REQUESTED = 0x01,
+ USER_SUSPEND_REQUESTED = 0x02,
+ USER_BACKGROUND = 0x04,
+ USER_UNSTARTED = 0x08,
+ USER_STOPPED = 0x10,
+ USER_WAIT_SLEEP_JOIN = 0x20,
+ USER_SUSPENDED = 0x40,
+ USER_UNSAFE_POINT = 0x80
+ }
+
+ // [Xamarin] Expression evaluator.
+ [CLSCompliant(true)]
+ [Flags]
+ public enum CorElementType
+ {
+ // Fields
+ ELEMENT_TYPE_ARRAY = 20,
+ ELEMENT_TYPE_BOOLEAN = 2,
+ ELEMENT_TYPE_BYREF = 0x10,
+ ELEMENT_TYPE_CHAR = 3,
+ ELEMENT_TYPE_CLASS = 0x12,
+ ELEMENT_TYPE_CMOD_OPT = 0x20,
+ ELEMENT_TYPE_CMOD_REQD = 0x1f,
+ ELEMENT_TYPE_END = 0,
+ ELEMENT_TYPE_FNPTR = 0x1b,
+ ELEMENT_TYPE_GENERICINST = 0x15,
+ ELEMENT_TYPE_I = 0x18,
+ ELEMENT_TYPE_I1 = 4,
+ ELEMENT_TYPE_I2 = 6,
+ ELEMENT_TYPE_I4 = 8,
+ ELEMENT_TYPE_I8 = 10,
+ ELEMENT_TYPE_INTERNAL = 0x21,
+ ELEMENT_TYPE_MAX = 0x22,
+ ELEMENT_TYPE_MODIFIER = 0x40,
+ ELEMENT_TYPE_MVAR = 0x1e,
+ ELEMENT_TYPE_OBJECT = 0x1c,
+ ELEMENT_TYPE_PINNED = 0x45,
+ ELEMENT_TYPE_PTR = 15,
+ ELEMENT_TYPE_R4 = 12,
+ ELEMENT_TYPE_R8 = 13,
+ ELEMENT_TYPE_SENTINEL = 0x41,
+ ELEMENT_TYPE_STRING = 14,
+ ELEMENT_TYPE_SZARRAY = 0x1d,
+ ELEMENT_TYPE_TYPEDBYREF = 0x16,
+ ELEMENT_TYPE_U = 0x19,
+ ELEMENT_TYPE_U1 = 5,
+ ELEMENT_TYPE_U2 = 7,
+ ELEMENT_TYPE_U4 = 9,
+ ELEMENT_TYPE_U8 = 11,
+ ELEMENT_TYPE_VALUETYPE = 0x11,
+ ELEMENT_TYPE_VAR = 0x13,
+ ELEMENT_TYPE_VOID = 1
+ }
+
+ #region Top-level interfaces
+ [ComImport, Guid("3D6F5F61-7538-11D3-8D5B-00104B35E7EF"), InterfaceType(1)]
+ public interface ICorDebug
+ {
+ //
+ void Initialize();
+ //
+ void Terminate();
+ //
+ void SetManagedHandler([In, MarshalAs(UnmanagedType.Interface)] ICorDebugManagedCallback pCallback);
+ //
+ void SetUnmanagedHandler([In, MarshalAs(UnmanagedType.Interface)] ICorDebugUnmanagedCallback pCallback);
+ //
+ void CreateProcess([In, MarshalAs(UnmanagedType.LPWStr)] string lpApplicationName, [In, MarshalAs(UnmanagedType.LPWStr)] string lpCommandLine, [In] SECURITY_ATTRIBUTES lpProcessAttributes, [In] SECURITY_ATTRIBUTES lpThreadAttributes, [In] int bInheritHandles, [In] uint dwCreationFlags, [In] IntPtr lpEnvironment, [In, MarshalAs(UnmanagedType.LPWStr)] string lpCurrentDirectory, [In] STARTUPINFO lpStartupInfo, [In] PROCESS_INFORMATION lpProcessInformation, [In] CorDebugCreateProcessFlags debuggingFlags, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugProcess ppProcess);
+ //
+ void DebugActiveProcess([In] uint id, [In] int win32Attach, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugProcess ppProcess);
+ //
+ void EnumerateProcesses([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugProcessEnum ppProcess);
+ //
+ void GetProcess([In] uint dwProcessId, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugProcess ppProcess);
+ //
+ void CanLaunchOrAttach([In] uint dwProcessId, [In] int win32DebuggingEnabled);
+ }
+
+ [ComImport, CoClass(typeof(CorDebugClass)), Guid("3D6F5F61-7538-11D3-8D5B-00104B35E7EF")]
+ public interface CorDebug : ICorDebug
+ {
+ }
+
+
+
+ [ComImport, ClassInterface((short)0), Guid("6fef44d0-39e7-4c77-be8e-c9f8cf988630"), TypeLibType((short)2)]
+ public class CorDebugClass : ICorDebug, CorDebug
+ {
+ // Methods
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
+ public virtual extern void CanLaunchOrAttach([In] uint dwProcessId, [In] int win32DebuggingEnabled);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
+ public virtual extern void CreateProcess([In, MarshalAs(UnmanagedType.LPWStr)] string lpApplicationName, [In, MarshalAs(UnmanagedType.LPWStr)] string lpCommandLine, [In] SECURITY_ATTRIBUTES lpProcessAttributes, [In] SECURITY_ATTRIBUTES lpThreadAttributes, [In] int bInheritHandles, [In] uint dwCreationFlags, [In] IntPtr lpEnvironment, [In, MarshalAs(UnmanagedType.LPWStr)] string lpCurrentDirectory, [In] STARTUPINFO lpStartupInfo, [In] PROCESS_INFORMATION lpProcessInformation, [In] CorDebugCreateProcessFlags debuggingFlags, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugProcess ppProcess);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
+ public virtual extern void DebugActiveProcess([In] uint id, [In] int win32Attach, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugProcess ppProcess);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
+ public virtual extern void EnumerateProcesses([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugProcessEnum ppProcess);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
+ public virtual extern void GetProcess([In] uint dwProcessId, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugProcess ppProcess);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
+ public virtual extern void Initialize();
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
+ public virtual extern void SetManagedHandler([In, MarshalAs(UnmanagedType.Interface)] ICorDebugManagedCallback pCallback);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
+ public virtual extern void SetUnmanagedHandler([In, MarshalAs(UnmanagedType.Interface)] ICorDebugUnmanagedCallback pCallback);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
+ public virtual extern void Terminate();
+ }
+
+ [ComImport, Guid("3D6F5F61-7538-11D3-8D5B-00104B35E7EF"), CoClass(typeof(CorDebugManagerClass))]
+ public interface CorDebugManager : ICorDebug
+ {
+ }
+
+ [ComImport, ClassInterface((short)0), TypeLibType((short)2), Guid("B76B17EF-16FA-43A3-BABF-DB6E59439EB0")]
+ public class CorDebugManagerClass : ICorDebug, CorDebugManager
+ {
+ // Methods
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
+ public virtual extern void CanLaunchOrAttach([In] uint dwProcessId, [In] int win32DebuggingEnabled);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
+ public virtual extern void CreateProcess([In, MarshalAs(UnmanagedType.LPWStr)] string lpApplicationName, [In, MarshalAs(UnmanagedType.LPWStr)] string lpCommandLine, [In] SECURITY_ATTRIBUTES lpProcessAttributes, [In] SECURITY_ATTRIBUTES lpThreadAttributes, [In] int bInheritHandles, [In] uint dwCreationFlags, [In] IntPtr lpEnvironment, [In, MarshalAs(UnmanagedType.LPWStr)] string lpCurrentDirectory, [In, ComAliasName("Microsoft.Debugging.CorDebug.NativeApi.ULONG_PTR")] STARTUPINFO lpStartupInfo, [In, ComAliasName("Microsoft.Debugging.CorDebug.NativeApi.ULONG_PTR")] PROCESS_INFORMATION lpProcessInformation, [In] CorDebugCreateProcessFlags debuggingFlags, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugProcess ppProcess);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
+ public virtual extern void DebugActiveProcess([In] uint id, [In] int win32Attach, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugProcess ppProcess);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
+ public virtual extern void EnumerateProcesses([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugProcessEnum ppProcess);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
+ public virtual extern void GetProcess([In] uint dwProcessId, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugProcess ppProcess);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
+ public virtual extern void Initialize();
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
+ public virtual extern void SetManagedHandler([In, MarshalAs(UnmanagedType.Interface)] ICorDebugManagedCallback pCallback);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
+ public virtual extern void SetUnmanagedHandler([In, MarshalAs(UnmanagedType.Interface)] ICorDebugUnmanagedCallback pCallback);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
+ public virtual extern void Terminate();
+ }
+
+ [ComImport, Guid("3D6F5F61-7538-11D3-8D5B-00104B35E7EF"), CoClass(typeof(EmbeddedCLRCorDebugClass))]
+ public interface EmbeddedCLRCorDebug : ICorDebug
+ {
+ }
+
+ [ComImport, TypeLibType(2), Guid("211F1254-BC7E-4AF5-B9AA-067308D83DD1"), ClassInterface((short)0)]
+ public class EmbeddedCLRCorDebugClass : ICorDebug, EmbeddedCLRCorDebug
+ {
+ // Methods
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
+ public virtual extern void CanLaunchOrAttach([In] uint dwProcessId, [In] int win32DebuggingEnabled);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
+ public virtual extern void CreateProcess([In, MarshalAs(UnmanagedType.LPWStr)] string lpApplicationName, [In, MarshalAs(UnmanagedType.LPWStr)] string lpCommandLine, [In] SECURITY_ATTRIBUTES lpProcessAttributes, [In] SECURITY_ATTRIBUTES lpThreadAttributes, [In] int bInheritHandles, [In] uint dwCreationFlags, [In] IntPtr lpEnvironment, [In, MarshalAs(UnmanagedType.LPWStr)] string lpCurrentDirectory, [In, ComAliasName("Microsoft.Debugging.CorDebug.NativeApi.ULONG_PTR")] STARTUPINFO lpStartupInfo, [In, ComAliasName("Microsoft.Debugging.CorDebug.NativeApi.ULONG_PTR")] PROCESS_INFORMATION lpProcessInformation, [In] CorDebugCreateProcessFlags debuggingFlags, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugProcess ppProcess);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
+ public virtual extern void DebugActiveProcess([In] uint id, [In] int win32Attach, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugProcess ppProcess);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
+ public virtual extern void EnumerateProcesses([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugProcessEnum ppProcess);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
+ public virtual extern void GetProcess([In] uint dwProcessId, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugProcess ppProcess);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
+ public virtual extern void Initialize();
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
+ public virtual extern void SetManagedHandler([In, MarshalAs(UnmanagedType.Interface)] ICorDebugManagedCallback pCallback);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
+ public virtual extern void SetUnmanagedHandler([In, MarshalAs(UnmanagedType.Interface)] ICorDebugUnmanagedCallback pCallback);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
+ public virtual extern void Terminate();
+ }
+ #endregion // Top-level interfaces
+
+ #region AppDomain, Process
+ public enum CorDebugThreadState
+ {
+ THREAD_RUN,
+ THREAD_SUSPEND
+ }
+
+ [ComImport, Guid("3D6F5F62-7538-11D3-8D5B-00104B35E7EF"), InterfaceType(1)]
+ public interface ICorDebugController
+ {
+
+ void Stop([In] uint dwTimeout);
+
+ void Continue([In] int fIsOutOfBand);
+
+ void IsRunning([Out] out int pbRunning);
+
+ void HasQueuedCallbacks([In, MarshalAs(UnmanagedType.Interface)] ICorDebugThread pThread, [Out] out int pbQueued);
+
+ void EnumerateThreads([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugThreadEnum ppThreads);
+
+ void SetAllThreadsDebugState([In] CorDebugThreadState state, [In, MarshalAs(UnmanagedType.Interface)] ICorDebugThread pExceptThisThread);
+
+ void Detach();
+
+ void Terminate([In] uint exitCode);
+
+ void CanCommitChanges([In] uint cSnapshots, [In, MarshalAs(UnmanagedType.Interface)] ref ICorDebugEditAndContinueSnapshot pSnapshots, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugErrorInfoEnum pError);
+
+ void CommitChanges([In] uint cSnapshots, [In, MarshalAs(UnmanagedType.Interface)] ref ICorDebugEditAndContinueSnapshot pSnapshots, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugErrorInfoEnum pError);
+ }
+
+ [ComImport, ComConversionLoss, InterfaceType(1), Guid("3D6F5F64-7538-11D3-8D5B-00104B35E7EF")]
+ public interface ICorDebugProcess : ICorDebugController
+ {
+
+ new void Stop([In] uint dwTimeout);
+
+ new void Continue([In] int fIsOutOfBand);
+
+ new void IsRunning([Out] out int pbRunning);
+
+ new void HasQueuedCallbacks([In, MarshalAs(UnmanagedType.Interface)] ICorDebugThread pThread, [Out] out int pbQueued);
+
+ new void EnumerateThreads([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugThreadEnum ppThreads);
+
+ new void SetAllThreadsDebugState([In] CorDebugThreadState state, [In, MarshalAs(UnmanagedType.Interface)] ICorDebugThread pExceptThisThread);
+
+ new void Detach();
+
+ new void Terminate([In] uint exitCode);
+
+ new void CanCommitChanges([In] uint cSnapshots, [In, MarshalAs(UnmanagedType.Interface)] ref ICorDebugEditAndContinueSnapshot pSnapshots, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugErrorInfoEnum pError);
+
+ new void CommitChanges([In] uint cSnapshots, [In, MarshalAs(UnmanagedType.Interface)] ref ICorDebugEditAndContinueSnapshot pSnapshots, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugErrorInfoEnum pError);
+
+
+
+ void GetID([Out] out uint pdwProcessId);
+
+ void GetHandle([Out, ComAliasName("HPROCESS*")] out IntPtr phProcessHandle);
+
+ void GetThread([In] uint dwThreadId, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugThread ppThread);
+
+ void EnumerateObjects([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugObjectEnum ppObjects);
+
+ void IsTransitionStub([In] ulong address, [Out] out int pbTransitionStub);
+
+ void IsOSSuspended([In] uint threadID, [Out] out int pbSuspended);
+
+ void GetThreadContext([In] uint threadID, [In] uint contextSize, [In, ComAliasName("BYTE*")] IntPtr context);
+
+ void SetThreadContext([In] uint threadID, [In] uint contextSize, [In, ComAliasName("BYTE*")] IntPtr context);
+
+ void ReadMemory([In] ulong address, [In] uint size, [Out, MarshalAs(UnmanagedType.LPArray)] byte[] buffer, [Out, ComAliasName("SIZE_T*")] out IntPtr read);
+
+ void WriteMemory([In] ulong address, [In] uint size, [In, MarshalAs(UnmanagedType.LPArray)] byte[] buffer, [Out, ComAliasName("SIZE_T*")] out IntPtr written);
+
+ void ClearCurrentException([In] uint threadID);
+
+ void EnableLogMessages([In] int fOnOff);
+
+ void ModifyLogSwitch([In, MarshalAs(UnmanagedType.LPWStr)] string pLogSwitchName, [In] int lLevel);
+
+ void EnumerateAppDomains([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugAppDomainEnum ppAppDomains);
+
+ void GetObject([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugValue ppObject);
+
+ void ThreadForFiberCookie([In] uint fiberCookie, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugThread ppThread);
+
+ void GetHelperThreadID([Out] out uint pThreadID);
+ }
+
+ [ComImport, Guid("AD1B3588-0EF0-4744-A496-AA09A9F80371"), InterfaceType(1), ComConversionLoss]
+ public interface ICorDebugProcess2
+ {
+
+ void GetThreadForTaskID([In] ulong taskid, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugThread2 ppThread);
+
+ void GetVersion([Out] out _COR_VERSION version);
+
+ void SetUnmanagedBreakpoint([In] ulong address, [In] uint bufsize, [Out, MarshalAs(UnmanagedType.LPArray)] byte[] buffer, [Out] out uint bufLen);
+
+ void ClearUnmanagedBreakpoint([In] ulong address);
+
+ void SetDesiredNGENCompilerFlags([In] uint pdwFlags);
+
+ void GetDesiredNGENCompilerFlags([Out] out uint pdwFlags);
+
+ void GetReferenceValueFromGCHandle([In] IntPtr handle, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugReferenceValue pOutValue);
+ }
+
+
+ [ComImport, ComConversionLoss, InterfaceType(1), Guid("CC7BCB05-8A68-11D2-983C-0000F808342D")]
+ public interface ICorDebugProcessEnum : ICorDebugEnum
+ {
+
+ new void Skip([In] uint celt);
+
+ new void Reset();
+
+ new void Clone([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugEnum ppEnum);
+
+ new void GetCount([Out] out uint pcelt);
+ [PreserveSig, MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
+ int Next([In] uint celt, [Out, MarshalAs(UnmanagedType.LPArray)] ICorDebugProcess[] processes, [Out] out uint pceltFetched);
+ }
+
+
+
+
+ [ComImport, ComConversionLoss, InterfaceType(1), Guid("3D6F5F63-7538-11D3-8D5B-00104B35E7EF")]
+ public interface ICorDebugAppDomain : ICorDebugController
+ {
+
+ new void Stop([In] uint dwTimeout);
+
+ new void Continue([In] int fIsOutOfBand);
+
+ new void IsRunning([Out] out int pbRunning);
+
+ new void HasQueuedCallbacks([In, MarshalAs(UnmanagedType.Interface)] ICorDebugThread pThread, [Out] out int pbQueued);
+
+ new void EnumerateThreads([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugThreadEnum ppThreads);
+
+ new void SetAllThreadsDebugState([In] CorDebugThreadState state, [In, MarshalAs(UnmanagedType.Interface)] ICorDebugThread pExceptThisThread);
+
+ new void Detach();
+
+ new void Terminate([In] uint exitCode);
+
+ new void CanCommitChanges([In] uint cSnapshots, [In, MarshalAs(UnmanagedType.Interface)] ref ICorDebugEditAndContinueSnapshot pSnapshots, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugErrorInfoEnum pError);
+
+ new void CommitChanges([In] uint cSnapshots, [In, MarshalAs(UnmanagedType.Interface)] ref ICorDebugEditAndContinueSnapshot pSnapshots, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugErrorInfoEnum pError);
+
+
+
+ void GetProcess([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugProcess ppProcess);
+
+ void EnumerateAssemblies([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugAssemblyEnum ppAssemblies);
+
+ void GetModuleFromMetaDataInterface([In, MarshalAs(UnmanagedType.IUnknown)] object pIMetaData, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugModule ppModule);
+
+ void EnumerateBreakpoints([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugBreakpointEnum ppBreakpoints);
+
+ void EnumerateSteppers([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugStepperEnum ppSteppers);
+
+ void IsAttached([Out] out int pbAttached);
+
+ void GetName([In] uint cchName, [Out] out uint pcchName, [Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder szName);
+
+ void GetObject([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugValue ppObject);
+
+ void Attach();
+
+ void GetID([Out] out uint pId);
+ }
+
+ [ComImport, InterfaceType(1), Guid("096E81D5-ECDA-4202-83F5-C65980A9EF75")]
+ public interface ICorDebugAppDomain2
+ {
+
+ void GetArrayOrPointerType([In] CorElementType elementType, [In] uint nRank, [In, MarshalAs(UnmanagedType.Interface)] ICorDebugType pTypeArg, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugType ppType);
+
+ void GetFunctionPointerType([In] uint nTypeArgs, [In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 0)] ICorDebugType[] ppTypeArgs, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugType ppType);
+ }
+
+ [ComImport, InterfaceType(1), Guid("63CA1B24-4359-4883-BD57-13F815F58744"), ComConversionLoss]
+ public interface ICorDebugAppDomainEnum : ICorDebugEnum
+ {
+
+ new void Skip([In] uint celt);
+
+ new void Reset();
+
+ new void Clone([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugEnum ppEnum);
+
+ new void GetCount([Out] out uint pcelt);
+ [PreserveSig, MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
+ int Next([In] uint celt, [Out, MarshalAs(UnmanagedType.LPArray)] ICorDebugAppDomain[] values, [Out] out uint pceltFetched);
+ }
+
+ #endregion // AppDomain, Process
+
+
+ #region Assembly
+
+ [ComImport, ComConversionLoss, Guid("DF59507C-D47A-459E-BCE2-6427EAC8FD06"), InterfaceType(1)]
+ public interface ICorDebugAssembly
+ {
+
+ void GetProcess([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugProcess ppProcess);
+
+ void GetAppDomain([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugAppDomain ppAppDomain);
+
+ void EnumerateModules([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugModuleEnum ppModules);
+
+ void GetCodeBase([In] uint cchName, [Out] out uint pcchName, [MarshalAs(UnmanagedType.LPArray)] char[] szName);
+
+ void GetName([In] uint cchName, [Out] out uint pcchName, [MarshalAs(UnmanagedType.LPArray)] char[] szName);
+ }
+
+ [ComImport, InterfaceType(1), Guid("426D1F9E-6DD4-44C8-AEC7-26CDBAF4E398")]
+ public interface ICorDebugAssembly2
+ {
+
+ void IsFullyTrusted([Out] out int pbFullyTrusted);
+ }
+
+ [ComImport, Guid("4A2A1EC9-85EC-4BFB-9F15-A89FDFE0FE83"), ComConversionLoss, InterfaceType(1)]
+ public interface ICorDebugAssemblyEnum : ICorDebugEnum
+ {
+
+ new void Skip([In] uint celt);
+
+ new void Reset();
+
+ new void Clone([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugEnum ppEnum);
+
+ new void GetCount([Out] out uint pcelt);
+ [PreserveSig, MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
+ int Next([In] uint celt, [Out, MarshalAs(UnmanagedType.LPArray)] ICorDebugAssembly[] values, [Out] out uint pceltFetched);
+ }
+ #endregion Assembly
+
+
+ #region Execution Control
+
+ #region Breakpoints
+ [ComImport, InterfaceType(1), Guid("CC7BCAE8-8A68-11D2-983C-0000F808342D")]
+ public interface ICorDebugBreakpoint
+ {
+
+ void Activate([In] int bActive);
+
+ void IsActive([Out] out int pbActive);
+ }
+
+ [ComImport, Guid("CC7BCB03-8A68-11D2-983C-0000F808342D"), ComConversionLoss, InterfaceType(1)]
+ public interface ICorDebugBreakpointEnum : ICorDebugEnum
+ {
+
+ new void Skip([In] uint celt);
+
+ new void Reset();
+
+ new void Clone([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugEnum ppEnum);
+
+ new void GetCount([Out] out uint pcelt);
+ [PreserveSig, MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
+ int Next([In] uint celt, [Out, MarshalAs(UnmanagedType.LPArray)] ICorDebugBreakpoint[] breakpoints, [Out] out uint pceltFetched);
+ }
+
+ [ComImport, Guid("CC7BCAE9-8A68-11D2-983C-0000F808342D"), InterfaceType(1)]
+ public interface ICorDebugFunctionBreakpoint : ICorDebugBreakpoint
+ {
+
+ new void Activate([In] int bActive);
+
+ new void IsActive([Out] out int pbActive);
+
+
+ void GetFunction([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugFunction ppFunction);
+
+ void GetOffset([Out] out uint pnOffset);
+ }
+
+ #endregion Breakpoints
+
+ #region Stepping
+ [Flags]
+ public enum CorDebugUnmappedStop
+ {
+ // Fields
+ STOP_ALL = 0xffff,
+ STOP_NONE = 0,
+ STOP_PROLOG = 1,
+ STOP_EPILOG = 2,
+ STOP_NO_MAPPING_INFO = 4,
+ STOP_OTHER_UNMAPPED = 8,
+ STOP_UNMANAGED = 0x10
+ }
+
+ public enum CorDebugStepReason
+ {
+ STEP_NORMAL,
+ STEP_RETURN,
+ STEP_CALL,
+ STEP_EXCEPTION_FILTER,
+ STEP_EXCEPTION_HANDLER,
+ STEP_INTERCEPT,
+ STEP_EXIT
+ }
+ [Flags]
+ public enum CorDebugIntercept
+ {
+ // Fields
+ INTERCEPT_NONE = 0,
+ INTERCEPT_ALL = 0xffff,
+ INTERCEPT_CLASS_INIT = 1,
+ INTERCEPT_EXCEPTION_FILTER = 2,
+ INTERCEPT_SECURITY = 4,
+ INTERCEPT_CONTEXT_POLICY = 8,
+ INTERCEPT_INTERCEPTION = 0x10,
+ }
+
+ [StructLayout(LayoutKind.Sequential, Pack = 4)]
+ public struct COR_DEBUG_STEP_RANGE
+ {
+ public uint startOffset;
+ public uint endOffset;
+ }
+
+ [ComImport, Guid("CC7BCAEC-8A68-11D2-983C-0000F808342D"), InterfaceType(1)]
+ public interface ICorDebugStepper
+ {
+
+ void IsActive([Out] out int pbActive);
+
+ void Deactivate();
+
+ void SetInterceptMask([In] CorDebugIntercept mask);
+
+ void SetUnmappedStopMask([In] CorDebugUnmappedStop mask);
+
+ void Step([In] int bStepIn);
+
+ void StepRange([In] int bStepIn, [In, MarshalAs(UnmanagedType.LPArray)] COR_DEBUG_STEP_RANGE[] ranges, [In] uint cRangeCount);
+
+ void StepOut();
+
+ void SetRangeIL([In] int bIL);
+ }
+
+ [ComImport, Guid("C5B6E9C3-E7D1-4A8E-873B-7F047F0706F7"), InterfaceType(1)]
+ public interface ICorDebugStepper2
+ {
+
+ void SetJMC([In] int fIsJMCStepper);
+ }
+
+ [ComImport, ComConversionLoss, Guid("CC7BCB04-8A68-11D2-983C-0000F808342D"), InterfaceType(1)]
+ public interface ICorDebugStepperEnum : ICorDebugEnum
+ {
+
+ new void Skip([In] uint celt);
+
+ new void Reset();
+
+ new void Clone([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugEnum ppEnum);
+
+ new void GetCount([Out] out uint pcelt);
+ [PreserveSig, MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
+ int Next([In] uint celt, [Out, MarshalAs(UnmanagedType.LPArray)] ICorDebugStepper[] steppers, [Out] out uint pceltFetched);
+ }
+
+ #endregion
+
+ #endregion Execution Control
+
+
+ #region Class, Type
+
+ [ComImport, Guid("CC7BCAF5-8A68-11D2-983C-0000F808342D"), InterfaceType(1)]
+ public interface ICorDebugClass
+ {
+
+ void GetModule([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugModule pModule);
+
+ void GetToken([Out] out uint pTypeDef);
+
+ void GetStaticFieldValue([In] uint fieldDef, [In, MarshalAs(UnmanagedType.Interface)] ICorDebugFrame pFrame, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugValue ppValue);
+ }
+
+ [ComImport, Guid("B008EA8D-7AB1-43F7-BB20-FBB5A04038AE"), InterfaceType(1)]
+ public interface ICorDebugClass2
+ {
+
+ void GetParameterizedType([In] CorElementType elementType, [In] uint nTypeArgs, [In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] ICorDebugType[] ppTypeArgs, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugType ppType);
+
+ void SetJMCStatus([In] int bIsJustMyCode);
+ }
+
+ [ComImport, Guid("D613F0BB-ACE1-4C19-BD72-E4C08D5DA7F5"), InterfaceType(1)]
+ public interface ICorDebugType
+ {
+
+ void GetType([Out] out CorElementType ty);
+
+
+ void GetClass([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugClass ppClass);
+
+
+ void EnumerateTypeParameters([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugTypeEnum ppTyParEnum);
+
+ void GetFirstTypeParameter([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugType value);
+
+ void GetBase([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugType pBase);
+
+ void GetStaticFieldValue([In] uint fieldDef, [In, MarshalAs(UnmanagedType.Interface)] ICorDebugFrame pFrame, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugValue ppValue);
+
+ void GetRank([Out] out uint pnRank);
+ }
+
+ [ComImport, Guid("10F27499-9DF2-43CE-8333-A321D7C99CB4"), InterfaceType(1), ComConversionLoss]
+ public interface ICorDebugTypeEnum : ICorDebugEnum
+ {
+
+ new void Skip([In] uint celt);
+
+ new void Reset();
+
+ new void Clone([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugEnum ppEnum);
+
+ new void GetCount([Out] out uint pcelt);
+ [PreserveSig, MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
+ int Next([In] uint celt, [Out, MarshalAs(UnmanagedType.LPArray)] ICorDebugType[] values, [Out] out uint pceltFetched);
+ }
+
+
+ #endregion // Class, Type
+
+
+ #region Code and Function
+ [StructLayout(LayoutKind.Sequential, Pack = 4)]
+ public struct COR_DEBUG_IL_TO_NATIVE_MAP
+ {
+ public uint ilOffset;
+ public uint nativeStartOffset;
+ public uint nativeEndOffset;
+ }
+
+ [ComImport, InterfaceType(1), Guid("CC7BCAF4-8A68-11D2-983C-0000F808342D"), ComConversionLoss]
+ public interface ICorDebugCode
+ {
+
+ void IsIL([Out] out int pbIL);
+
+ void GetFunction([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugFunction ppFunction);
+
+ void GetAddress([Out] out ulong pStart);
+
+ void GetSize([Out] out uint pcBytes);
+
+ void CreateBreakpoint([In] uint offset, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugFunctionBreakpoint ppBreakpoint);
+
+
+ void GetCode([In] uint startOffset, [In] uint endOffset, [In] uint cBufferAlloc, [Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 5)] byte[] buffer, [Out] out uint pcBufferSize);
+
+ void GetVersionNumber([Out] out uint nVersion);
+
+ void GetILToNativeMapping([In] uint cMap, [Out] out uint pcMap, [Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] COR_DEBUG_IL_TO_NATIVE_MAP[] map);
+
+ void GetEnCRemapSequencePoints([In] uint cMap, [Out] out uint pcMap, [Out, MarshalAs(UnmanagedType.LPArray)] uint[] offsets);
+ }
+
+ [StructLayout(LayoutKind.Sequential, Pack = 8)]
+ public struct _CodeChunkInfo
+ {
+ public ulong startAddr;
+ public uint length;
+ }
+
+ [ComImport, ComConversionLoss, Guid("5F696509-452F-4436-A3FE-4D11FE7E2347"), InterfaceType(1)]
+ public interface ICorDebugCode2
+ {
+
+ void GetCodeChunks([In] uint cbufSize, [Out] out uint pcnumChunks, [Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] _CodeChunkInfo[] chunks);
+
+ void GetCompilerFlags([Out] out uint pdwFlags);
+ }
+
+ [ComImport, Guid("55E96461-9645-45E4-A2FF-0367877ABCDE"), InterfaceType(1), ComConversionLoss]
+ public interface ICorDebugCodeEnum : ICorDebugEnum
+ {
+
+ new void Skip([In] uint celt);
+
+ new void Reset();
+
+ new void Clone([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugEnum ppEnum);
+
+ new void GetCount([Out] out uint pcelt);
+ [PreserveSig, MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
+ int Next([In] uint celt, [Out, MarshalAs(UnmanagedType.LPArray)] ICorDebugCode[] values, [Out] out uint pceltFetched);
+ }
+
+ [ComImport, Guid("CC7BCAF3-8A68-11D2-983C-0000F808342D"), InterfaceType(1)]
+ public interface ICorDebugFunction
+ {
+
+ void GetModule([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugModule ppModule);
+
+ void GetClass([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugClass ppClass);
+
+ void GetToken([Out] out uint pMethodDef);
+
+ void GetILCode([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugCode ppCode);
+
+ void GetNativeCode([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugCode ppCode);
+
+ void CreateBreakpoint([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugFunctionBreakpoint ppBreakpoint);
+
+ void GetLocalVarSigToken([Out] out uint pmdSig);
+
+ void GetCurrentVersionNumber([Out] out uint pnCurrentVersion);
+ }
+
+ [ComImport, InterfaceType(1), Guid("EF0C490B-94C3-4E4D-B629-DDC134C532D8")]
+ public interface ICorDebugFunction2
+ {
+
+ void SetJMCStatus([In] int bIsJustMyCode);
+
+ void GetJMCStatus([Out] out int pbIsJustMyCode);
+
+ void EnumerateNativeCode([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugCodeEnum ppCodeEnum);
+
+ void GetVersionNumber([Out] out uint pnVersion);
+ }
+
+
+ #endregion Code and Function
+
+
+ #region Deprecated
+ //
+ // These interfaces are not used
+ //
+
+ [ComImport, InterfaceType(1), Guid("CC7BCB00-8A68-11D2-983C-0000F808342D")]
+ public interface ICorDebugContext : ICorDebugObjectValue
+ {
+
+ new void GetType([Out] out CorElementType pType);
+
+ new void GetSize([Out] out uint pSize);
+
+ new void GetAddress([Out] out ulong pAddress);
+
+ new void CreateBreakpoint([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugValueBreakpoint ppBreakpoint);
+
+
+ new void GetClass([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugClass ppClass);
+
+ new void GetFieldValue([In, MarshalAs(UnmanagedType.Interface)] ICorDebugClass pClass, [In] uint fieldDef, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugValue ppValue);
+
+ new void GetVirtualMethod([In] uint memberRef, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugFunction ppFunction);
+
+ new void GetContext([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugContext ppContext);
+
+ new void IsValueClass([Out] out int pbIsValueClass);
+
+ new void GetManagedCopy([Out, MarshalAs(UnmanagedType.IUnknown)] out object ppObject);
+
+ new void SetFromManagedCopy([In, MarshalAs(UnmanagedType.IUnknown)] object pObject);
+ }
+
+ [ComImport, InterfaceType(1), Guid("6DC3FA01-D7CB-11D2-8A95-0080C792E5D8")]
+ public interface ICorDebugEditAndContinueSnapshot
+ {
+
+ void CopyMetaData([In, MarshalAs(UnmanagedType.Interface)] IStream pIStream, [Out] out Guid pMvid);
+
+ void GetMvid([Out] out Guid pMvid);
+
+ void GetRoDataRVA([Out] out uint pRoDataRVA);
+
+ void GetRwDataRVA([Out] out uint pRwDataRVA);
+
+ void SetPEBytes([In, MarshalAs(UnmanagedType.Interface)] IStream pIStream);
+
+ void SetILMap([In] uint mdFunction, [In] uint cMapSize, [In] ref COR_IL_MAP map);
+
+ void SetPESymbolBytes([In, MarshalAs(UnmanagedType.Interface)] IStream pIStream);
+ }
+
+ [ComImport, ComConversionLoss, InterfaceType(1), Guid("F0E18809-72B5-11D2-976F-00A0C9B4D50C")]
+ public interface ICorDebugErrorInfoEnum : ICorDebugEnum
+ {
+
+ new void Skip([In] uint celt);
+
+ new void Reset();
+
+ new void Clone([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugEnum ppEnum);
+
+ new void GetCount([Out] out uint pcelt);
+ [PreserveSig, MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
+ int Next([In] uint celt, [Out, ComAliasName("ICorDebugEditAndContinueErrorInfo**")] IntPtr errors, [Out] out uint pceltFetched);
+ }
+ #endregion Deprecated
+
+
+
+ [ComImport, InterfaceType(1), Guid("CC7BCB01-8A68-11D2-983C-0000F808342D")]
+ public interface ICorDebugEnum
+ {
+
+ void Skip([In] uint celt);
+
+ void Reset();
+
+ void Clone([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugEnum ppEnum);
+
+ void GetCount([Out] out uint pcelt);
+ }
+
+
+
+ #region Function Evaluation
+ [ComImport, InterfaceType(1), Guid("CC7BCAF6-8A68-11D2-983C-0000F808342D")]
+ public interface ICorDebugEval
+ {
+
+ void CallFunction([In, MarshalAs(UnmanagedType.Interface)] ICorDebugFunction pFunction, [In] uint nArgs, [In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] ICorDebugValue[] ppArgs);
+
+ void NewObject([In, MarshalAs(UnmanagedType.Interface)] ICorDebugFunction pConstructor, [In] uint nArgs, [In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] ICorDebugValue[] ppArgs);
+
+ void NewObjectNoConstructor([In, MarshalAs(UnmanagedType.Interface)] ICorDebugClass pClass);
+
+ void NewString([In, MarshalAs(UnmanagedType.LPWStr)] string @string);
+
+ void NewArray([In] CorElementType elementType, [In, MarshalAs(UnmanagedType.Interface)] ICorDebugClass pElementClass, [In] uint rank, [In] ref uint dims, [In] ref uint lowBounds);
+
+ void IsActive([Out] out int pbActive);
+
+ void Abort();
+
+ void GetResult([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugValue ppResult);
+
+ void GetThread([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugThread ppThread);
+
+ void CreateValue([In] CorElementType elementType, [In, MarshalAs(UnmanagedType.Interface)] ICorDebugClass pElementClass, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugValue ppValue);
+ }
+
+ [ComImport, Guid("FB0D9CE7-BE66-4683-9D32-A42A04E2FD91"), InterfaceType(1)]
+ public interface ICorDebugEval2
+ {
+
+ void CallParameterizedFunction([In, MarshalAs(UnmanagedType.Interface)] ICorDebugFunction pFunction, [In] uint nTypeArgs, [In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] ICorDebugType[] ppTypeArgs, [In] uint nArgs, [In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 3)] ICorDebugValue[] ppArgs);
+
+ void CreateValueForType([In, MarshalAs(UnmanagedType.Interface)] ICorDebugType pType, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugValue ppValue);
+
+ void NewParameterizedObject([In, MarshalAs(UnmanagedType.Interface)] ICorDebugFunction pConstructor, [In] uint nTypeArgs, [In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] ICorDebugType[] ppTypeArgs, [In] uint nArgs, [In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 3)] ICorDebugValue[] ppArgs);
+
+ void NewParameterizedObjectNoConstructor([In, MarshalAs(UnmanagedType.Interface)] ICorDebugClass pClass, [In] uint nTypeArgs, [In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] ICorDebugType[] ppTypeArgs);
+
+ void NewParameterizedArray([In, MarshalAs(UnmanagedType.Interface)] ICorDebugType pElementType, [In] uint rank, [In] ref uint dims, [In] ref uint lowBounds);
+
+ void NewStringWithLength([In, MarshalAs(UnmanagedType.LPWStr)] string @string, [In] uint uiLength);
+
+ void RudeAbort();
+ }
+ #endregion Function Evaluation
+
+
+
+ #region ICorDebugValue
+
+ [ComImport, Guid("CC7BCAF7-8A68-11D2-983C-0000F808342D"), InterfaceType(1)]
+ public interface ICorDebugValue
+ {
+
+ void GetType([Out] out CorElementType pType);
+
+ void GetSize([Out] out uint pSize);
+
+ void GetAddress([Out] out ulong pAddress);
+
+ void CreateBreakpoint([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugValueBreakpoint ppBreakpoint);
+ }
+
+ [ComImport, Guid("5E0B54E7-D88A-4626-9420-A691E0A78B49"), InterfaceType(1)]
+ public interface ICorDebugValue2
+ {
+
+ void GetExactType([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugType ppType);
+ }
+
+ [ComImport, InterfaceType(1), Guid("CC7BCAF8-8A68-11D2-983C-0000F808342D")]
+ public interface ICorDebugGenericValue : ICorDebugValue
+ {
+
+ new void GetType([Out] out CorElementType pType);
+
+ new void GetSize([Out] out uint pSize);
+
+ new void GetAddress([Out] out ulong pAddress);
+
+ new void CreateBreakpoint([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugValueBreakpoint ppBreakpoint);
+
+
+ void GetValue([Out] IntPtr pTo);
+
+ void SetValue([In] IntPtr pFrom);
+ }
+
+ [ComImport, InterfaceType(1), Guid("CC7BCAF9-8A68-11D2-983C-0000F808342D")]
+ public interface ICorDebugReferenceValue : ICorDebugValue
+ {
+
+ new void GetType([Out] out CorElementType pType);
+
+ new void GetSize([Out] out uint pSize);
+
+ new void GetAddress([Out] out ulong pAddress);
+
+ new void CreateBreakpoint([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugValueBreakpoint ppBreakpoint);
+
+
+ void IsNull([Out] out int pbNull);
+
+ void GetValue([Out] out ulong pValue);
+
+ void SetValue([In] ulong value);
+
+ void Dereference([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugValue ppValue);
+
+ void DereferenceStrong([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugValue ppValue);
+ }
+
+
+ public enum CorDebugHandleType
+ {
+ // Fields
+ HANDLE_STRONG = 1,
+ HANDLE_WEAK_TRACK_RESURRECTION = 2
+ }
+
+ [ComImport, Guid("029596E8-276B-46A1-9821-732E96BBB00B"), InterfaceType(1)]
+ public interface ICorDebugHandleValue : ICorDebugReferenceValue
+ {
+
+ new void GetType([Out] out CorElementType pType);
+
+ new void GetSize([Out] out uint pSize);
+
+ new void GetAddress([Out] out ulong pAddress);
+
+ new void CreateBreakpoint([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugValueBreakpoint ppBreakpoint);
+
+
+ new void IsNull([Out] out int pbNull);
+
+ new void GetValue([Out] out ulong pValue);
+
+ new void SetValue([In] ulong value);
+
+ new void Dereference([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugValue ppValue);
+
+ new void DereferenceStrong([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugValue ppValue);
+
+
+ void GetHandleType([Out] out CorDebugHandleType pType);
+
+ void Dispose();
+ }
+
+ [ComImport, Guid("CC7BCAFA-8A68-11D2-983C-0000F808342D"), InterfaceType(1)]
+ public interface ICorDebugHeapValue : ICorDebugValue
+ {
+
+ new void GetType([Out] out CorElementType pType);
+
+ new void GetSize([Out] out uint pSize);
+
+ new void GetAddress([Out] out ulong pAddress);
+
+ new void CreateBreakpoint([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugValueBreakpoint ppBreakpoint);
+
+
+
+ void IsValid([Out] out int pbValid);
+
+ void CreateRelocBreakpoint([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugValueBreakpoint ppBreakpoint);
+
+ }
+
+ [ComImport, InterfaceType(1), Guid("E3AC4D6C-9CB7-43E6-96CC-B21540E5083C")]
+ public interface ICorDebugHeapValue2
+ {
+
+ void CreateHandle([In] CorDebugHandleType type, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugHandleValue ppHandle);
+ }
+
+ [ComImport, InterfaceType(1), Guid("CC7BCAFC-8A68-11D2-983C-0000F808342D")]
+ public interface ICorDebugBoxValue : ICorDebugHeapValue
+ {
+
+ new void GetType([Out] out CorElementType pType);
+
+ new void GetSize([Out] out uint pSize);
+
+ new void GetAddress([Out] out ulong pAddress);
+
+ new void CreateBreakpoint([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugValueBreakpoint ppBreakpoint);
+
+
+ new void IsValid([Out] out int pbValid);
+
+
+ new void CreateRelocBreakpoint([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugValueBreakpoint ppBreakpoint);
+
+
+ void GetObject([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugObjectValue ppObject);
+ }
+
+ [ComImport, ComConversionLoss, Guid("0405B0DF-A660-11D2-BD02-0000F80849BD"), InterfaceType(1)]
+ public interface ICorDebugArrayValue : ICorDebugHeapValue
+ {
+
+ new void GetType([Out] out CorElementType pType);
+
+ new void GetSize([Out] out uint pSize);
+
+ new void GetAddress([Out] out ulong pAddress);
+
+ new void CreateBreakpoint([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugValueBreakpoint ppBreakpoint);
+
+
+ new void IsValid([Out] out int pbValid);
+
+
+ new void CreateRelocBreakpoint([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugValueBreakpoint ppBreakpoint);
+
+
+ void GetElementType([Out] out CorElementType pType);
+
+ void GetRank([Out] out uint pnRank);
+
+ void GetCount([Out] out uint pnCount);
+
+ void GetDimensions([In] uint cdim, [Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 0)] uint[] dims);
+
+ void HasBaseIndicies([Out] out int pbHasBaseIndicies);
+
+ void GetBaseIndicies([In] uint cdim, [Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 0)] uint[] indicies);
+
+ void GetElement([In] uint cdim, [In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 0)] int[] indices, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugValue ppValue);
+
+ void GetElementAtPosition([In] uint nPosition, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugValue ppValue);
+ }
+
+
+
+
+ [ComImport, InterfaceType(1), Guid("CC7BCAEB-8A68-11D2-983C-0000F808342D")]
+ public interface ICorDebugValueBreakpoint : ICorDebugBreakpoint
+ {
+
+ new void Activate([In] int bActive);
+
+ new void IsActive([Out] out int pbActive);
+
+
+ void GetValue([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugValue ppValue);
+ }
+
+ [ComImport, ComConversionLoss, Guid("CC7BCB0A-8A68-11D2-983C-0000F808342D"), InterfaceType(1)]
+ public interface ICorDebugValueEnum : ICorDebugEnum
+ {
+
+ new void Skip([In] uint celt);
+
+ new void Reset();
+
+ new void Clone([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugEnum ppEnum);
+
+ new void GetCount([Out] out uint pcelt);
+ [PreserveSig, MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
+ int Next([In] uint celt, [Out, MarshalAs(UnmanagedType.LPArray)] ICorDebugValue[] values, [Out] out uint pceltFetched);
+ }
+
+
+ [ComImport, Guid("CC7BCAFD-8A68-11D2-983C-0000F808342D"), ComConversionLoss, InterfaceType(1)]
+ public interface ICorDebugStringValue : ICorDebugHeapValue
+ {
+
+ new void GetType([Out] out CorElementType pType);
+
+ new void GetSize([Out] out uint pSize);
+
+ new void GetAddress([Out] out ulong pAddress);
+
+ new void CreateBreakpoint([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugValueBreakpoint ppBreakpoint);
+
+
+ new void IsValid([Out] out int pbValid);
+
+ new void CreateRelocBreakpoint([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugValueBreakpoint ppBreakpoint);
+
+
+ void GetLength([Out] out uint pcchString);
+
+ void GetString([In] uint cchString, [Out] out uint pcchString, [Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder szString);
+ }
+
+
+
+ [ComImport, InterfaceType(1), Guid("18AD3D6E-B7D2-11D2-BD04-0000F80849BD")]
+ public interface ICorDebugObjectValue : ICorDebugValue
+ {
+
+ new void GetType([Out] out CorElementType pType);
+
+ new void GetSize([Out] out uint pSize);
+
+ new void GetAddress([Out] out ulong pAddress);
+
+ new void CreateBreakpoint([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugValueBreakpoint ppBreakpoint);
+
+
+ void GetClass([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugClass ppClass);
+
+ void GetFieldValue([In, MarshalAs(UnmanagedType.Interface)] ICorDebugClass pClass, [In] uint fieldDef, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugValue ppValue);
+
+ void GetVirtualMethod([In] uint memberRef, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugFunction ppFunction);
+
+ void GetContext([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugContext ppContext);
+
+ void IsValueClass([Out] out int pbIsValueClass);
+
+ void GetManagedCopy([Out, MarshalAs(UnmanagedType.IUnknown)] out object ppObject);
+
+ void SetFromManagedCopy([In, MarshalAs(UnmanagedType.IUnknown)] object pObject);
+ }
+
+ [ComImport, Guid("49E4A320-4A9B-4ECA-B105-229FB7D5009F"), InterfaceType(1)]
+ public interface ICorDebugObjectValue2
+ {
+
+ void GetVirtualMethodAndType([In] uint memberRef, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugFunction ppFunction, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugType ppType);
+ }
+
+ [ComImport, ComConversionLoss, Guid("CC7BCB02-8A68-11D2-983C-0000F808342D"), InterfaceType(1)]
+ public interface ICorDebugObjectEnum : ICorDebugEnum
+ {
+
+ new void Skip([In] uint celt);
+
+ new void Reset();
+
+ new void Clone([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugEnum ppEnum);
+
+ new void GetCount([Out] out uint pcelt);
+ [PreserveSig, MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
+ int Next([In] uint celt, [Out, MarshalAs(UnmanagedType.LPArray)] ulong[] objects, [Out] out uint pceltFetched);
+ }
+
+ #endregion // ICorDebugValue
+
+ #region Frames and Chains
+
+ #region Chains
+ public enum CorDebugChainReason
+ {
+ // Fields
+ CHAIN_CLASS_INIT = 1,
+ CHAIN_CONTEXT_POLICY = 8,
+ CHAIN_CONTEXT_SWITCH = 0x400,
+ CHAIN_DEBUGGER_EVAL = 0x200,
+ CHAIN_ENTER_MANAGED = 0x80,
+ CHAIN_ENTER_UNMANAGED = 0x100,
+ CHAIN_EXCEPTION_FILTER = 2,
+ CHAIN_FUNC_EVAL = 0x800,
+ CHAIN_INTERCEPTION = 0x10,
+ CHAIN_NONE = 0,
+ CHAIN_PROCESS_START = 0x20,
+ CHAIN_SECURITY = 4,
+ CHAIN_THREAD_START = 0x40
+ }
+
+ [ComImport, Guid("CC7BCAEE-8A68-11D2-983C-0000F808342D"), InterfaceType(1)]
+ public interface ICorDebugChain
+ {
+
+ void GetThread([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugThread ppThread);
+
+ void GetStackRange([Out] out ulong pStart, [Out] out ulong pEnd);
+
+ void GetContext([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugContext ppContext);
+
+ void GetCaller([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugChain ppChain);
+
+ void GetCallee([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugChain ppChain);
+
+ void GetPrevious([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugChain ppChain);
+
+ void GetNext([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugChain ppChain);
+
+ void IsManaged([Out] out int pManaged);
+
+ void EnumerateFrames([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugFrameEnum ppFrames);
+
+ void GetActiveFrame([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugFrame ppFrame);
+
+ void GetRegisterSet([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugRegisterSet ppRegisters);
+
+ void GetReason([Out] out CorDebugChainReason pReason);
+ }
+
+ [ComImport, InterfaceType(1), ComConversionLoss, Guid("CC7BCB08-8A68-11D2-983C-0000F808342D")]
+ public interface ICorDebugChainEnum : ICorDebugEnum
+ {
+
+ new void Skip([In] uint celt);
+
+ new void Reset();
+
+ new void Clone([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugEnum ppEnum);
+
+ new void GetCount([Out] out uint pcelt);
+ [PreserveSig, MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
+ int Next([In] uint celt, [Out, MarshalAs(UnmanagedType.LPArray)] ICorDebugChain[] chains, [Out] out uint pceltFetched);
+ }
+ #endregion // end Chains
+
+
+
+
+ [ComImport, Guid("CC7BCAEF-8A68-11D2-983C-0000F808342D"), InterfaceType(1)]
+ public interface ICorDebugFrame
+ {
+
+ void GetChain([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugChain ppChain);
+
+ void GetCode([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugCode ppCode);
+
+ void GetFunction([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugFunction ppFunction);
+
+ void GetFunctionToken([Out] out uint pToken);
+
+ void GetStackRange([Out] out ulong pStart, [Out] out ulong pEnd);
+
+ void GetCaller([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugFrame ppFrame);
+
+ void GetCallee([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugFrame ppFrame);
+
+ void CreateStepper([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugStepper ppStepper);
+ }
+
+ [ComImport, ComConversionLoss, Guid("CC7BCB07-8A68-11D2-983C-0000F808342D"), InterfaceType(1)]
+ public interface ICorDebugFrameEnum : ICorDebugEnum
+ {
+
+ new void Skip([In] uint celt);
+
+ new void Reset();
+
+ new void Clone([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugEnum ppEnum);
+
+ new void GetCount([Out] out uint pcelt);
+ [PreserveSig, MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
+ int Next([In] uint celt, [Out, MarshalAs(UnmanagedType.LPArray)] ICorDebugFrame[] frames, [Out] out uint pceltFetched);
+ }
+
+
+ [ComImport, InterfaceType(1), Guid("03E26314-4F76-11D3-88C6-006097945418")]
+ public interface ICorDebugNativeFrame : ICorDebugFrame
+ {
+
+ new void GetChain([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugChain ppChain);
+
+ new void GetCode([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugCode ppCode);
+
+ new void GetFunction([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugFunction ppFunction);
+
+ new void GetFunctionToken([Out] out uint pToken);
+
+ new void GetStackRange([Out] out ulong pStart, [Out] out ulong pEnd);
+
+ new void GetCaller([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugFrame ppFrame);
+
+ new void GetCallee([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugFrame ppFrame);
+
+ new void CreateStepper([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugStepper ppStepper);
+
+
+
+ void GetIP([Out] out uint pnOffset);
+
+ void SetIP([In] uint nOffset);
+
+ void GetRegisterSet([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugRegisterSet ppRegisters);
+
+ void GetLocalRegisterValue([In] CorDebugRegister reg, [In] uint cbSigBlob, [In, ComAliasName("Microsoft.Debugging.CorDebug.NativeApi.ULONG_PTR")] uint pvSigBlob, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugValue ppValue);
+
+ void GetLocalDoubleRegisterValue([In] CorDebugRegister highWordReg, [In] CorDebugRegister lowWordReg, [In] uint cbSigBlob, [In, ComAliasName("Microsoft.Debugging.CorDebug.NativeApi.ULONG_PTR")] uint pvSigBlob, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugValue ppValue);
+
+ void GetLocalMemoryValue([In] ulong address, [In] uint cbSigBlob, [In, ComAliasName("Microsoft.Debugging.CorDebug.NativeApi.ULONG_PTR")] uint pvSigBlob, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugValue ppValue);
+
+ void GetLocalRegisterMemoryValue([In] CorDebugRegister highWordReg, [In] ulong lowWordAddress, [In] uint cbSigBlob, [In, ComAliasName("Microsoft.Debugging.CorDebug.NativeApi.ULONG_PTR")] uint pvSigBlob, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugValue ppValue);
+
+ void GetLocalMemoryRegisterValue([In] ulong highWordAddress, [In] CorDebugRegister lowWordRegister, [In] uint cbSigBlob, [In, ComAliasName("Microsoft.Debugging.CorDebug.NativeApi.ULONG_PTR")] uint pvSigBlob, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugValue ppValue);
+ [PreserveSig, MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
+ int CanSetIP([In] uint nOffset);
+ }
+
+
+ public enum CorDebugMappingResult
+ {
+ // Fields
+ MAPPING_APPROXIMATE = 0x20,
+ MAPPING_EPILOG = 2,
+ MAPPING_EXACT = 0x10,
+ MAPPING_NO_INFO = 4,
+ MAPPING_PROLOG = 1,
+ MAPPING_UNMAPPED_ADDRESS = 8
+ }
+
+
+ [ComImport, InterfaceType(1), Guid("03E26311-4F76-11D3-88C6-006097945418")]
+ public interface ICorDebugILFrame : ICorDebugFrame
+ {
+
+ new void GetChain([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugChain ppChain);
+
+ new void GetCode([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugCode ppCode);
+
+ new void GetFunction([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugFunction ppFunction);
+
+ new void GetFunctionToken([Out] out uint pToken);
+
+ new void GetStackRange([Out] out ulong pStart, [Out] out ulong pEnd);
+
+ new void GetCaller([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugFrame ppFrame);
+
+ new void GetCallee([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugFrame ppFrame);
+
+
+ new void CreateStepper([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugStepper ppStepper);
+
+
+ void GetIP([Out] out uint pnOffset, [Out] out CorDebugMappingResult pMappingResult);
+
+ void SetIP([In] uint nOffset);
+
+ void EnumerateLocalVariables([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugValueEnum ppValueEnum);
+
+ void GetLocalVariable([In] uint dwIndex, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugValue ppValue);
+
+ void EnumerateArguments([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugValueEnum ppValueEnum);
+
+ void GetArgument([In] uint dwIndex, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugValue ppValue);
+
+ void GetStackDepth([Out] out uint pDepth);
+
+ void GetStackValue([In] uint dwIndex, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugValue ppValue);
+ [PreserveSig, MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
+ int CanSetIP([In] uint nOffset);
+ }
+
+ [ComImport, InterfaceType(1), Guid("5D88A994-6C30-479B-890F-BCEF88B129A5")]
+ public interface ICorDebugILFrame2
+ {
+
+ void RemapFunction([In] uint newILOffset);
+
+ void EnumerateTypeParameters([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugTypeEnum ppTyParEnum);
+ }
+
+ public enum CorDebugInternalFrameType
+ {
+ STUBFRAME_NONE,
+ STUBFRAME_M2U,
+ STUBFRAME_U2M,
+ STUBFRAME_APPDOMAIN_TRANSITION,
+ STUBFRAME_LIGHTWEIGHT_FUNCTION,
+ STUBFRAME_FUNC_EVAL,
+ STUBFRAME_INTERNALCALL,
+ }
+
+ [ComImport, InterfaceType(1), Guid("B92CC7F7-9D2D-45C4-BC2B-621FCC9DFBF4")]
+ public interface ICorDebugInternalFrame : ICorDebugFrame
+ {
+
+ new void GetChain([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugChain ppChain);
+
+ new void GetCode([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugCode ppCode);
+
+ new void GetFunction([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugFunction ppFunction);
+
+ new void GetFunctionToken([Out] out uint pToken);
+
+ new void GetStackRange([Out] out ulong pStart, [Out] out ulong pEnd);
+
+ new void GetCaller([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugFrame ppFrame);
+
+ new void GetCallee([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugFrame ppFrame);
+
+ new void CreateStepper([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugStepper ppStepper);
+
+ void GetFrameType([Out] out CorDebugInternalFrameType pType);
+ }
+
+ #endregion // Frames
+
+ #region Callbacks
+
+ // Unmanaged callback is only used for Interop-debugging to dispatch native debug events.
+ [ComImport, Guid("5263E909-8CB5-11D3-BD2F-0000F80849BD"), InterfaceType(1)]
+ public interface ICorDebugUnmanagedCallback
+ {
+ void DebugEvent([In] IntPtr pDebugEvent, [In] int fOutOfBand);
+ }
+
+ [ComImport, Guid("3D6F5F60-7538-11D3-8D5B-00104B35E7EF"), InterfaceType(1)]
+ public interface ICorDebugManagedCallback
+ {
+
+ void Breakpoint([In, MarshalAs(UnmanagedType.Interface)] ICorDebugAppDomain pAppDomain, [In, MarshalAs(UnmanagedType.Interface)] ICorDebugThread pThread, [In, MarshalAs(UnmanagedType.Interface)] ICorDebugBreakpoint pBreakpoint);
+
+
+ void StepComplete([In, MarshalAs(UnmanagedType.Interface)] ICorDebugAppDomain pAppDomain, [In, MarshalAs(UnmanagedType.Interface)] ICorDebugThread pThread, [In, MarshalAs(UnmanagedType.Interface)] ICorDebugStepper pStepper, [In] CorDebugStepReason reason);
+
+
+ void Break([In, MarshalAs(UnmanagedType.Interface)] ICorDebugAppDomain pAppDomain, [In, MarshalAs(UnmanagedType.Interface)] ICorDebugThread thread);
+
+
+ void Exception([In, MarshalAs(UnmanagedType.Interface)] ICorDebugAppDomain pAppDomain, [In, MarshalAs(UnmanagedType.Interface)] ICorDebugThread pThread, [In] int unhandled);
+
+
+ void EvalComplete([In, MarshalAs(UnmanagedType.Interface)] ICorDebugAppDomain pAppDomain, [In, MarshalAs(UnmanagedType.Interface)] ICorDebugThread pThread, [In, MarshalAs(UnmanagedType.Interface)] ICorDebugEval pEval);
+
+
+ void EvalException([In, MarshalAs(UnmanagedType.Interface)] ICorDebugAppDomain pAppDomain, [In, MarshalAs(UnmanagedType.Interface)] ICorDebugThread pThread, [In, MarshalAs(UnmanagedType.Interface)] ICorDebugEval pEval);
+
+
+ void CreateProcess([In, MarshalAs(UnmanagedType.Interface)] ICorDebugProcess pProcess);
+
+
+ void ExitProcess([In, MarshalAs(UnmanagedType.Interface)] ICorDebugProcess pProcess);
+
+
+ void CreateThread([In, MarshalAs(UnmanagedType.Interface)] ICorDebugAppDomain pAppDomain, [In, MarshalAs(UnmanagedType.Interface)] ICorDebugThread thread);
+
+
+ void ExitThread([In, MarshalAs(UnmanagedType.Interface)] ICorDebugAppDomain pAppDomain, [In, MarshalAs(UnmanagedType.Interface)] ICorDebugThread thread);
+
+
+ void LoadModule([In, MarshalAs(UnmanagedType.Interface)] ICorDebugAppDomain pAppDomain, [In, MarshalAs(UnmanagedType.Interface)] ICorDebugModule pModule);
+
+
+ void UnloadModule([In, MarshalAs(UnmanagedType.Interface)] ICorDebugAppDomain pAppDomain, [In, MarshalAs(UnmanagedType.Interface)] ICorDebugModule pModule);
+
+
+ void LoadClass([In, MarshalAs(UnmanagedType.Interface)] ICorDebugAppDomain pAppDomain, [In, MarshalAs(UnmanagedType.Interface)] ICorDebugClass c);
+
+
+ void UnloadClass([In, MarshalAs(UnmanagedType.Interface)] ICorDebugAppDomain pAppDomain, [In, MarshalAs(UnmanagedType.Interface)] ICorDebugClass c);
+
+
+ void DebuggerError([In, MarshalAs(UnmanagedType.Interface)] ICorDebugProcess pProcess, [In, MarshalAs(UnmanagedType.Error)] int errorHR, [In] uint errorCode);
+
+
+ void LogMessage([In, MarshalAs(UnmanagedType.Interface)] ICorDebugAppDomain pAppDomain, [In, MarshalAs(UnmanagedType.Interface)] ICorDebugThread pThread, [In] int lLevel, [In, MarshalAs(UnmanagedType.LPWStr)] string pLogSwitchName, [In, MarshalAs(UnmanagedType.LPWStr)] string pMessage);
+
+
+ void LogSwitch([In, MarshalAs(UnmanagedType.Interface)] ICorDebugAppDomain pAppDomain, [In, MarshalAs(UnmanagedType.Interface)] ICorDebugThread pThread, [In] int lLevel, [In] uint ulReason, [In, MarshalAs(UnmanagedType.LPWStr)] string pLogSwitchName, [In, MarshalAs(UnmanagedType.LPWStr)] string pParentName);
+
+
+ void CreateAppDomain([In, MarshalAs(UnmanagedType.Interface)] ICorDebugProcess pProcess, [In, MarshalAs(UnmanagedType.Interface)] ICorDebugAppDomain pAppDomain);
+
+
+ void ExitAppDomain([In, MarshalAs(UnmanagedType.Interface)] ICorDebugProcess pProcess, [In, MarshalAs(UnmanagedType.Interface)] ICorDebugAppDomain pAppDomain);
+
+
+ void LoadAssembly([In, MarshalAs(UnmanagedType.Interface)] ICorDebugAppDomain pAppDomain, [In, MarshalAs(UnmanagedType.Interface)] ICorDebugAssembly pAssembly);
+
+
+ void UnloadAssembly([In, MarshalAs(UnmanagedType.Interface)] ICorDebugAppDomain pAppDomain, [In, MarshalAs(UnmanagedType.Interface)] ICorDebugAssembly pAssembly);
+
+
+ void ControlCTrap([In, MarshalAs(UnmanagedType.Interface)] ICorDebugProcess pProcess);
+
+
+ void NameChange([In, MarshalAs(UnmanagedType.Interface)] ICorDebugAppDomain pAppDomain, [In, MarshalAs(UnmanagedType.Interface)] ICorDebugThread pThread);
+
+
+ void UpdateModuleSymbols([In, MarshalAs(UnmanagedType.Interface)] ICorDebugAppDomain pAppDomain, [In, MarshalAs(UnmanagedType.Interface)] ICorDebugModule pModule, [In, MarshalAs(UnmanagedType.Interface)] IStream pSymbolStream);
+
+
+ void EditAndContinueRemap([In, MarshalAs(UnmanagedType.Interface)] ICorDebugAppDomain pAppDomain, [In, MarshalAs(UnmanagedType.Interface)] ICorDebugThread pThread, [In, MarshalAs(UnmanagedType.Interface)] ICorDebugFunction pFunction, [In] int fAccurate);
+
+
+ void BreakpointSetError([In, MarshalAs(UnmanagedType.Interface)] ICorDebugAppDomain pAppDomain, [In, MarshalAs(UnmanagedType.Interface)] ICorDebugThread pThread, [In, MarshalAs(UnmanagedType.Interface)] ICorDebugBreakpoint pBreakpoint, [In] uint dwError);
+ }
+
+ [ComImport, Guid("250E5EEA-DB5C-4C76-B6F3-8C46F12E3203"), InterfaceType(1)]
+ public interface ICorDebugManagedCallback2
+ {
+
+ void FunctionRemapOpportunity([In, MarshalAs(UnmanagedType.Interface)] ICorDebugAppDomain pAppDomain, [In, MarshalAs(UnmanagedType.Interface)] ICorDebugThread pThread, [In, MarshalAs(UnmanagedType.Interface)] ICorDebugFunction pOldFunction, [In, MarshalAs(UnmanagedType.Interface)] ICorDebugFunction pNewFunction, [In] uint oldILOffset);
+
+
+ void CreateConnection([In, MarshalAs(UnmanagedType.Interface)] ICorDebugProcess pProcess, [In] uint dwConnectionId, [In] ref ushort pConnName);
+
+
+ void ChangeConnection([In, MarshalAs(UnmanagedType.Interface)] ICorDebugProcess pProcess, [In] uint dwConnectionId);
+
+
+ void DestroyConnection([In, MarshalAs(UnmanagedType.Interface)] ICorDebugProcess pProcess, [In] uint dwConnectionId);
+
+
+ void Exception([In, MarshalAs(UnmanagedType.Interface)] ICorDebugAppDomain pAppDomain, [In, MarshalAs(UnmanagedType.Interface)] ICorDebugThread pThread, [In, MarshalAs(UnmanagedType.Interface)] ICorDebugFrame pFrame, [In] uint nOffset, [In] CorDebugExceptionCallbackType dwEventType, [In] uint dwFlags);
+
+
+ void ExceptionUnwind([In, MarshalAs(UnmanagedType.Interface)] ICorDebugAppDomain pAppDomain, [In, MarshalAs(UnmanagedType.Interface)] ICorDebugThread pThread, [In] CorDebugExceptionUnwindCallbackType dwEventType, [In] uint dwFlags);
+
+
+ void FunctionRemapComplete([In, MarshalAs(UnmanagedType.Interface)] ICorDebugAppDomain pAppDomain, [In, MarshalAs(UnmanagedType.Interface)] ICorDebugThread pThread, [In, MarshalAs(UnmanagedType.Interface)] ICorDebugFunction pFunction);
+
+
+ void MDANotification([In, MarshalAs(UnmanagedType.Interface)] ICorDebugController pController, [In, MarshalAs(UnmanagedType.Interface)] ICorDebugThread pThread, [In, MarshalAs(UnmanagedType.Interface)] ICorDebugMDA pMDA);
+ }
+#endregion // Callbacks
+
+ #region Module
+ [ComImport, ComConversionLoss, InterfaceType(1), Guid("DBA2D8C1-E5C5-4069-8C13-10A7C6ABF43D")]
+ public interface ICorDebugModule
+ {
+
+ void GetProcess([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugProcess ppProcess);
+
+ void GetBaseAddress([Out] out ulong pAddress);
+
+ void GetAssembly([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugAssembly ppAssembly);
+
+ void GetName([In] uint cchName, [Out] out uint pcchName, [MarshalAs(UnmanagedType.LPArray)] char[] szName);
+
+ void EnableJITDebugging([In] int bTrackJITInfo, [In] int bAllowJitOpts);
+
+ void EnableClassLoadCallbacks([In] int bClassLoadCallbacks);
+
+ void GetFunctionFromToken([In] uint methodDef, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugFunction ppFunction);
+
+ void GetFunctionFromRVA([In] ulong rva, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugFunction ppFunction);
+
+ void GetClassFromToken([In] uint typeDef, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugClass ppClass);
+
+ void CreateBreakpoint([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugModuleBreakpoint ppBreakpoint);
+
+ void GetEditAndContinueSnapshot([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugEditAndContinueSnapshot ppEditAndContinueSnapshot);
+
+
+
+ void GetMetaDataInterface([In, ComAliasName("REFIID")] ref Guid riid, [Out, MarshalAs(UnmanagedType.Interface)] out IMetadataImport ppObj);
+
+
+ void GetToken([Out] out uint pToken);
+
+ void IsDynamic([Out] out int pDynamic);
+
+ void GetGlobalVariableValue([In] uint fieldDef, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugValue ppValue);
+
+ void GetSize([Out] out uint pcBytes);
+
+ void IsInMemory([Out] out int pInMemory);
+ }
+
+ [ComImport, InterfaceType(1), Guid("7FCC5FB5-49C0-41DE-9938-3B88B5B9ADD7")]
+ public interface ICorDebugModule2
+ {
+
+ void SetJMCStatus([In] int bIsJustMyCode, [In] uint cTokens, [In] ref uint pTokens);
+
+ void ApplyChanges([In] uint cbMetadata, [In, MarshalAs(UnmanagedType.LPArray)] byte[] pbMetadata, [In] uint cbIL, [In, MarshalAs(UnmanagedType.LPArray)] byte[] pbIL);
+ [PreserveSig, MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
+ int SetJITCompilerFlags([In] uint dwFlags);
+
+ void GetJITCompilerFlags([Out] out uint pdwFlags);
+
+ void ResolveAssembly([In] uint tkAssemblyRef, [Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugAssembly ppAssembly);
+ }
+
+ [ComImport, Guid("CC7BCAEA-8A68-11D2-983C-0000F808342D"), InterfaceType(1)]
+ public interface ICorDebugModuleBreakpoint : ICorDebugBreakpoint
+ {
+
+ new void Activate([In] int bActive);
+
+ new void IsActive([Out] out int pbActive);
+
+
+ void GetModule([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugModule ppModule);
+ }
+
+ [ComImport, InterfaceType(1), ComConversionLoss, Guid("CC7BCB09-8A68-11D2-983C-0000F808342D")]
+ public interface ICorDebugModuleEnum : ICorDebugEnum
+ {
+
+ new void Skip([In] uint celt);
+
+ new void Reset();
+
+ new void Clone([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugEnum ppEnum);
+
+ new void GetCount([Out] out uint pcelt);
+ [PreserveSig, MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
+ int Next([In] uint celt, [Out, MarshalAs(UnmanagedType.LPArray)] ICorDebugModule[] modules, [Out] out uint pceltFetched);
+ }
+
+
+ #endregion Module
+
+
+
+
+ #region MDA
+ [CLSCompliant(true)]
+ [Flags]
+ public enum CorDebugMDAFlags
+ {
+ // Fields
+ None = 0,
+ MDA_FLAG_SLIP = 2
+ }
+
+ [ComImport, Guid("CC726F2F-1DB7-459B-B0EC-05F01D841B42"), InterfaceType(1)]
+ public interface ICorDebugMDA
+ {
+
+ void GetName([In] uint cchName, [Out] out uint pcchName, [MarshalAs(UnmanagedType.LPArray)] char[] szName);
+
+
+ void GetDescription([In] uint cchName, [Out] out uint pcchName, [MarshalAs(UnmanagedType.LPArray)] char[] szName);
+
+
+ void GetXML([In] uint cchName, [Out] out uint pcchName, [MarshalAs(UnmanagedType.LPArray)] char[] szName);
+
+
+ void GetFlags([Out] out CorDebugMDAFlags pFlags);
+
+
+ void GetOSThreadId([Out] out uint pOsTid);
+ }
+ #endregion // MDA
+
+ [ComImport, Guid("CC7BCB0B-8A68-11D2-983C-0000F808342D"), ComConversionLoss, InterfaceType(1)]
+ public interface ICorDebugRegisterSet
+ {
+
+ void GetRegistersAvailable([Out] out ulong pAvailable);
+
+
+ void GetRegisters([In] ulong mask, [In] uint regCount, [Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)] ulong[] regBuffer);
+
+
+ void SetRegisters([In] ulong mask, [In] uint regCount, [In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)] ulong[] regBuffer);
+
+
+ void GetThreadContext([In] uint contextSize, [In, ComAliasName("BYTE*")] IntPtr context);
+
+
+ void SetThreadContext([In] uint contextSize, [In, ComAliasName("BYTE*")] IntPtr context);
+ }
+
+ #region Threads
+ [ComImport, Guid("938C6D66-7FB6-4F69-B389-425B8987329B"), InterfaceType(1)]
+ public interface ICorDebugThread
+ {
+
+ void GetProcess([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugProcess ppProcess);
+
+ void GetID([Out] out uint pdwThreadId);
+
+ void GetHandle([Out] out IntPtr phThreadHandle);
+
+ void GetAppDomain([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugAppDomain ppAppDomain);
+
+ void SetDebugState([In] CorDebugThreadState state);
+
+ void GetDebugState([Out] out CorDebugThreadState pState);
+
+ void GetUserState([Out] out CorDebugUserState pState);
+
+ void GetCurrentException([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugValue ppExceptionObject);
+
+ void ClearCurrentException();
+
+ void CreateStepper([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugStepper ppStepper);
+
+ void EnumerateChains([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugChainEnum ppChains);
+
+ void GetActiveChain([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugChain ppChain);
+
+ void GetActiveFrame([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugFrame ppFrame);
+
+ void GetRegisterSet([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugRegisterSet ppRegisters);
+
+ void CreateEval([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugEval ppEval);
+
+ void GetObject([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugValue ppObject);
+ }
+
+ [StructLayout(LayoutKind.Sequential, Pack = 4)]
+ public struct COR_ACTIVE_FUNCTION
+ {
+ public ICorDebugAppDomain pAppDomain;
+ public ICorDebugModule pModule;
+ public ICorDebugFunction2 pFunction;
+ public uint ilOffset;
+ public uint Flags;
+ }
+
+
+ [ComImport, Guid("2BD956D9-7B07-4BEF-8A98-12AA862417C5"), ComConversionLoss, InterfaceType(1)]
+ public interface ICorDebugThread2
+ {
+
+ void GetActiveFunctions([In] uint cFunctions, [Out] out uint pcFunctions, [Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] COR_ACTIVE_FUNCTION[] pFunctions);
+
+ void GetConnectionID([Out] out uint pdwConnectionId);
+
+ void GetTaskID([Out] out ulong pTaskId);
+
+ void GetVolatileOSThreadID([Out] out uint pdwTid);
+
+ void InterceptCurrentException([In, MarshalAs(UnmanagedType.Interface)] ICorDebugFrame pFrame);
+ }
+
+
+ [ComImport, InterfaceType(1), ComConversionLoss, Guid("CC7BCB06-8A68-11D2-983C-0000F808342D")]
+ public interface ICorDebugThreadEnum : ICorDebugEnum
+ {
+
+ new void Skip([In] uint celt);
+
+ new void Reset();
+
+ new void Clone([Out, MarshalAs(UnmanagedType.Interface)] out ICorDebugEnum ppEnum);
+
+ new void GetCount([Out] out uint pcelt);
+ [PreserveSig, MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
+ int Next([In] uint celt, [Out, MarshalAs(UnmanagedType.LPArray)] ICorDebugThread[] threads, [Out] out uint pceltFetched);
+ }
+
+ #endregion Threads
+
+}
+
+
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi/ICorPublishWrappers.cs b/extras/MonoDevelop.Debugger.Win32/CorApi/ICorPublishWrappers.cs
new file mode 100644
index 0000000000..e61539b591
--- /dev/null
+++ b/extras/MonoDevelop.Debugger.Win32/CorApi/ICorPublishWrappers.cs
@@ -0,0 +1,123 @@
+//---------------------------------------------------------------------
+// This file is part of the CLR Managed Debugger (mdbg) Sample.
+//
+// Copyright (C) Microsoft Corporation. All rights reserved.
+//
+// Imports ICorPublish interface from CorPublish.idl into managed code
+//---------------------------------------------------------------------
+
+using System;
+using System.Text;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+using IStream=System.Runtime.InteropServices.ComTypes.IStream;
+using Microsoft.Win32.SafeHandles;
+
+namespace Microsoft.Samples.Debugging.CorPublish.NativeApi
+{
+ public enum __MIDL___MIDL_itf_corpub_0000_0001
+ {
+ // Fields
+ COR_PUB_MANAGEDONLY = 1
+ }
+
+ public enum COR_PUB_ENUMPROCESS
+ {
+ // Fields
+ COR_PUB_MANAGEDONLY = 1
+ }
+
+ [ComImport, Guid("9613A0E7-5A68-11D3-8F84-00A0C9B4D50C"), CoClass(typeof(CorpubPublishClass))]
+ public interface CorpubPublish : ICorPublish
+ {
+ }
+
+ [ComImport, TypeLibType(2), Guid("047a9a40-657e-11d3-8d5b-00104b35e7ef"), ClassInterface(ClassInterfaceType.None)]
+ public class CorpubPublishClass : ICorPublish, CorpubPublish
+ {
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
+ public virtual extern void EnumProcesses(
+ [In, ComAliasName("CorpubProcessLib.COR_PUB_ENUMPROCESS")] COR_PUB_ENUMPROCESS Type,
+ [Out, MarshalAs(UnmanagedType.Interface)] out ICorPublishProcessEnum ppIEnum);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
+ public virtual extern void GetProcess([In] uint pid, [Out, MarshalAs(UnmanagedType.Interface)] out ICorPublishProcess ppProcess);
+ }
+
+ [ComImport, Guid("9613A0E7-5A68-11D3-8F84-00A0C9B4D50C"), InterfaceType(1)]
+ public interface ICorPublish
+ {
+
+ void EnumProcesses([In, ComAliasName("CorpubProcessLib.COR_PUB_ENUMPROCESS")] COR_PUB_ENUMPROCESS Type, [Out, MarshalAs(UnmanagedType.Interface)] out ICorPublishProcessEnum ppIEnum);
+
+ void GetProcess([In] uint pid, [Out, MarshalAs(UnmanagedType.Interface)] out ICorPublishProcess ppProcess);
+ }
+
+ [ComImport, Guid("D6315C8F-5A6A-11D3-8F84-00A0C9B4D50C"), InterfaceType(1)]
+ public interface ICorPublishAppDomain
+ {
+
+ void GetID([Out] out uint puId);
+
+ void GetName([In] uint cchName, [Out] out uint pcchName, [Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder szName);
+ }
+
+ [ComImport, InterfaceType(1), Guid("9F0C98F5-5A6A-11D3-8F84-00A0C9B4D50C")]
+ public interface ICorPublishAppDomainEnum : ICorPublishEnum
+ {
+
+ new void Skip([In] uint celt);
+
+ new void Reset();
+
+ new void Clone([Out, MarshalAs(UnmanagedType.Interface)] out ICorPublishEnum ppEnum);
+
+ new void GetCount([Out] out uint pcelt);
+ [PreserveSig, MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ int Next([In] uint celt, [Out, MarshalAs(UnmanagedType.Interface)] out ICorPublishAppDomain objects, [Out] out uint pceltFetched);
+ }
+
+ [ComImport, InterfaceType(1), Guid("C0B22967-5A69-11D3-8F84-00A0C9B4D50C")]
+ public interface ICorPublishEnum
+ {
+
+ void Skip([In] uint celt);
+
+ void Reset();
+
+ void Clone([Out, MarshalAs(UnmanagedType.Interface)] out ICorPublishEnum ppEnum);
+
+ void GetCount([Out] out uint pcelt);
+ }
+
+ [ComImport, InterfaceType(1), Guid("18D87AF1-5A6A-11D3-8F84-00A0C9B4D50C")]
+ public interface ICorPublishProcess
+ {
+
+ void IsManaged([Out] out int pbManaged);
+
+ void EnumAppDomains([Out, MarshalAs(UnmanagedType.Interface)] out ICorPublishAppDomainEnum ppEnum);
+
+ void GetProcessID([Out] out uint pid);
+
+ void GetDisplayName([In] uint cchName, [Out] out uint pcchName, [Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder szName);
+ }
+
+ [ComImport, InterfaceType(1), Guid("A37FBD41-5A69-11D3-8F84-00A0C9B4D50C")]
+ public interface ICorPublishProcessEnum : ICorPublishEnum
+ {
+
+ new void Skip([In] uint celt);
+
+ new void Reset();
+
+ new void Clone([Out, MarshalAs(UnmanagedType.Interface)] out ICorPublishEnum ppEnum);
+
+ new void GetCount([Out] out uint pcelt);
+ [PreserveSig, MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ int Next([In] uint celt, [Out, MarshalAs(UnmanagedType.Interface)] out ICorPublishProcess objects, [Out] out uint pceltFetched);
+ }
+}
+
+
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi/IMetadataImport.cs b/extras/MonoDevelop.Debugger.Win32/CorApi/IMetadataImport.cs
index 879fc4a8b1..2e41ce78c9 100644
--- a/extras/MonoDevelop.Debugger.Win32/CorApi/IMetadataImport.cs
+++ b/extras/MonoDevelop.Debugger.Win32/CorApi/IMetadataImport.cs
@@ -15,532 +15,511 @@ using System.Diagnostics;
namespace Microsoft.Samples.Debugging.CorMetadata.NativeApi
{
- // GUID Copied from Cor.h
- [Guid ("7DAC8207-D3AE-4c75-9B67-92801A497D44"),
- InterfaceType (ComInterfaceType.InterfaceIsIUnknown)
- ] // IID_IMetadataImport from cor.h
-
- // This should be a private interface, but
- // we cannot do that becuase we are then getting an exception
- // "The specified type must be visible from COM." @ CorMetadataImport::GetRawInterface
- public interface IMetadataImport
- {
- //STDMETHOD_(void, CloseEnum)(HCORENUM hEnum) PURE;
- [PreserveSig]
- void CloseEnum (IntPtr hEnum);
-
- //STDMETHOD(CountEnum)(HCORENUM hEnum, ULONG *pulCount) PURE;
- void CountEnum (IntPtr hEnum, [ComAliasName ("ULONG*")] out int pulCount);
-
- //STDMETHOD(ResetEnum)(HCORENUM hEnum, ULONG ulPos) PURE;
- void ResetEnum (IntPtr hEnum, int ulPos);
-
- //STDMETHOD(EnumTypeDefs)(HCORENUM *phEnum, mdTypeDef rTypeDefs[],ULONG cMax, ULONG *pcTypeDefs) PURE;
- //void EnumTypeDefs(out IntPtr phEnum,int[] rTypeDefs,uint cMax, out uint pcTypeDefs);
- void EnumTypeDefs (
- ref IntPtr phEnum,
- [ComAliasName ("mdTypeDef*")] out int rTypeDefs,
- uint cMax /*must be 1*/,
- [ComAliasName ("ULONG*")] out uint pcTypeDefs);
-
+ // GUID Copied from Cor.h
+ [Guid("7DAC8207-D3AE-4c75-9B67-92801A497D44"),
+ InterfaceType(ComInterfaceType.InterfaceIsIUnknown)
+ ] // IID_IMetadataImport from cor.h
+
+ // This should be a private interface, but
+ // we cannot do that becuase we are then getting an exception
+ // "The specified type must be visible from COM." @ CorMetadataImport::GetRawInterface
+ [CLSCompliant(false)]
+ public interface IMetadataImport
+ {
+ //STDMETHOD_(void, CloseEnum)(HCORENUM hEnum) PURE;
+ [PreserveSig] void CloseEnum(IntPtr hEnum);
+
+ //STDMETHOD(CountEnum)(HCORENUM hEnum, ULONG *pulCount) PURE;
+ void CountEnum(IntPtr hEnum, [ComAliasName("ULONG*")] out int pulCount);
+
+ //STDMETHOD(ResetEnum)(HCORENUM hEnum, ULONG ulPos) PURE;
+ void ResetEnum(IntPtr hEnum, int ulPos);
+
+ //STDMETHOD(EnumTypeDefs)(HCORENUM *phEnum, mdTypeDef rTypeDefs[],ULONG cMax, ULONG *pcTypeDefs) PURE;
+ //void EnumTypeDefs(out IntPtr phEnum,int[] rTypeDefs,uint cMax, out uint pcTypeDefs);
+ void EnumTypeDefs(
+ ref IntPtr phEnum,
+ [ComAliasName("mdTypeDef*")] out int rTypeDefs,
+ uint cMax /*must be 1*/,
+ [ComAliasName("ULONG*")] out uint pcTypeDefs);
#if !MDBG_FAKE_COM
- //STDMETHOD(EnumInterfaceImpls)(HCORENUM *phEnum, mdTypeDef td, mdInterfaceImpl rImpls[], ULONG cMax, ULONG* pcImpls) PURE;
- void EnumInterfaceImpls_ (IntPtr phEnum, int td);
-
- //STDMETHOD(EnumTypeRefs)(HCORENUM *phEnum, mdTypeRef rTypeRefs[], ULONG cMax, ULONG* pcTypeRefs) PURE;
- void EnumTypeRefs_ ( );
+ //STDMETHOD(EnumInterfaceImpls)(HCORENUM *phEnum, mdTypeDef td, mdInterfaceImpl rImpls[], ULONG cMax, ULONG* pcImpls) PURE;
+ void EnumInterfaceImpls_(IntPtr phEnum, int td);
+
+ //STDMETHOD(EnumTypeRefs)(HCORENUM *phEnum, mdTypeRef rTypeRefs[], ULONG cMax, ULONG* pcTypeRefs) PURE;
+ void EnumTypeRefs_();
#endif
-
- // STDMETHOD(FindTypeDefByName)( // S_OK or error.
- // LPCWSTR szTypeDef, // [IN] Name of the Type.
- // mdToken tkEnclosingClass, // [IN] TypeDef/TypeRef for Enclosing class.
- // mdTypeDef *ptd) PURE; // [OUT] Put the TypeDef token here.
- void FindTypeDefByName (
- [In, MarshalAs (UnmanagedType.LPWStr)] string szTypeDef,
- [In] int tkEnclosingClass,
- [ComAliasName ("mdTypeDef*")] [Out] out int token
- );
-
- // STDMETHOD(GetScopeProps)( // S_OK or error.
- // LPWSTR szName, // [OUT] Put the name here.
- // ULONG cchName, // [IN] Size of name buffer in wide chars.
- // ULONG *pchName, // [OUT] Put size of name (wide chars) here.
- // GUID *pmvid) PURE; // [OUT, OPTIONAL] Put MVID here.
- void GetScopeProps (
- [Out, MarshalAs (UnmanagedType.LPWStr)] StringBuilder szName,
- [In] int cchName,
- [ComAliasName ("ULONG*")] out int pchName,
- out Guid mvid
+ // STDMETHOD(FindTypeDefByName)( // S_OK or error.
+ // LPCWSTR szTypeDef, // [IN] Name of the Type.
+ // mdToken tkEnclosingClass, // [IN] TypeDef/TypeRef for Enclosing class.
+ // mdTypeDef *ptd) PURE; // [OUT] Put the TypeDef token here.
+ void FindTypeDefByName(
+ [In, MarshalAs(UnmanagedType.LPWStr)] string szTypeDef,
+ [In] int tkEnclosingClass,
+ [ComAliasName("mdTypeDef*")] [Out] out int token
+ );
+
+ // STDMETHOD(GetScopeProps)( // S_OK or error.
+ // LPWSTR szName, // [OUT] Put the name here.
+ // ULONG cchName, // [IN] Size of name buffer in wide chars.
+ // ULONG *pchName, // [OUT] Put size of name (wide chars) here.
+ // GUID *pmvid) PURE; // [OUT, OPTIONAL] Put MVID here.
+ void GetScopeProps(
+ [Out,MarshalAs(UnmanagedType.LPWStr)] StringBuilder szName,
+ [In] int cchName,
+ [ComAliasName("ULONG*")] out int pchName,
+ out Guid mvid
);
-
#if !MDBG_FAKE_COM
- // STDMETHOD(GetModuleFromScope)( // S_OK.
- // mdModule *pmd) PURE; // [OUT] Put mdModule token here.
- void GetModuleFromScope_ ( );
+ // STDMETHOD(GetModuleFromScope)( // S_OK.
+ // mdModule *pmd) PURE; // [OUT] Put mdModule token here.
+ void GetModuleFromScope_();
#endif
-
- // STDMETHOD(GetTypeDefProps)( // S_OK or error.
- // mdTypeDef td, // [IN] TypeDef token for inquiry.
- // LPWSTR szTypeDef, // [OUT] Put name here.
- // ULONG cchTypeDef, // [IN] size of name buffer in wide chars.
- // ULONG *pchTypeDef, // [OUT] put size of name (wide chars) here.
- // DWORD *pdwTypeDefFlags, // [OUT] Put flags here.
- // mdToken *ptkExtends) PURE; // [OUT] Put base class TypeDef/TypeRef here.
- void GetTypeDefProps ([In] int td,
- [Out, MarshalAs (UnmanagedType.LPWStr)] StringBuilder szTypeDef,
- [In] int cchTypeDef,
- [ComAliasName ("ULONG*")] [Out] out int pchTypeDef,
- [Out, MarshalAs (UnmanagedType.U4)] out System.Reflection.TypeAttributes pdwTypeDefFlags,
- [ComAliasName ("mdToken*")] [Out] out int ptkExtends
- );
-
+ // STDMETHOD(GetTypeDefProps)( // S_OK or error.
+ // mdTypeDef td, // [IN] TypeDef token for inquiry.
+ // LPWSTR szTypeDef, // [OUT] Put name here.
+ // ULONG cchTypeDef, // [IN] size of name buffer in wide chars.
+ // ULONG *pchTypeDef, // [OUT] put size of name (wide chars) here.
+ // DWORD *pdwTypeDefFlags, // [OUT] Put flags here.
+ // mdToken *ptkExtends) PURE; // [OUT] Put base class TypeDef/TypeRef here.
+ void GetTypeDefProps([In] int td,
+ [Out, MarshalAs( UnmanagedType.LPWStr)] StringBuilder szTypeDef,
+ [In] int cchTypeDef,
+ [ComAliasName("ULONG*")] [Out] out int pchTypeDef,
+ [Out, MarshalAs(UnmanagedType.U4)] out System.Reflection.TypeAttributes pdwTypeDefFlags,
+ [ComAliasName("mdToken*")] [Out] out int ptkExtends
+ );
#if !MDBG_FAKE_COM
- // STDMETHOD(GetInterfaceImplProps)( // S_OK or error.
- // mdInterfaceImpl iiImpl, // [IN] InterfaceImpl token.
- // mdTypeDef *pClass, // [OUT] Put implementing class token here.
- // mdToken *ptkIface) PURE; // [OUT] Put implemented interface token here.
- void GetInterfaceImplProps_ ( );
+ // STDMETHOD(GetInterfaceImplProps)( // S_OK or error.
+ // mdInterfaceImpl iiImpl, // [IN] InterfaceImpl token.
+ // mdTypeDef *pClass, // [OUT] Put implementing class token here.
+ // mdToken *ptkIface) PURE; // [OUT] Put implemented interface token here.
+ void GetInterfaceImplProps_();
#endif
-
- // STDMETHOD(GetTypeRefProps)( // S_OK or error.
- // mdTypeRef tr, // [IN] TypeRef token.
- // mdToken *ptkResolutionScope, // [OUT] Resolution scope, ModuleRef or AssemblyRef.
- // LPWSTR szName, // [OUT] Name of the TypeRef.
- // ULONG cchName, // [IN] Size of buffer.
- // ULONG *pchName) PURE; // [OUT] Size of Name.
- void GetTypeRefProps (
- int tr,
- [ComAliasName ("mdToken*")] [Out] out int ptkResolutionScope,
- [Out, MarshalAs (UnmanagedType.LPWStr)] StringBuilder szName,
- [In] int cchName,
- [ComAliasName ("ULONG*")] out int pchName
- );
-
+ // STDMETHOD(GetTypeRefProps)( // S_OK or error.
+ // mdTypeRef tr, // [IN] TypeRef token.
+ // mdToken *ptkResolutionScope, // [OUT] Resolution scope, ModuleRef or AssemblyRef.
+ // LPWSTR szName, // [OUT] Name of the TypeRef.
+ // ULONG cchName, // [IN] Size of buffer.
+ // ULONG *pchName) PURE; // [OUT] Size of Name.
+ void GetTypeRefProps(
+ int tr,
+ [ComAliasName("mdToken*")] [Out] out int ptkResolutionScope,
+ [Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder szName,
+ [In] int cchName,
+ [ComAliasName("ULONG*")] out int pchName
+ );
#if !MDBG_FAKE_COM
- // STDMETHOD(ResolveTypeRef)(mdTypeRef tr, REFIID riid, IUnknown **ppIScope, mdTypeDef *ptd) PURE;
- void ResolveTypeRef_ ( );
-
- // STDMETHOD(EnumMembers)( // S_OK, S_FALSE, or error.
- // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- // mdTypeDef cl, // [IN] TypeDef to scope the enumeration.
- // mdToken rMembers[], // [OUT] Put MemberDefs here.
- // ULONG cMax, // [IN] Max MemberDefs to put.
- // ULONG *pcTokens) PURE; // [OUT] Put # put here.
- void EnumMembers_ ( );
-
- // STDMETHOD(EnumMembersWithName)( // S_OK, S_FALSE, or error.
- // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- // mdTypeDef cl, // [IN] TypeDef to scope the enumeration.
- // LPCWSTR szName, // [IN] Limit results to those with this name.
- // mdToken rMembers[], // [OUT] Put MemberDefs here.
- // ULONG cMax, // [IN] Max MemberDefs to put.
- // ULONG *pcTokens) PURE; // [OUT] Put # put here.
- void EnumMembersWithName_ ( );
+ // STDMETHOD(ResolveTypeRef)(mdTypeRef tr, REFIID riid, IUnknown **ppIScope, mdTypeDef *ptd) PURE;
+ void ResolveTypeRef_();
+
+ // STDMETHOD(EnumMembers)( // S_OK, S_FALSE, or error.
+ // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
+ // mdTypeDef cl, // [IN] TypeDef to scope the enumeration.
+ // mdToken rMembers[], // [OUT] Put MemberDefs here.
+ // ULONG cMax, // [IN] Max MemberDefs to put.
+ // ULONG *pcTokens) PURE; // [OUT] Put # put here.
+ void EnumMembers_();
+
+ // STDMETHOD(EnumMembersWithName)( // S_OK, S_FALSE, or error.
+ // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
+ // mdTypeDef cl, // [IN] TypeDef to scope the enumeration.
+ // LPCWSTR szName, // [IN] Limit results to those with this name.
+ // mdToken rMembers[], // [OUT] Put MemberDefs here.
+ // ULONG cMax, // [IN] Max MemberDefs to put.
+ // ULONG *pcTokens) PURE; // [OUT] Put # put here.
+ void EnumMembersWithName_();
#endif
-
- // STDMETHOD(EnumMethods)( // S_OK, S_FALSE, or error.
- // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- // mdTypeDef cl, // [IN] TypeDef to scope the enumeration.
- // mdMethodDef rMethods[], // [OUT] Put MethodDefs here.
- // ULONG cMax, // [IN] Max MethodDefs to put.
- // ULONG *pcTokens) PURE; // [OUT] Put # put here.
- void EnumMethods (ref IntPtr phEnum,
- int cl,
- [ComAliasName ("mdMethodDef*")] out int mdMethodDef,
- int cMax, /*must be 1*/
- [ComAliasName ("ULONG*")] out int pcTokens
- );
-
+ // STDMETHOD(EnumMethods)( // S_OK, S_FALSE, or error.
+ // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
+ // mdTypeDef cl, // [IN] TypeDef to scope the enumeration.
+ // mdMethodDef rMethods[], // [OUT] Put MethodDefs here.
+ // ULONG cMax, // [IN] Max MethodDefs to put.
+ // ULONG *pcTokens) PURE; // [OUT] Put # put here.
+ void EnumMethods(ref IntPtr phEnum,
+ int cl,
+ [ComAliasName("mdMethodDef*")] out int mdMethodDef,
+ int cMax, /*must be 1*/
+ [ComAliasName("ULONG*")] out int pcTokens
+ );
#if !MDBG_FAKE_COM
- // STDMETHOD(EnumMethodsWithName)( // S_OK, S_FALSE, or error.
- // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- // mdTypeDef cl, // [IN] TypeDef to scope the enumeration.
- // LPCWSTR szName, // [IN] Limit results to those with this name.
- // mdMethodDef rMethods[], // [OU] Put MethodDefs here.
- // ULONG cMax, // [IN] Max MethodDefs to put.
- // ULONG *pcTokens) PURE; // [OUT] Put # put here.
- void EnumMethodsWithName_ ( );
+ // STDMETHOD(EnumMethodsWithName)( // S_OK, S_FALSE, or error.
+ // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
+ // mdTypeDef cl, // [IN] TypeDef to scope the enumeration.
+ // LPCWSTR szName, // [IN] Limit results to those with this name.
+ // mdMethodDef rMethods[], // [OU] Put MethodDefs here.
+ // ULONG cMax, // [IN] Max MethodDefs to put.
+ // ULONG *pcTokens) PURE; // [OUT] Put # put here.
+ void EnumMethodsWithName_();
#endif
-
- // STDMETHOD(EnumFields)( // S_OK, S_FALSE, or error.
- // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- // mdTypeDef cl, // [IN] TypeDef to scope the enumeration.
- // mdFieldDef rFields[], // [OUT] Put FieldDefs here.
- // ULONG cMax, // [IN] Max FieldDefs to put.
- // ULONG *pcTokens) PURE; // [OUT] Put # put here.
- //void EnumFields_();
- /*[PreserveSig]*/
- void EnumFields (ref IntPtr phEnum,
- int cl,
- [ComAliasName ("mdFieldDef*")] out int mdFieldDef,
- int cMax /*must be 1*/,
- [ComAliasName ("ULONG*")] out uint pcTokens);
-
+ // STDMETHOD(EnumFields)( // S_OK, S_FALSE, or error.
+ // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
+ // mdTypeDef cl, // [IN] TypeDef to scope the enumeration.
+ // mdFieldDef rFields[], // [OUT] Put FieldDefs here.
+ // ULONG cMax, // [IN] Max FieldDefs to put.
+ // ULONG *pcTokens) PURE; // [OUT] Put # put here.
+ //void EnumFields_();
+ /*[PreserveSig]*/
+ void EnumFields(ref IntPtr phEnum,
+ int cl,
+ [ComAliasName("mdFieldDef*")] out int mdFieldDef,
+ int cMax /*must be 1*/,
+ [ComAliasName("ULONG*")] out uint pcTokens);
#if !MDBG_FAKE_COM
- // STDMETHOD(EnumFieldsWithName)( // S_OK, S_FALSE, or error.
- // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- // mdTypeDef cl, // [IN] TypeDef to scope the enumeration.
- // LPCWSTR szName, // [IN] Limit results to those with this name.
- // mdFieldDef rFields[], // [OUT] Put MemberDefs here.
- // ULONG cMax, // [IN] Max MemberDefs to put.
- // ULONG *pcTokens) PURE; // [OUT] Put # put here.
- void EnumFieldsWithName_ ( );
+ // STDMETHOD(EnumFieldsWithName)( // S_OK, S_FALSE, or error.
+ // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
+ // mdTypeDef cl, // [IN] TypeDef to scope the enumeration.
+ // LPCWSTR szName, // [IN] Limit results to those with this name.
+ // mdFieldDef rFields[], // [OUT] Put MemberDefs here.
+ // ULONG cMax, // [IN] Max MemberDefs to put.
+ // ULONG *pcTokens) PURE; // [OUT] Put # put here.
+ void EnumFieldsWithName_();
#endif
-
- // STDMETHOD(EnumParams)( // S_OK, S_FALSE, or error.
- // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- // mdMethodDef mb, // [IN] MethodDef to scope the enumeration.
- // mdParamDef rParams[], // [OUT] Put ParamDefs here.
- // ULONG cMax, // [IN] Max ParamDefs to put.
- // ULONG *pcTokens) PURE; // [OUT] Put # put here.
- void EnumParams (ref IntPtr phEnum,
- int mdMethodDef,
- [ComAliasName ("mdParamDef*")] out int mdParamDef,
- int cMax /*must be 1*/,
- [ComAliasName ("ULONG*")] out uint pcTokens);
-
+ // STDMETHOD(EnumParams)( // S_OK, S_FALSE, or error.
+ // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
+ // mdMethodDef mb, // [IN] MethodDef to scope the enumeration.
+ // mdParamDef rParams[], // [OUT] Put ParamDefs here.
+ // ULONG cMax, // [IN] Max ParamDefs to put.
+ // ULONG *pcTokens) PURE; // [OUT] Put # put here.
+ void EnumParams(ref IntPtr phEnum,
+ int mdMethodDef,
+ [ComAliasName("mdParamDef*")] out int mdParamDef,
+ int cMax /*must be 1*/,
+ [ComAliasName("ULONG*")] out uint pcTokens);
#if !MDBG_FAKE_COM
- // STDMETHOD(EnumMemberRefs)( // S_OK, S_FALSE, or error.
- // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- // mdToken tkParent, // [IN] Parent token to scope the enumeration.
- // mdMemberRef rMemberRefs[], // [OUT] Put MemberRefs here.
- // ULONG cMax, // [IN] Max MemberRefs to put.
- // ULONG *pcTokens) PURE; // [OUT] Put # put here.
- void EnumMemberRefs_ ( );
-
- // STDMETHOD(EnumMethodImpls)( // S_OK, S_FALSE, or error
- // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- // mdTypeDef td, // [IN] TypeDef to scope the enumeration.
- // mdToken rMethodBody[], // [OUT] Put Method Body tokens here.
- // mdToken rMethodDecl[], // [OUT] Put Method Declaration tokens here.
- // ULONG cMax, // [IN] Max tokens to put.
- // ULONG *pcTokens) PURE; // [OUT] Put # put here.
- void EnumMethodImpls_ ( );
-
- // STDMETHOD(EnumPermissionSets)( // S_OK, S_FALSE, or error.
- // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- // mdToken tk, // [IN] if !NIL, token to scope the enumeration.
- // DWORD dwActions, // [IN] if !0, return only these actions.
- // mdPermission rPermission[], // [OUT] Put Permissions here.
- // ULONG cMax, // [IN] Max Permissions to put.
- // ULONG *pcTokens) PURE; // [OUT] Put # put here.
- void EnumPermissionSets_ ( );
-
- // STDMETHOD(FindMember)(
- // mdTypeDef td, // [IN] given typedef
- // LPCWSTR szName, // [IN] member name
- // PCCOR_SIGNATURE pvSigBlob, // [IN] point to a blob value of CLR signature
- // ULONG cbSigBlob, // [IN] count of bytes in the signature blob
- // mdToken *pmb) PURE; // [OUT] matching memberdef
- void FindMember_ ( );
-
- // STDMETHOD(FindMethod)(
- // mdTypeDef td, // [IN] given typedef
- // LPCWSTR szName, // [IN] member name
- // PCCOR_SIGNATURE pvSigBlob, // [IN] point to a blob value of CLR signature
- // ULONG cbSigBlob, // [IN] count of bytes in the signature blob
- // mdMethodDef *pmb) PURE; // [OUT] matching memberdef
- void FindMethod_ ( );
-
- // STDMETHOD(FindField)(
- // mdTypeDef td, // [IN] given typedef
- // LPCWSTR szName, // [IN] member name
- // PCCOR_SIGNATURE pvSigBlob, // [IN] point to a blob value of CLR signature
- // ULONG cbSigBlob, // [IN] count of bytes in the signature blob
- // mdFieldDef *pmb) PURE; // [OUT] matching memberdef
- void FindField_ ( );
-
- // STDMETHOD(FindMemberRef)(
- // mdTypeRef td, // [IN] given typeRef
- // LPCWSTR szName, // [IN] member name
- // PCCOR_SIGNATURE pvSigBlob, // [IN] point to a blob value of CLR signature
- // ULONG cbSigBlob, // [IN] count of bytes in the signature blob
- // mdMemberRef *pmr) PURE; // [OUT] matching memberref
- void FindMemberRef_ ( );
+ // STDMETHOD(EnumMemberRefs)( // S_OK, S_FALSE, or error.
+ // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
+ // mdToken tkParent, // [IN] Parent token to scope the enumeration.
+ // mdMemberRef rMemberRefs[], // [OUT] Put MemberRefs here.
+ // ULONG cMax, // [IN] Max MemberRefs to put.
+ // ULONG *pcTokens) PURE; // [OUT] Put # put here.
+ void EnumMemberRefs_();
+
+ // STDMETHOD(EnumMethodImpls)( // S_OK, S_FALSE, or error
+ // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
+ // mdTypeDef td, // [IN] TypeDef to scope the enumeration.
+ // mdToken rMethodBody[], // [OUT] Put Method Body tokens here.
+ // mdToken rMethodDecl[], // [OUT] Put Method Declaration tokens here.
+ // ULONG cMax, // [IN] Max tokens to put.
+ // ULONG *pcTokens) PURE; // [OUT] Put # put here.
+ void EnumMethodImpls_();
+
+ // STDMETHOD(EnumPermissionSets)( // S_OK, S_FALSE, or error.
+ // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
+ // mdToken tk, // [IN] if !NIL, token to scope the enumeration.
+ // DWORD dwActions, // [IN] if !0, return only these actions.
+ // mdPermission rPermission[], // [OUT] Put Permissions here.
+ // ULONG cMax, // [IN] Max Permissions to put.
+ // ULONG *pcTokens) PURE; // [OUT] Put # put here.
+ void EnumPermissionSets_();
+
+ // STDMETHOD(FindMember)(
+ // mdTypeDef td, // [IN] given typedef
+ // LPCWSTR szName, // [IN] member name
+ // PCCOR_SIGNATURE pvSigBlob, // [IN] point to a blob value of CLR signature
+ // ULONG cbSigBlob, // [IN] count of bytes in the signature blob
+ // mdToken *pmb) PURE; // [OUT] matching memberdef
+ void FindMember_();
+
+ // STDMETHOD(FindMethod)(
+ // mdTypeDef td, // [IN] given typedef
+ // LPCWSTR szName, // [IN] member name
+ // PCCOR_SIGNATURE pvSigBlob, // [IN] point to a blob value of CLR signature
+ // ULONG cbSigBlob, // [IN] count of bytes in the signature blob
+ // mdMethodDef *pmb) PURE; // [OUT] matching memberdef
+ void FindMethod_();
+
+ // STDMETHOD(FindField)(
+ // mdTypeDef td, // [IN] given typedef
+ // LPCWSTR szName, // [IN] member name
+ // PCCOR_SIGNATURE pvSigBlob, // [IN] point to a blob value of CLR signature
+ // ULONG cbSigBlob, // [IN] count of bytes in the signature blob
+ // mdFieldDef *pmb) PURE; // [OUT] matching memberdef
+ void FindField_();
+
+ // STDMETHOD(FindMemberRef)(
+ // mdTypeRef td, // [IN] given typeRef
+ // LPCWSTR szName, // [IN] member name
+ // PCCOR_SIGNATURE pvSigBlob, // [IN] point to a blob value of CLR signature
+ // ULONG cbSigBlob, // [IN] count of bytes in the signature blob
+ // mdMemberRef *pmr) PURE; // [OUT] matching memberref
+ void FindMemberRef_();
#endif
-
- // STDMETHOD (GetMethodProps)(
- // mdMethodDef mb, // The method for which to get props.
- // mdTypeDef *pClass, // Put method's class here.
- // LPWSTR szMethod, // Put method's name here.
- // ULONG cchMethod, // Size of szMethod buffer in wide chars.
- // ULONG *pchMethod, // Put actual size here
- // DWORD *pdwAttr, // Put flags here.
- // PCCOR_SIGNATURE *ppvSigBlob, // [OUT] point to the blob value of meta data
- // ULONG *pcbSigBlob, // [OUT] actual size of signature blob
- // ULONG *pulCodeRVA, // [OUT] codeRVA
- // DWORD *pdwImplFlags) PURE; // [OUT] Impl. Flags
- void GetMethodProps ([In] uint md,
- [ComAliasName ("mdTypeDef*")] [Out] out int pClass,
- [Out, MarshalAs (UnmanagedType.LPWStr)] StringBuilder szMethod,
- [In] int cchMethod,
- [ComAliasName ("ULONG*")] [Out] out int pchMethod,
- [ComAliasName ("DWORD*")] [Out] out uint pdwAttr,
- [ComAliasName ("PCCOR_SIGNATURE*")] [Out] out IntPtr ppvSigBlob,
- [ComAliasName ("ULONG*")] [Out] out uint pcbSigBlob,
- [ComAliasName ("ULONG*")] [Out] out uint pulCodeRVA,
- [ComAliasName ("DWORD*")] [Out] out uint pdwImplFlags
- );
-
- // STDMETHOD(GetMemberRefProps)( // S_OK or error.
- // mdMemberRef mr, // [IN] given memberref
- // mdToken *ptk, // [OUT] Put classref or classdef here.
- // LPWSTR szMember, // [OUT] buffer to fill for member's name
- // ULONG cchMember, // [IN] the count of char of szMember
- // ULONG *pchMember, // [OUT] actual count of char in member name
- // PCCOR_SIGNATURE *ppvSigBlob, // [OUT] point to meta data blob value
- // ULONG *pbSig) PURE; // [OUT] actual size of signature blob
- void GetMemberRefProps ([In] uint mr,
- [ComAliasName ("mdMemberRef*")] [Out] out int ptk,
- [Out, MarshalAs (UnmanagedType.LPWStr)] StringBuilder szMember,
- [In] int cchMember,
- [ComAliasName ("ULONG*")] [Out] out uint pchMember,
- [ComAliasName ("PCCOR_SIGNATURE*")] [Out] out IntPtr ppvSigBlob,
- [ComAliasName ("ULONG*")] [Out] out int pbSig
- );
-
+ // STDMETHOD (GetMethodProps)(
+ // mdMethodDef mb, // The method for which to get props.
+ // mdTypeDef *pClass, // Put method's class here.
+ // LPWSTR szMethod, // Put method's name here.
+ // ULONG cchMethod, // Size of szMethod buffer in wide chars.
+ // ULONG *pchMethod, // Put actual size here
+ // DWORD *pdwAttr, // Put flags here.
+ // PCCOR_SIGNATURE *ppvSigBlob, // [OUT] point to the blob value of meta data
+ // ULONG *pcbSigBlob, // [OUT] actual size of signature blob
+ // ULONG *pulCodeRVA, // [OUT] codeRVA
+ // DWORD *pdwImplFlags) PURE; // [OUT] Impl. Flags
+ void GetMethodProps([In] uint md,
+ [ComAliasName("mdTypeDef*")] [Out] out int pClass,
+ [Out, MarshalAs( UnmanagedType.LPWStr)] StringBuilder szMethod,
+ [In] int cchMethod,
+ [ComAliasName("ULONG*")] [Out] out int pchMethod,
+ [ComAliasName("DWORD*")] [Out] out uint pdwAttr,
+ [ComAliasName("PCCOR_SIGNATURE*")] [Out] out IntPtr ppvSigBlob,
+ [ComAliasName("ULONG*")] [Out] out uint pcbSigBlob,
+ [ComAliasName("ULONG*")] [Out] out uint pulCodeRVA,
+ [ComAliasName("DWORD*")] [Out] out uint pdwImplFlags
+ );
+
+ // STDMETHOD(GetMemberRefProps)( // S_OK or error.
+ // mdMemberRef mr, // [IN] given memberref
+ // mdToken *ptk, // [OUT] Put classref or classdef here.
+ // LPWSTR szMember, // [OUT] buffer to fill for member's name
+ // ULONG cchMember, // [IN] the count of char of szMember
+ // ULONG *pchMember, // [OUT] actual count of char in member name
+ // PCCOR_SIGNATURE *ppvSigBlob, // [OUT] point to meta data blob value
+ // ULONG *pbSig) PURE; // [OUT] actual size of signature blob
+ void GetMemberRefProps([In] uint mr,
+ [ComAliasName("mdMemberRef*")] [Out] out int ptk,
+ [Out,MarshalAs(UnmanagedType.LPWStr)] StringBuilder szMember,
+ [In] int cchMember,
+ [ComAliasName("ULONG*")] [Out] out uint pchMember,
+ [ComAliasName("PCCOR_SIGNATURE*")] [Out] out IntPtr ppvSigBlob,
+ [ComAliasName("ULONG*")] [Out] out int pbSig
+ );
+
+ // STDMETHOD(EnumProperties)( // S_OK, S_FALSE, or error.
+ // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
+ // mdTypeDef td, // [IN] TypeDef to scope the enumeration.
+ // mdProperty rProperties[], // [OUT] Put Properties here.
+ // ULONG cMax, // [IN] Max properties to put.
+ // ULONG *pcProperties) PURE; // [OUT] Put # put here.
+ void EnumProperties(ref IntPtr phEnum,
+ int td,
+ [ComAliasName("mdProperty*")] out int mdProperty,
+ int cMax /*must be 1*/,
+ [ComAliasName("ULONG*")] out uint pcProperties);
#if !MDBG_FAKE_COM
- // STDMETHOD(EnumProperties)( // S_OK, S_FALSE, or error.
- // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- // mdTypeDef td, // [IN] TypeDef to scope the enumeration.
- // mdProperty rProperties[], // [OUT] Put Properties here.
- // ULONG cMax, // [IN] Max properties to put.
- // ULONG *pcProperties) PURE; // [OUT] Put # put here.
- void EnumProperties (ref IntPtr phEnum,
- int td,
- [ComAliasName ("mdProperty*")] out int mdProperty,
- int cMax /*must be 1*/,
- [ComAliasName ("ULONG*")] out uint pcProperties);
-
- // STDMETHOD(EnumEvents)( // S_OK, S_FALSE, or error.
- // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- // mdTypeDef td, // [IN] TypeDef to scope the enumeration.
- // mdEvent rEvents[], // [OUT] Put events here.
- // ULONG cMax, // [IN] Max events to put.
- // ULONG *pcEvents) PURE; // [OUT] Put # put here.
- void EnumEvents_ ( );
-
- // STDMETHOD(GetEventProps)( // S_OK, S_FALSE, or error.
- // mdEvent ev, // [IN] event token
- // mdTypeDef *pClass, // [OUT] typedef containing the event declarion.
- // LPCWSTR szEvent, // [OUT] Event name
- // ULONG cchEvent, // [IN] the count of wchar of szEvent
- // ULONG *pchEvent, // [OUT] actual count of wchar for event's name
- // DWORD *pdwEventFlags, // [OUT] Event flags.
- // mdToken *ptkEventType, // [OUT] EventType class
- // mdMethodDef *pmdAddOn, // [OUT] AddOn method of the event
- // mdMethodDef *pmdRemoveOn, // [OUT] RemoveOn method of the event
- // mdMethodDef *pmdFire, // [OUT] Fire method of the event
- // mdMethodDef rmdOtherMethod[], // [OUT] other method of the event
- // ULONG cMax, // [IN] size of rmdOtherMethod
- // ULONG *pcOtherMethod) PURE; // [OUT] total number of other method of this event
- void GetEventProps_ ( );
-
- // STDMETHOD(EnumMethodSemantics)( // S_OK, S_FALSE, or error.
- // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- // mdMethodDef mb, // [IN] MethodDef to scope the enumeration.
- // mdToken rEventProp[], // [OUT] Put Event/Property here.
- // ULONG cMax, // [IN] Max properties to put.
- // ULONG *pcEventProp) PURE; // [OUT] Put # put here.
- void EnumMethodSemantics_ ( );
-
- // STDMETHOD(GetMethodSemantics)( // S_OK, S_FALSE, or error.
- // mdMethodDef mb, // [IN] method token
- // mdToken tkEventProp, // [IN] event/property token.
- // DWORD *pdwSemanticsFlags) PURE; // [OUT] the role flags for the method/propevent pair
- void GetMethodSemantics_ ( );
-
- // STDMETHOD(GetClassLayout) (
- // mdTypeDef td, // [IN] give typedef
- // DWORD *pdwPackSize, // [OUT] 1, 2, 4, 8, or 16
- // COR_FIELD_OFFSET rFieldOffset[], // [OUT] field offset array
- // ULONG cMax, // [IN] size of the array
- // ULONG *pcFieldOffset, // [OUT] needed array size
- // ULONG *pulClassSize) PURE; // [OUT] the size of the class
- void GetClassLayout_ ( );
-
- // STDMETHOD(GetFieldMarshal) (
- // mdToken tk, // [IN] given a field's memberdef
- // PCCOR_SIGNATURE *ppvNativeType, // [OUT] native type of this field
- // ULONG *pcbNativeType) PURE; // [OUT] the count of bytes of *ppvNativeType
- void GetFieldMarshal_ ( );
-
- // STDMETHOD(GetRVA)( // S_OK or error.
- // mdToken tk, // Member for which to set offset
- // ULONG *pulCodeRVA, // The offset
- // DWORD *pdwImplFlags) PURE; // the implementation flags
- void GetRVA_ ( );
-
- // STDMETHOD(GetPermissionSetProps) (
- // mdPermission pm, // [IN] the permission token.
- // DWORD *pdwAction, // [OUT] CorDeclSecurity.
- // void const **ppvPermission, // [OUT] permission blob.
- // ULONG *pcbPermission) PURE; // [OUT] count of bytes of pvPermission.
- void GetPermissionSetProps_ ( );
-
- // STDMETHOD(GetSigFromToken)( // S_OK or error.
- // mdSignature mdSig, // [IN] Signature token.
- // PCCOR_SIGNATURE *ppvSig, // [OUT] return pointer to token.
- // ULONG *pcbSig) PURE; // [OUT] return size of signature.
- void GetSigFromToken_ ( );
-
- // STDMETHOD(GetModuleRefProps)( // S_OK or error.
- // mdModuleRef mur, // [IN] moduleref token.
- // LPWSTR szName, // [OUT] buffer to fill with the moduleref name.
- // ULONG cchName, // [IN] size of szName in wide characters.
- // ULONG *pchName) PURE; // [OUT] actual count of characters in the name.
- void GetModuleRefProps_ ( );
-
- // STDMETHOD(EnumModuleRefs)( // S_OK or error.
- // HCORENUM *phEnum, // [IN|OUT] pointer to the enum.
- // mdModuleRef rModuleRefs[], // [OUT] put modulerefs here.
- // ULONG cmax, // [IN] max memberrefs to put.
- // ULONG *pcModuleRefs) PURE; // [OUT] put # put here.
- void EnumModuleRefs_ ( );
-
- // STDMETHOD(GetTypeSpecFromToken)( // S_OK or error.
- // mdTypeSpec typespec, // [IN] TypeSpec token.
- // PCCOR_SIGNATURE *ppvSig, // [OUT] return pointer to TypeSpec signature
- // ULONG *pcbSig) PURE; // [OUT] return size of signature.
- void GetTypeSpecFromToken_ ( );
-
- // STDMETHOD(GetNameFromToken)( // Not Recommended! May be removed!
- // mdToken tk, // [IN] Token to get name from. Must have a name.
- // MDUTF8CSTR *pszUtf8NamePtr) PURE; // [OUT] Return pointer to UTF8 name in heap.
- void GetNameFromToken_ ( );
-
-
- // STDMETHOD(EnumUnresolvedMethods)( // S_OK, S_FALSE, or error.
- // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- // mdToken rMethods[], // [OUT] Put MemberDefs here.
- // ULONG cMax, // [IN] Max MemberDefs to put.
- // ULONG *pcTokens) PURE; // [OUT] Put # put here.
- void EnumUnresolvedMethods_ ( );
+ // STDMETHOD(EnumEvents)( // S_OK, S_FALSE, or error.
+ // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
+ // mdTypeDef td, // [IN] TypeDef to scope the enumeration.
+ // mdEvent rEvents[], // [OUT] Put events here.
+ // ULONG cMax, // [IN] Max events to put.
+ // ULONG *pcEvents) PURE; // [OUT] Put # put here.
+ void EnumEvents_();
+
+ // STDMETHOD(GetEventProps)( // S_OK, S_FALSE, or error.
+ // mdEvent ev, // [IN] event token
+ // mdTypeDef *pClass, // [OUT] typedef containing the event declarion.
+ // LPCWSTR szEvent, // [OUT] Event name
+ // ULONG cchEvent, // [IN] the count of wchar of szEvent
+ // ULONG *pchEvent, // [OUT] actual count of wchar for event's name
+ // DWORD *pdwEventFlags, // [OUT] Event flags.
+ // mdToken *ptkEventType, // [OUT] EventType class
+ // mdMethodDef *pmdAddOn, // [OUT] AddOn method of the event
+ // mdMethodDef *pmdRemoveOn, // [OUT] RemoveOn method of the event
+ // mdMethodDef *pmdFire, // [OUT] Fire method of the event
+ // mdMethodDef rmdOtherMethod[], // [OUT] other method of the event
+ // ULONG cMax, // [IN] size of rmdOtherMethod
+ // ULONG *pcOtherMethod) PURE; // [OUT] total number of other method of this event
+ void GetEventProps_();
+
+ // STDMETHOD(EnumMethodSemantics)( // S_OK, S_FALSE, or error.
+ // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
+ // mdMethodDef mb, // [IN] MethodDef to scope the enumeration.
+ // mdToken rEventProp[], // [OUT] Put Event/Property here.
+ // ULONG cMax, // [IN] Max properties to put.
+ // ULONG *pcEventProp) PURE; // [OUT] Put # put here.
+ void EnumMethodSemantics_();
+
+ // STDMETHOD(GetMethodSemantics)( // S_OK, S_FALSE, or error.
+ // mdMethodDef mb, // [IN] method token
+ // mdToken tkEventProp, // [IN] event/property token.
+ // DWORD *pdwSemanticsFlags) PURE; // [OUT] the role flags for the method/propevent pair
+ void GetMethodSemantics_();
+
+ // STDMETHOD(GetClassLayout) (
+ // mdTypeDef td, // [IN] give typedef
+ // DWORD *pdwPackSize, // [OUT] 1, 2, 4, 8, or 16
+ // COR_FIELD_OFFSET rFieldOffset[], // [OUT] field offset array
+ // ULONG cMax, // [IN] size of the array
+ // ULONG *pcFieldOffset, // [OUT] needed array size
+ // ULONG *pulClassSize) PURE; // [OUT] the size of the class
+ void GetClassLayout_();
+
+ // STDMETHOD(GetFieldMarshal) (
+ // mdToken tk, // [IN] given a field's memberdef
+ // PCCOR_SIGNATURE *ppvNativeType, // [OUT] native type of this field
+ // ULONG *pcbNativeType) PURE; // [OUT] the count of bytes of *ppvNativeType
+ void GetFieldMarshal_();
+
+ // STDMETHOD(GetRVA)( // S_OK or error.
+ // mdToken tk, // Member for which to set offset
+ // ULONG *pulCodeRVA, // The offset
+ // DWORD *pdwImplFlags) PURE; // the implementation flags
+ void GetRVA_();
+
+ // STDMETHOD(GetPermissionSetProps) (
+ // mdPermission pm, // [IN] the permission token.
+ // DWORD *pdwAction, // [OUT] CorDeclSecurity.
+ // void const **ppvPermission, // [OUT] permission blob.
+ // ULONG *pcbPermission) PURE; // [OUT] count of bytes of pvPermission.
+ void GetPermissionSetProps_();
+
+ // STDMETHOD(GetSigFromToken)( // S_OK or error.
+ // mdSignature mdSig, // [IN] Signature token.
+ // PCCOR_SIGNATURE *ppvSig, // [OUT] return pointer to token.
+ // ULONG *pcbSig) PURE; // [OUT] return size of signature.
+ void GetSigFromToken_();
+
+ // STDMETHOD(GetModuleRefProps)( // S_OK or error.
+ // mdModuleRef mur, // [IN] moduleref token.
+ // LPWSTR szName, // [OUT] buffer to fill with the moduleref name.
+ // ULONG cchName, // [IN] size of szName in wide characters.
+ // ULONG *pchName) PURE; // [OUT] actual count of characters in the name.
+ void GetModuleRefProps_();
+
+ // STDMETHOD(EnumModuleRefs)( // S_OK or error.
+ // HCORENUM *phEnum, // [IN|OUT] pointer to the enum.
+ // mdModuleRef rModuleRefs[], // [OUT] put modulerefs here.
+ // ULONG cmax, // [IN] max memberrefs to put.
+ // ULONG *pcModuleRefs) PURE; // [OUT] put # put here.
+ void EnumModuleRefs_();
+
+ // STDMETHOD(GetTypeSpecFromToken)( // S_OK or error.
+ // mdTypeSpec typespec, // [IN] TypeSpec token.
+ // PCCOR_SIGNATURE *ppvSig, // [OUT] return pointer to TypeSpec signature
+ // ULONG *pcbSig) PURE; // [OUT] return size of signature.
+ void GetTypeSpecFromToken_();
+
+ // STDMETHOD(GetNameFromToken)( // Not Recommended! May be removed!
+ // mdToken tk, // [IN] Token to get name from. Must have a name.
+ // MDUTF8CSTR *pszUtf8NamePtr) PURE; // [OUT] Return pointer to UTF8 name in heap.
+ void GetNameFromToken_();
+
+
+ // STDMETHOD(EnumUnresolvedMethods)( // S_OK, S_FALSE, or error.
+ // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
+ // mdToken rMethods[], // [OUT] Put MemberDefs here.
+ // ULONG cMax, // [IN] Max MemberDefs to put.
+ // ULONG *pcTokens) PURE; // [OUT] Put # put here.
+ void EnumUnresolvedMethods_();
#endif
-
- // STDMETHOD(GetUserString)( // S_OK or error.
- // mdString stk, // [IN] String token.
- // LPWSTR szString, // [OUT] Copy of string.
- // ULONG cchString, // [IN] Max chars of room in szString.
- // ULONG *pchString) PURE; // [OUT] How many chars in actual string.
- void GetUserString ([In] int stk,
- [Out, MarshalAs (UnmanagedType.LPWStr)] StringBuilder szString,
- [In] int cchString,
- [ComAliasName ("ULONG*")] out int pchString
- );
-
+ // STDMETHOD(GetUserString)( // S_OK or error.
+ // mdString stk, // [IN] String token.
+ // LPWSTR szString, // [OUT] Copy of string.
+ // ULONG cchString, // [IN] Max chars of room in szString.
+ // ULONG *pchString) PURE; // [OUT] How many chars in actual string.
+ void GetUserString([In] int stk,
+ [Out,MarshalAs(UnmanagedType.LPWStr)] StringBuilder szString,
+ [In] int cchString,
+ [ComAliasName("ULONG*")] out int pchString
+ );
#if !MDBG_FAKE_COM
- // STDMETHOD(GetPinvokeMap)( // S_OK or error.
- // mdToken tk, // [IN] FieldDef or MethodDef.
- // DWORD *pdwMappingFlags, // [OUT] Flags used for mapping.
- // LPWSTR szImportName, // [OUT] Import name.
- // ULONG cchImportName, // [IN] Size of the name buffer.
- // ULONG *pchImportName, // [OUT] Actual number of characters stored.
- // mdModuleRef *pmrImportDLL) PURE; // [OUT] ModuleRef token for the target DLL.
- void GetPinvokeMap_ ( );
-
- // STDMETHOD(EnumSignatures)( // S_OK or error.
- // HCORENUM *phEnum, // [IN|OUT] pointer to the enum.
- // mdSignature rSignatures[], // [OUT] put signatures here.
- // ULONG cmax, // [IN] max signatures to put.
- // ULONG *pcSignatures) PURE; // [OUT] put # put here.
- void EnumSignatures_ ( );
-
- // STDMETHOD(EnumTypeSpecs)( // S_OK or error.
- // HCORENUM *phEnum, // [IN|OUT] pointer to the enum.
- // mdTypeSpec rTypeSpecs[], // [OUT] put TypeSpecs here.
- // ULONG cmax, // [IN] max TypeSpecs to put.
- // ULONG *pcTypeSpecs) PURE; // [OUT] put # put here.
- void EnumTypeSpecs_ ( );
-
- // STDMETHOD(EnumUserStrings)( // S_OK or error.
- // HCORENUM *phEnum, // [IN/OUT] pointer to the enum.
- // mdString rStrings[], // [OUT] put Strings here.
- // ULONG cmax, // [IN] max Strings to put.
- // ULONG *pcStrings) PURE; // [OUT] put # put here.
- void EnumUserStrings_ ( );
-
- // STDMETHOD(GetParamForMethodIndex)( // S_OK or error.
- // mdMethodDef md, // [IN] Method token.
- // ULONG ulParamSeq, // [IN] Parameter sequence.
- // mdParamDef *ppd) PURE; // [IN] Put Param token here.
- void GetParamForMethodIndex_ ( );
+ // STDMETHOD(GetPinvokeMap)( // S_OK or error.
+ // mdToken tk, // [IN] FieldDef or MethodDef.
+ // DWORD *pdwMappingFlags, // [OUT] Flags used for mapping.
+ // LPWSTR szImportName, // [OUT] Import name.
+ // ULONG cchImportName, // [IN] Size of the name buffer.
+ // ULONG *pchImportName, // [OUT] Actual number of characters stored.
+ // mdModuleRef *pmrImportDLL) PURE; // [OUT] ModuleRef token for the target DLL.
+ void GetPinvokeMap_();
+
+ // STDMETHOD(EnumSignatures)( // S_OK or error.
+ // HCORENUM *phEnum, // [IN|OUT] pointer to the enum.
+ // mdSignature rSignatures[], // [OUT] put signatures here.
+ // ULONG cmax, // [IN] max signatures to put.
+ // ULONG *pcSignatures) PURE; // [OUT] put # put here.
+ void EnumSignatures_();
+
+ // STDMETHOD(EnumTypeSpecs)( // S_OK or error.
+ // HCORENUM *phEnum, // [IN|OUT] pointer to the enum.
+ // mdTypeSpec rTypeSpecs[], // [OUT] put TypeSpecs here.
+ // ULONG cmax, // [IN] max TypeSpecs to put.
+ // ULONG *pcTypeSpecs) PURE; // [OUT] put # put here.
+ void EnumTypeSpecs_();
+
+ // STDMETHOD(EnumUserStrings)( // S_OK or error.
+ // HCORENUM *phEnum, // [IN/OUT] pointer to the enum.
+ // mdString rStrings[], // [OUT] put Strings here.
+ // ULONG cmax, // [IN] max Strings to put.
+ // ULONG *pcStrings) PURE; // [OUT] put # put here.
+ void EnumUserStrings_();
+
+ // STDMETHOD(GetParamForMethodIndex)( // S_OK or error.
+ // mdMethodDef md, // [IN] Method token.
+ // ULONG ulParamSeq, // [IN] Parameter sequence.
+ // mdParamDef *ppd) PURE; // [IN] Put Param token here.
+ void GetParamForMethodIndex_();
#endif
-
- // STDMETHOD(EnumCustomAttributes)( // S_OK or error.
- // HCORENUM *phEnum, // [IN, OUT] COR enumerator.
- // mdToken tk, // [IN] Token to scope the enumeration, 0 for all.
- // mdToken tkType, // [IN] Type of interest, 0 for all.
- // mdCustomAttribute rCustomAttributes[], // [OUT] Put custom attribute tokens here.
- // ULONG cMax, // [IN] Size of rCustomAttributes.
- // ULONG *pcCustomAttributes) PURE; // [OUT, OPTIONAL] Put count of token values here.
- void EnumCustomAttributes (ref IntPtr phEnum,
- int tk,
- int tkType,
- [ComAliasName ("mdCustomAttribute*")]out int mdCustomAttribute,
- uint cMax /*must be 1*/,
- [ComAliasName ("ULONG*")]out uint pcTokens
- );
-
+ // STDMETHOD(EnumCustomAttributes)( // S_OK or error.
+ // HCORENUM *phEnum, // [IN, OUT] COR enumerator.
+ // mdToken tk, // [IN] Token to scope the enumeration, 0 for all.
+ // mdToken tkType, // [IN] Type of interest, 0 for all.
+ // mdCustomAttribute rCustomAttributes[], // [OUT] Put custom attribute tokens here.
+ // ULONG cMax, // [IN] Size of rCustomAttributes.
+ // ULONG *pcCustomAttributes) PURE; // [OUT, OPTIONAL] Put count of token values here.
+ void EnumCustomAttributes(ref IntPtr phEnum,
+ int tk,
+ int tkType,
+ [ComAliasName("mdCustomAttribute*")]out int mdCustomAttribute,
+ uint cMax /*must be 1*/,
+ [ComAliasName("ULONG*")]out uint pcTokens
+ );
#if !MDBG_FAKE_COM
- // STDMETHOD(GetCustomAttributeProps)( // S_OK or error.
- // mdCustomAttribute cv, // [IN] CustomAttribute token.
- // mdToken *ptkObj, // [OUT, OPTIONAL] Put object token here.
- // mdToken *ptkType, // [OUT, OPTIONAL] Put AttrType token here.
- // void const **ppBlob, // [OUT, OPTIONAL] Put pointer to data here.
- // ULONG *pcbSize) PURE; // [OUT, OPTIONAL] Put size of date here.
- void GetCustomAttributeProps_ ( );
-
- // STDMETHOD(FindTypeRef)(
- // mdToken tkResolutionScope, // [IN] ModuleRef, AssemblyRef or TypeRef.
- // LPCWSTR szName, // [IN] TypeRef Name.
- // mdTypeRef *ptr) PURE; // [OUT] matching TypeRef.
- void FindTypeRef_ ( );
-
- // STDMETHOD(GetMemberProps)(
- // mdToken mb, // The member for which to get props.
- // mdTypeDef *pClass, // Put member's class here.
- // LPWSTR szMember, // Put member's name here.
- // ULONG cchMember, // Size of szMember buffer in wide chars.
- // ULONG *pchMember, // Put actual size here
- // DWORD *pdwAttr, // Put flags here.
- // PCCOR_SIGNATURE *ppvSigBlob, // [OUT] point to the blob value of meta data
- // ULONG *pcbSigBlob, // [OUT] actual size of signature blob
- // ULONG *pulCodeRVA, // [OUT] codeRVA
- // DWORD *pdwImplFlags, // [OUT] Impl. Flags
- // DWORD *pdwCPlusTypeFlag, // [OUT] flag for value type. selected ELEMENT_TYPE_*
- // void const **ppValue, // [OUT] constant value
- // ULONG *pcchValue) PURE; // [OUT] size of constant string in chars, 0 for non-strings.
- void GetMemberProps_ ( );
+ // STDMETHOD(GetCustomAttributeProps)( // S_OK or error.
+ // mdCustomAttribute cv, // [IN] CustomAttribute token.
+ // mdToken *ptkObj, // [OUT, OPTIONAL] Put object token here.
+ // mdToken *ptkType, // [OUT, OPTIONAL] Put AttrType token here.
+ // void const **ppBlob, // [OUT, OPTIONAL] Put pointer to data here.
+ // ULONG *pcbSize) PURE; // [OUT, OPTIONAL] Put size of date here.
+ void GetCustomAttributeProps_();
+
+ // STDMETHOD(FindTypeRef)(
+ // mdToken tkResolutionScope, // [IN] ModuleRef, AssemblyRef or TypeRef.
+ // LPCWSTR szName, // [IN] TypeRef Name.
+ // mdTypeRef *ptr) PURE; // [OUT] matching TypeRef.
+ void FindTypeRef_();
+
+ // STDMETHOD(GetMemberProps)(
+ // mdToken mb, // The member for which to get props.
+ // mdTypeDef *pClass, // Put member's class here.
+ // LPWSTR szMember, // Put member's name here.
+ // ULONG cchMember, // Size of szMember buffer in wide chars.
+ // ULONG *pchMember, // Put actual size here
+ // DWORD *pdwAttr, // Put flags here.
+ // PCCOR_SIGNATURE *ppvSigBlob, // [OUT] point to the blob value of meta data
+ // ULONG *pcbSigBlob, // [OUT] actual size of signature blob
+ // ULONG *pulCodeRVA, // [OUT] codeRVA
+ // DWORD *pdwImplFlags, // [OUT] Impl. Flags
+ // DWORD *pdwCPlusTypeFlag, // [OUT] flag for value type. selected ELEMENT_TYPE_*
+ // void const **ppValue, // [OUT] constant value
+ // ULONG *pcchValue) PURE; // [OUT] size of constant string in chars, 0 for non-strings.
+ void GetMemberProps_();
#endif
+ // STDMETHOD(GetFieldProps)(
+ // mdFieldDef mb, // The field for which to get props.
+ // mdTypeDef *pClass, // Put field's class here.
+ // LPWSTR szField, // Put field's name here.
+ // ULONG cchField, // Size of szField buffer in wide chars.
+ // ULONG *pchField, // Put actual size here
+ // DWORD *pdwAttr, // Put flags here.
+ // PCCOR_SIGNATURE *ppvSigBlob, // [OUT] point to the blob value of meta data
+ // ULONG *pcbSigBlob, // [OUT] actual size of signature blob
+ // DWORD *pdwCPlusTypeFlag, // [OUT] flag for value type. selected ELEMENT_TYPE_*
+ // void const **ppValue, // [OUT] constant value
+ // ULONG *pcchValue) PURE; // [OUT] size of constant string in chars, 0 for non-strings.
+ void GetFieldProps(int mb,
+ [ComAliasName("mdTypeDef*")] out int mdTypeDef,
+ [Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder szField,
+ int cchField,
+ [ComAliasName("ULONG*")] out int pchField,
+ [ComAliasName("DWORD*")] out int pdwAttr,
+ [ComAliasName("PCCOR_SIGNATURE*")] out IntPtr ppvSigBlob,
+ [ComAliasName("ULONG*")] out int pcbSigBlob,
+ [ComAliasName("DWORD*")] out int pdwCPlusTypeFlab,
+ [ComAliasName("UVCP_CONSTANT*")] out IntPtr ppValue,
+ [ComAliasName("ULONG*")] out int pcchValue
+ );
- // STDMETHOD(GetFieldProps)(
- // mdFieldDef mb, // The field for which to get props.
- // mdTypeDef *pClass, // Put field's class here.
- // LPWSTR szField, // Put field's name here.
- // ULONG cchField, // Size of szField buffer in wide chars.
- // ULONG *pchField, // Put actual size here
- // DWORD *pdwAttr, // Put flags here.
- // PCCOR_SIGNATURE *ppvSigBlob, // [OUT] point to the blob value of meta data
- // ULONG *pcbSigBlob, // [OUT] actual size of signature blob
- // DWORD *pdwCPlusTypeFlag, // [OUT] flag for value type. selected ELEMENT_TYPE_*
- // void const **ppValue, // [OUT] constant value
- // ULONG *pcchValue) PURE; // [OUT] size of constant string in chars, 0 for non-strings.
- void GetFieldProps (int mb,
- [ComAliasName ("mdTypeDef*")] out int mdTypeDef,
- [Out, MarshalAs (UnmanagedType.LPWStr)] StringBuilder szField,
- int cchField,
- [ComAliasName ("ULONG*")] out int pchField,
- [ComAliasName ("DWORD*")] out int pdwAttr,
- [ComAliasName ("PCCOR_SIGNATURE*")] out IntPtr ppvSigBlob,
- [ComAliasName ("ULONG*")] out int pcbSigBlob,
- [ComAliasName ("DWORD*")] out int pdwCPlusTypeFlab,
- [ComAliasName ("UVCP_CONSTANT*")] out IntPtr ppValue,
- [ComAliasName ("ULONG*")] out int pcchValue
- );
-
-#if !MDBG_FAKE_COM
// STDMETHOD(GetPropertyProps)( // S_OK, S_FALSE, or error.
// mdProperty prop, // [IN] property token
// mdTypeDef *pClass, // [OUT] typedef containing the property declarion.
@@ -558,899 +537,869 @@ namespace Microsoft.Samples.Debugging.CorMetadata.NativeApi
// mdMethodDef rmdOtherMethod[], // [OUT] other method of the property
// ULONG cMax, // [IN] size of rmdOtherMethod
// ULONG *pcOtherMethod) PURE; // [OUT] total number of other method of this property
- void GetPropertyProps (int prop,
- [ComAliasName ("mdTypeDef*")] out int mdTypeDef,
- [Out, MarshalAs (UnmanagedType.LPWStr)] StringBuilder szProperty,
- int cchProperty,
- [ComAliasName ("ULONG*")] out int pchProperty,
- [ComAliasName ("DWORD*")] out int pdwPropFlags,
- [ComAliasName ("PCCOR_SIGNATURE*")] out IntPtr ppvSig,
- [ComAliasName ("ULONG*")] out int pbSig,
- [ComAliasName ("DWORD*")] out int pdwCPlusTypeFlag,
- [ComAliasName ("UVCP_CONSTANT*")] out IntPtr ppDefaultValue,
- [ComAliasName ("ULONG*")] out int pcchDefaultValue,
- [ComAliasName ("mdMethodDef*")] out int pmdSetter,
- [ComAliasName ("mdMethodDef*")] out int pmdGetter,
- [ComAliasName ("mdMethodDef*")] out int rmdOtherMethod,
- [ComAliasName ("ULONG*")] int cMax, /* must be 1 */
- [ComAliasName ("ULONG*")] out int pcOtherMethod
- );
-#endif
-
- // STDMETHOD(GetParamProps)( // S_OK or error.
- // mdParamDef tk, // [IN]The Parameter.
- // mdMethodDef *pmd, // [OUT] Parent Method token.
- // ULONG *pulSequence, // [OUT] Parameter sequence.
- // LPWSTR szName, // [OUT] Put name here.
- // ULONG cchName, // [OUT] Size of name buffer.
- // ULONG *pchName, // [OUT] Put actual size of name here.
- // DWORD *pdwAttr, // [OUT] Put flags here.
- // DWORD *pdwCPlusTypeFlag, // [OUT] Flag for value type. selected ELEMENT_TYPE_*.
- // void const **ppValue, // [OUT] Constant value.
- // ULONG *pcchValue) PURE; // [OUT] size of constant string in chars, 0 for non-strings.
- void GetParamProps (int tk,
- [ComAliasName ("mdMethodDef*")] out int pmd,
- [ComAliasName ("ULONG*")] out uint pulSequence,
- [Out, MarshalAs (UnmanagedType.LPWStr)] StringBuilder szName,
- uint cchName,
- [ComAliasName ("ULONG*")] out uint pchName,
- [ComAliasName ("DWORD*")] out uint pdwAttr,
- [ComAliasName ("DWORD*")] out uint pdwCPlusTypeFlag,
- [ComAliasName ("UVCP_CONSTANT*")] out IntPtr ppValue,
- [ComAliasName ("ULONG*")] out uint pcchValue
- );
-
- // STDMETHOD(GetCustomAttributeByName)( // S_OK or error.
- // mdToken tkObj, // [IN] Object with Custom Attribute.
- // LPCWSTR szName, // [IN] Name of desired Custom Attribute.
- // const void **ppData, // [OUT] Put pointer to data here.
- // ULONG *pcbData) PURE; // [OUT] Put size of data here.
- [PreserveSig]
- int GetCustomAttributeByName (
- int tkObj,
- [MarshalAs (UnmanagedType.LPWStr)]string szName,
- out IntPtr ppData,
- out uint pcbData);
-
- // STDMETHOD_(BOOL, IsValidToken)( // True or False.
- // mdToken tk) PURE; // [IN] Given token.
- [PreserveSig]
- bool IsValidToken ([In, MarshalAs (UnmanagedType.U4)] uint tk);
-
- // STDMETHOD(GetNestedClassProps)( // S_OK or error.
- // mdTypeDef tdNestedClass, // [IN] NestedClass token.
- // mdTypeDef *ptdEnclosingClass) PURE; // [OUT] EnclosingClass token.
- void GetNestedClassProps (int tdNestedClass, [ComAliasName ("mdTypeDef*")] out int tdEnclosingClass);
-
+ void GetPropertyProps(int prop,
+ [ComAliasName ("mdTypeDef*")] out int mdTypeDef,
+ [Out, MarshalAs (UnmanagedType.LPWStr)] StringBuilder szProperty,
+ int cchProperty,
+ [ComAliasName ("ULONG*")] out int pchProperty,
+ [ComAliasName ("DWORD*")] out int pdwPropFlags,
+ [ComAliasName ("PCCOR_SIGNATURE*")] out IntPtr ppvSig,
+ [ComAliasName ("ULONG*")] out int pbSig,
+ [ComAliasName ("DWORD*")] out int pdwCPlusTypeFlag,
+ [ComAliasName ("UVCP_CONSTANT*")] out IntPtr ppDefaultValue,
+ [ComAliasName ("ULONG*")] out int pcchDefaultValue,
+ [ComAliasName ("mdMethodDef*")] out int pmdSetter,
+ [ComAliasName ("mdMethodDef*")] out int pmdGetter,
+ [ComAliasName ("mdMethodDef*")] out int rmdOtherMethod,
+ [ComAliasName ("ULONG*")] int cMax, /* must be 1 */
+ [ComAliasName ("ULONG*")] out int pcOtherMethod
+ );
+
+ // STDMETHOD(GetParamProps)( // S_OK or error.
+ // mdParamDef tk, // [IN]The Parameter.
+ // mdMethodDef *pmd, // [OUT] Parent Method token.
+ // ULONG *pulSequence, // [OUT] Parameter sequence.
+ // LPWSTR szName, // [OUT] Put name here.
+ // ULONG cchName, // [OUT] Size of name buffer.
+ // ULONG *pchName, // [OUT] Put actual size of name here.
+ // DWORD *pdwAttr, // [OUT] Put flags here.
+ // DWORD *pdwCPlusTypeFlag, // [OUT] Flag for value type. selected ELEMENT_TYPE_*.
+ // void const **ppValue, // [OUT] Constant value.
+ // ULONG *pcchValue) PURE; // [OUT] size of constant string in chars, 0 for non-strings.
+ void GetParamProps(int tk,
+ [ComAliasName("mdMethodDef*")] out int pmd,
+ [ComAliasName("ULONG*")] out uint pulSequence,
+ [Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder szName,
+ uint cchName,
+ [ComAliasName("ULONG*")] out uint pchName,
+ [ComAliasName("DWORD*")] out uint pdwAttr,
+ [ComAliasName("DWORD*")] out uint pdwCPlusTypeFlag,
+ [ComAliasName("UVCP_CONSTANT*")] out IntPtr ppValue,
+ [ComAliasName("ULONG*")] out uint pcchValue
+ );
+
+ // STDMETHOD(GetCustomAttributeByName)( // S_OK or error.
+ // mdToken tkObj, // [IN] Object with Custom Attribute.
+ // LPCWSTR szName, // [IN] Name of desired Custom Attribute.
+ // const void **ppData, // [OUT] Put pointer to data here.
+ // ULONG *pcbData) PURE; // [OUT] Put size of data here.
+ [PreserveSig]
+ int GetCustomAttributeByName(
+ int tkObj,
+ [MarshalAs(UnmanagedType.LPWStr)]string szName,
+ out IntPtr ppData,
+ out uint pcbData);
+
+ // STDMETHOD_(BOOL, IsValidToken)( // True or False.
+ // mdToken tk) PURE; // [IN] Given token.
+ [PreserveSig] bool IsValidToken([In, MarshalAs(UnmanagedType.U4)] uint tk);
+
+ // STDMETHOD(GetNestedClassProps)( // S_OK or error.
+ // mdTypeDef tdNestedClass, // [IN] NestedClass token.
+ // mdTypeDef *ptdEnclosingClass) PURE; // [OUT] EnclosingClass token.
+ void GetNestedClassProps(int tdNestedClass, [ComAliasName("mdTypeDef*")] out int tdEnclosingClass);
#if !MDBG_FAKE_COM
- // STDMETHOD(GetNativeCallConvFromSig)( // S_OK or error.
- // void const *pvSig, // [IN] Pointer to signature.
- // ULONG cbSig, // [IN] Count of signature bytes.
- // ULONG *pCallConv) PURE; // [OUT] Put calling conv here (see CorPinvokemap).
- void GetNativeCallConvFromSig_ ( );
-
- // STDMETHOD(IsGlobal)( // S_OK or error.
- // mdToken pd, // [IN] Type, Field, or Method token.
- // int *pbGlobal) PURE; // [OUT] Put 1 if global, 0 otherwise.
- void IsGlobal_ ( );
+ // STDMETHOD(GetNativeCallConvFromSig)( // S_OK or error.
+ // void const *pvSig, // [IN] Pointer to signature.
+ // ULONG cbSig, // [IN] Count of signature bytes.
+ // ULONG *pCallConv) PURE; // [OUT] Put calling conv here (see CorPinvokemap).
+ void GetNativeCallConvFromSig_();
+
+ // STDMETHOD(IsGlobal)( // S_OK or error.
+ // mdToken pd, // [IN] Type, Field, or Method token.
+ // int *pbGlobal) PURE; // [OUT] Put 1 if global, 0 otherwise.
+ void IsGlobal_();
#endif
-
- } // IMetadataImport
-
-
-
- // IMetaDataImport2
- [Guid ("FCE5EFA0-8BBA-4f8e-A036-8F2022B08466"),
- InterfaceType (ComInterfaceType.InterfaceIsIUnknown)
- ]
- public interface IMetadataImport2: IMetadataImport
- {
- // <strip>@todo - check if there will be be better way how to declare IMetadataImport2 interface.
- // - Would be very nice if we could avoid this (tried deriving from IM, doesn't work).</strip>
- // Need imports from IMetaDataImport to adjust IM2 vtable slots.
-
- //STDMETHOD_(void, CloseEnum)(HCORENUM hEnum) PURE;
- [PreserveSig]
- new void CloseEnum (IntPtr hEnum);
-
- //STDMETHOD(CountEnum)(HCORENUM hEnum, ULONG *pulCount) PURE;
- new void CountEnum (IntPtr hEnum, [ComAliasName ("ULONG*")] out int pulCount);
-
- //STDMETHOD(ResetEnum)(HCORENUM hEnum, ULONG ulPos) PURE;
- new void ResetEnum (IntPtr hEnum, int ulPos);
-
- //STDMETHOD(EnumTypeDefs)(HCORENUM *phEnum, mdTypeDef rTypeDefs[],ULONG cMax, ULONG *pcTypeDefs) PURE;
- //void EnumTypeDefs(out IntPtr phEnum,int[] rTypeDefs,uint cMax, out uint pcTypeDefs);
- new void EnumTypeDefs (
- ref IntPtr phEnum,
- [ComAliasName ("mdTypeDef*")] out int rTypeDefs,
- uint cMax /*must be 1*/,
- [ComAliasName ("ULONG*")] out uint pcTypeDefs);
-
+ } // IMetadataImport
+
+
+
+ // IMetaDataImport2
+ [Guid("FCE5EFA0-8BBA-4f8e-A036-8F2022B08466"),
+ InterfaceType(ComInterfaceType.InterfaceIsIUnknown)
+ ]
+ [CLSCompliant(false)]
+ public interface IMetadataImport2 : IMetadataImport
+ {
+
+ // Need imports from IMetaDataImport to adjust IM2 vtable slots.
+
+ //STDMETHOD_(void, CloseEnum)(HCORENUM hEnum) PURE;
+ [PreserveSig] new void CloseEnum(IntPtr hEnum);
+
+ //STDMETHOD(CountEnum)(HCORENUM hEnum, ULONG *pulCount) PURE;
+ new void CountEnum(IntPtr hEnum, [ComAliasName("ULONG*")] out int pulCount);
+
+ //STDMETHOD(ResetEnum)(HCORENUM hEnum, ULONG ulPos) PURE;
+ new void ResetEnum(IntPtr hEnum, int ulPos);
+
+ //STDMETHOD(EnumTypeDefs)(HCORENUM *phEnum, mdTypeDef rTypeDefs[],ULONG cMax, ULONG *pcTypeDefs) PURE;
+ //void EnumTypeDefs(out IntPtr phEnum,int[] rTypeDefs,uint cMax, out uint pcTypeDefs);
+ new void EnumTypeDefs(
+ ref IntPtr phEnum,
+ [ComAliasName("mdTypeDef*")] out int rTypeDefs,
+ uint cMax /*must be 1*/,
+ [ComAliasName("ULONG*")] out uint pcTypeDefs);
#if !MDBG_FAKE_COM
- //STDMETHOD(EnumInterfaceImpls)(HCORENUM *phEnum, mdTypeDef td, mdInterfaceImpl rImpls[], ULONG cMax, ULONG* pcImpls) PURE;
- new void EnumInterfaceImpls_ (IntPtr phEnum, int td);
+ //STDMETHOD(EnumInterfaceImpls)(HCORENUM *phEnum, mdTypeDef td, mdInterfaceImpl rImpls[], ULONG cMax, ULONG* pcImpls) PURE;
+ new void EnumInterfaceImpls_(IntPtr phEnum, int td);
- //STDMETHOD(EnumTypeRefs)(HCORENUM *phEnum, mdTypeRef rTypeRefs[], ULONG cMax, ULONG* pcTypeRefs) PURE;
- new void EnumTypeRefs_ ( );
+ //STDMETHOD(EnumTypeRefs)(HCORENUM *phEnum, mdTypeRef rTypeRefs[], ULONG cMax, ULONG* pcTypeRefs) PURE;
+ new void EnumTypeRefs_();
#endif
-
- // STDMETHOD(FindTypeDefByName)( // S_OK or error.
- // LPCWSTR szTypeDef, // [IN] Name of the Type.
- // mdToken tkEnclosingClass, // [IN] TypeDef/TypeRef for Enclosing class.
- // mdTypeDef *ptd) PURE; // [OUT] Put the TypeDef token here.
- new void FindTypeDefByName (
- [In, MarshalAs (UnmanagedType.LPWStr)] string szTypeDef,
- [In] int tkEnclosingClass,
- [ComAliasName ("mdTypeDef*")] [Out] out int token
- );
-
- // STDMETHOD(GetScopeProps)( // S_OK or error.
- // LPWSTR szName, // [OUT] Put the name here.
- // ULONG cchName, // [IN] Size of name buffer in wide chars.
- // ULONG *pchName, // [OUT] Put size of name (wide chars) here.
- // GUID *pmvid) PURE; // [OUT, OPTIONAL] Put MVID here.
- new void GetScopeProps (
- [Out, MarshalAs (UnmanagedType.LPWStr)] StringBuilder szName,
- [In] int cchName,
- [ComAliasName ("ULONG*")] out int pchName,
- out Guid mvid
+ // STDMETHOD(FindTypeDefByName)( // S_OK or error.
+ // LPCWSTR szTypeDef, // [IN] Name of the Type.
+ // mdToken tkEnclosingClass, // [IN] TypeDef/TypeRef for Enclosing class.
+ // mdTypeDef *ptd) PURE; // [OUT] Put the TypeDef token here.
+ new void FindTypeDefByName(
+ [In, MarshalAs(UnmanagedType.LPWStr)] string szTypeDef,
+ [In] int tkEnclosingClass,
+ [ComAliasName("mdTypeDef*")] [Out] out int token
+ );
+
+ // STDMETHOD(GetScopeProps)( // S_OK or error.
+ // LPWSTR szName, // [OUT] Put the name here.
+ // ULONG cchName, // [IN] Size of name buffer in wide chars.
+ // ULONG *pchName, // [OUT] Put size of name (wide chars) here.
+ // GUID *pmvid) PURE; // [OUT, OPTIONAL] Put MVID here.
+ new void GetScopeProps(
+ [Out,MarshalAs(UnmanagedType.LPWStr)] StringBuilder szName,
+ [In] int cchName,
+ [ComAliasName("ULONG*")] out int pchName,
+ out Guid mvid
);
-
#if !MDBG_FAKE_COM
- // STDMETHOD(GetModuleFromScope)( // S_OK.
- // mdModule *pmd) PURE; // [OUT] Put mdModule token here.
- new void GetModuleFromScope_ ( );
+ // STDMETHOD(GetModuleFromScope)( // S_OK.
+ // mdModule *pmd) PURE; // [OUT] Put mdModule token here.
+ new void GetModuleFromScope_();
#endif
-
- // STDMETHOD(GetTypeDefProps)( // S_OK or error.
- // mdTypeDef td, // [IN] TypeDef token for inquiry.
- // LPWSTR szTypeDef, // [OUT] Put name here.
- // ULONG cchTypeDef, // [IN] size of name buffer in wide chars.
- // ULONG *pchTypeDef, // [OUT] put size of name (wide chars) here.
- // DWORD *pdwTypeDefFlags, // [OUT] Put flags here.
- // mdToken *ptkExtends) PURE; // [OUT] Put base class TypeDef/TypeRef here.
- new void GetTypeDefProps ([In] int td,
- [Out, MarshalAs (UnmanagedType.LPWStr)] StringBuilder szTypeDef,
- [In] int cchTypeDef,
- [ComAliasName ("ULONG*")] [Out] out int pchTypeDef,
- [Out, MarshalAs (UnmanagedType.U4)] out System.Reflection.TypeAttributes pdwTypeDefFlags,
- [ComAliasName ("mdToken*")] [Out] out int ptkExtends
- );
-
+ // STDMETHOD(GetTypeDefProps)( // S_OK or error.
+ // mdTypeDef td, // [IN] TypeDef token for inquiry.
+ // LPWSTR szTypeDef, // [OUT] Put name here.
+ // ULONG cchTypeDef, // [IN] size of name buffer in wide chars.
+ // ULONG *pchTypeDef, // [OUT] put size of name (wide chars) here.
+ // DWORD *pdwTypeDefFlags, // [OUT] Put flags here.
+ // mdToken *ptkExtends) PURE; // [OUT] Put base class TypeDef/TypeRef here.
+ new void GetTypeDefProps([In] int td,
+ [Out, MarshalAs( UnmanagedType.LPWStr)] StringBuilder szTypeDef,
+ [In] int cchTypeDef,
+ [ComAliasName("ULONG*")] [Out] out int pchTypeDef,
+ [Out, MarshalAs(UnmanagedType.U4)] out System.Reflection.TypeAttributes pdwTypeDefFlags,
+ [ComAliasName("mdToken*")] [Out] out int ptkExtends
+ );
#if !MDBG_FAKE_COM
- // STDMETHOD(GetInterfaceImplProps)( // S_OK or error.
- // mdInterfaceImpl iiImpl, // [IN] InterfaceImpl token.
- // mdTypeDef *pClass, // [OUT] Put implementing class token here.
- // mdToken *ptkIface) PURE; // [OUT] Put implemented interface token here.
- new void GetInterfaceImplProps_ ( );
+ // STDMETHOD(GetInterfaceImplProps)( // S_OK or error.
+ // mdInterfaceImpl iiImpl, // [IN] InterfaceImpl token.
+ // mdTypeDef *pClass, // [OUT] Put implementing class token here.
+ // mdToken *ptkIface) PURE; // [OUT] Put implemented interface token here.
+ new void GetInterfaceImplProps_();
#endif
-
- // STDMETHOD(GetTypeRefProps)( // S_OK or error.
- // mdTypeRef tr, // [IN] TypeRef token.
- // mdToken *ptkResolutionScope, // [OUT] Resolution scope, ModuleRef or AssemblyRef.
- // LPWSTR szName, // [OUT] Name of the TypeRef.
- // ULONG cchName, // [IN] Size of buffer.
- // ULONG *pchName) PURE; // [OUT] Size of Name.
- new void GetTypeRefProps (
- int tr,
- [ComAliasName ("mdToken*")] [Out] out int ptkResolutionScope,
- [Out, MarshalAs (UnmanagedType.LPWStr)] StringBuilder szName,
- [In] int cchName,
- [ComAliasName ("ULONG*")] out int pchName
- );
-
+ // STDMETHOD(GetTypeRefProps)( // S_OK or error.
+ // mdTypeRef tr, // [IN] TypeRef token.
+ // mdToken *ptkResolutionScope, // [OUT] Resolution scope, ModuleRef or AssemblyRef.
+ // LPWSTR szName, // [OUT] Name of the TypeRef.
+ // ULONG cchName, // [IN] Size of buffer.
+ // ULONG *pchName) PURE; // [OUT] Size of Name.
+ new void GetTypeRefProps(
+ int tr,
+ [ComAliasName("mdToken*")] [Out] out int ptkResolutionScope,
+ [Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder szName,
+ [In] int cchName,
+ [ComAliasName("ULONG*")] out int pchName
+ );
#if !MDBG_FAKE_COM
- // STDMETHOD(ResolveTypeRef)(mdTypeRef tr, REFIID riid, IUnknown **ppIScope, mdTypeDef *ptd) PURE;
- new void ResolveTypeRef_ ( );
-
- // STDMETHOD(EnumMembers)( // S_OK, S_FALSE, or error.
- // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- // mdTypeDef cl, // [IN] TypeDef to scope the enumeration.
- // mdToken rMembers[], // [OUT] Put MemberDefs here.
- // ULONG cMax, // [IN] Max MemberDefs to put.
- // ULONG *pcTokens) PURE; // [OUT] Put # put here.
- new void EnumMembers_ ( );
-
- // STDMETHOD(EnumMembersWithName)( // S_OK, S_FALSE, or error.
- // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- // mdTypeDef cl, // [IN] TypeDef to scope the enumeration.
- // LPCWSTR szName, // [IN] Limit results to those with this name.
- // mdToken rMembers[], // [OUT] Put MemberDefs here.
- // ULONG cMax, // [IN] Max MemberDefs to put.
- // ULONG *pcTokens) PURE; // [OUT] Put # put here.
- new void EnumMembersWithName_ ( );
+ // STDMETHOD(ResolveTypeRef)(mdTypeRef tr, REFIID riid, IUnknown **ppIScope, mdTypeDef *ptd) PURE;
+ new void ResolveTypeRef_();
+
+ // STDMETHOD(EnumMembers)( // S_OK, S_FALSE, or error.
+ // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
+ // mdTypeDef cl, // [IN] TypeDef to scope the enumeration.
+ // mdToken rMembers[], // [OUT] Put MemberDefs here.
+ // ULONG cMax, // [IN] Max MemberDefs to put.
+ // ULONG *pcTokens) PURE; // [OUT] Put # put here.
+ new void EnumMembers_();
+
+ // STDMETHOD(EnumMembersWithName)( // S_OK, S_FALSE, or error.
+ // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
+ // mdTypeDef cl, // [IN] TypeDef to scope the enumeration.
+ // LPCWSTR szName, // [IN] Limit results to those with this name.
+ // mdToken rMembers[], // [OUT] Put MemberDefs here.
+ // ULONG cMax, // [IN] Max MemberDefs to put.
+ // ULONG *pcTokens) PURE; // [OUT] Put # put here.
+ new void EnumMembersWithName_();
#endif
-
- // STDMETHOD(EnumMethods)( // S_OK, S_FALSE, or error.
- // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- // mdTypeDef cl, // [IN] TypeDef to scope the enumeration.
- // mdMethodDef rMethods[], // [OUT] Put MethodDefs here.
- // ULONG cMax, // [IN] Max MethodDefs to put.
- // ULONG *pcTokens) PURE; // [OUT] Put # put here.
- new void EnumMethods (ref IntPtr phEnum,
- int cl,
- [ComAliasName ("mdMethodDef*")] out int mdMethodDef,
- int cMax, /*must be 1*/
- [ComAliasName ("ULONG*")] out int pcTokens
- );
-
+ // STDMETHOD(EnumMethods)( // S_OK, S_FALSE, or error.
+ // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
+ // mdTypeDef cl, // [IN] TypeDef to scope the enumeration.
+ // mdMethodDef rMethods[], // [OUT] Put MethodDefs here.
+ // ULONG cMax, // [IN] Max MethodDefs to put.
+ // ULONG *pcTokens) PURE; // [OUT] Put # put here.
+ new void EnumMethods(ref IntPtr phEnum,
+ int cl,
+ [ComAliasName("mdMethodDef*")] out int mdMethodDef,
+ int cMax, /*must be 1*/
+ [ComAliasName("ULONG*")] out int pcTokens
+ );
#if !MDBG_FAKE_COM
- // STDMETHOD(EnumMethodsWithName)( // S_OK, S_FALSE, or error.
- // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- // mdTypeDef cl, // [IN] TypeDef to scope the enumeration.
- // LPCWSTR szName, // [IN] Limit results to those with this name.
- // mdMethodDef rMethods[], // [OU] Put MethodDefs here.
- // ULONG cMax, // [IN] Max MethodDefs to put.
- // ULONG *pcTokens) PURE; // [OUT] Put # put here.
- new void EnumMethodsWithName_ ( );
+ // STDMETHOD(EnumMethodsWithName)( // S_OK, S_FALSE, or error.
+ // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
+ // mdTypeDef cl, // [IN] TypeDef to scope the enumeration.
+ // LPCWSTR szName, // [IN] Limit results to those with this name.
+ // mdMethodDef rMethods[], // [OU] Put MethodDefs here.
+ // ULONG cMax, // [IN] Max MethodDefs to put.
+ // ULONG *pcTokens) PURE; // [OUT] Put # put here.
+ new void EnumMethodsWithName_();
#endif
-
- // STDMETHOD(EnumFields)( // S_OK, S_FALSE, or error.
- // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- // mdTypeDef cl, // [IN] TypeDef to scope the enumeration.
- // mdFieldDef rFields[], // [OUT] Put FieldDefs here.
- // ULONG cMax, // [IN] Max FieldDefs to put.
- // ULONG *pcTokens) PURE; // [OUT] Put # put here.
- /*[PreserveSig]*/
- new void EnumFields (ref IntPtr phEnum,
- int cl,
- [ComAliasName ("mdFieldDef*")] out int mdFieldDef,
- int cMax /*must be 1*/,
- [ComAliasName ("ULONG*")] out uint pcTokens);
-
+ // STDMETHOD(EnumFields)( // S_OK, S_FALSE, or error.
+ // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
+ // mdTypeDef cl, // [IN] TypeDef to scope the enumeration.
+ // mdFieldDef rFields[], // [OUT] Put FieldDefs here.
+ // ULONG cMax, // [IN] Max FieldDefs to put.
+ // ULONG *pcTokens) PURE; // [OUT] Put # put here.
+ /*[PreserveSig]*/
+ new void EnumFields(ref IntPtr phEnum,
+ int cl,
+ [ComAliasName("mdFieldDef*")] out int mdFieldDef,
+ int cMax /*must be 1*/,
+ [ComAliasName("ULONG*")] out uint pcTokens);
#if !MDBG_FAKE_COM
- // STDMETHOD(EnumFieldsWithName)( // S_OK, S_FALSE, or error.
- // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- // mdTypeDef cl, // [IN] TypeDef to scope the enumeration.
- // LPCWSTR szName, // [IN] Limit results to those with this name.
- // mdFieldDef rFields[], // [OUT] Put MemberDefs here.
- // ULONG cMax, // [IN] Max MemberDefs to put.
- // ULONG *pcTokens) PURE; // [OUT] Put # put here.
- new void EnumFieldsWithName_ ( );
+ // STDMETHOD(EnumFieldsWithName)( // S_OK, S_FALSE, or error.
+ // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
+ // mdTypeDef cl, // [IN] TypeDef to scope the enumeration.
+ // LPCWSTR szName, // [IN] Limit results to those with this name.
+ // mdFieldDef rFields[], // [OUT] Put MemberDefs here.
+ // ULONG cMax, // [IN] Max MemberDefs to put.
+ // ULONG *pcTokens) PURE; // [OUT] Put # put here.
+ new void EnumFieldsWithName_();
#endif
-
- // STDMETHOD(EnumParams)( // S_OK, S_FALSE, or error.
- // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- // mdMethodDef mb, // [IN] MethodDef to scope the enumeration.
- // mdParamDef rParams[], // [OUT] Put ParamDefs here.
- // ULONG cMax, // [IN] Max ParamDefs to put.
- // ULONG *pcTokens) PURE; // [OUT] Put # put here.
- new void EnumParams (ref IntPtr phEnum,
- int mdMethodDef,
- [ComAliasName ("mdParamDef*")] out int mdParamDef,
- int cMax /*must be 1*/,
- [ComAliasName ("ULONG*")] out uint pcTokens);
-
+ // STDMETHOD(EnumParams)( // S_OK, S_FALSE, or error.
+ // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
+ // mdMethodDef mb, // [IN] MethodDef to scope the enumeration.
+ // mdParamDef rParams[], // [OUT] Put ParamDefs here.
+ // ULONG cMax, // [IN] Max ParamDefs to put.
+ // ULONG *pcTokens) PURE; // [OUT] Put # put here.
+ new void EnumParams(ref IntPtr phEnum,
+ int mdMethodDef,
+ [ComAliasName("mdParamDef*")] out int mdParamDef,
+ int cMax /*must be 1*/,
+ [ComAliasName("ULONG*")] out uint pcTokens);
#if !MDBG_FAKE_COM
- // STDMETHOD(EnumMemberRefs)( // S_OK, S_FALSE, or error.
- // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- // mdToken tkParent, // [IN] Parent token to scope the enumeration.
- // mdMemberRef rMemberRefs[], // [OUT] Put MemberRefs here.
- // ULONG cMax, // [IN] Max MemberRefs to put.
- // ULONG *pcTokens) PURE; // [OUT] Put # put here.
- new void EnumMemberRefs_ ( );
-
- // STDMETHOD(EnumMethodImpls)( // S_OK, S_FALSE, or error
- // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- // mdTypeDef td, // [IN] TypeDef to scope the enumeration.
- // mdToken rMethodBody[], // [OUT] Put Method Body tokens here.
- // mdToken rMethodDecl[], // [OUT] Put Method Declaration tokens here.
- // ULONG cMax, // [IN] Max tokens to put.
- // ULONG *pcTokens) PURE; // [OUT] Put # put here.
- new void EnumMethodImpls_ ( );
-
- // STDMETHOD(EnumPermissionSets)( // S_OK, S_FALSE, or error.
- // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- // mdToken tk, // [IN] if !NIL, token to scope the enumeration.
- // DWORD dwActions, // [IN] if !0, return only these actions.
- // mdPermission rPermission[], // [OUT] Put Permissions here.
- // ULONG cMax, // [IN] Max Permissions to put.
- // ULONG *pcTokens) PURE; // [OUT] Put # put here.
- new void EnumPermissionSets_ ( );
-
- // STDMETHOD(FindMember)(
- // mdTypeDef td, // [IN] given typedef
- // LPCWSTR szName, // [IN] member name
- // PCCOR_SIGNATURE pvSigBlob, // [IN] point to a blob value of CLR signature
- // ULONG cbSigBlob, // [IN] count of bytes in the signature blob
- // mdToken *pmb) PURE; // [OUT] matching memberdef
- new void FindMember_ ( );
-
- // STDMETHOD(FindMethod)(
- // mdTypeDef td, // [IN] given typedef
- // LPCWSTR szName, // [IN] member name
- // PCCOR_SIGNATURE pvSigBlob, // [IN] point to a blob value of CLR signature
- // ULONG cbSigBlob, // [IN] count of bytes in the signature blob
- // mdMethodDef *pmb) PURE; // [OUT] matching memberdef
- new void FindMethod_ ( );
-
- // STDMETHOD(FindField)(
- // mdTypeDef td, // [IN] given typedef
- // LPCWSTR szName, // [IN] member name
- // PCCOR_SIGNATURE pvSigBlob, // [IN] point to a blob value of CLR signature
- // ULONG cbSigBlob, // [IN] count of bytes in the signature blob
- // mdFieldDef *pmb) PURE; // [OUT] matching memberdef
- new void FindField_ ( );
-
- // STDMETHOD(FindMemberRef)(
- // mdTypeRef td, // [IN] given typeRef
- // LPCWSTR szName, // [IN] member name
- // PCCOR_SIGNATURE pvSigBlob, // [IN] point to a blob value of CLR signature
- // ULONG cbSigBlob, // [IN] count of bytes in the signature blob
- // mdMemberRef *pmr) PURE; // [OUT] matching memberref
- new void FindMemberRef_ ( );
+ // STDMETHOD(EnumMemberRefs)( // S_OK, S_FALSE, or error.
+ // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
+ // mdToken tkParent, // [IN] Parent token to scope the enumeration.
+ // mdMemberRef rMemberRefs[], // [OUT] Put MemberRefs here.
+ // ULONG cMax, // [IN] Max MemberRefs to put.
+ // ULONG *pcTokens) PURE; // [OUT] Put # put here.
+ new void EnumMemberRefs_();
+
+ // STDMETHOD(EnumMethodImpls)( // S_OK, S_FALSE, or error
+ // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
+ // mdTypeDef td, // [IN] TypeDef to scope the enumeration.
+ // mdToken rMethodBody[], // [OUT] Put Method Body tokens here.
+ // mdToken rMethodDecl[], // [OUT] Put Method Declaration tokens here.
+ // ULONG cMax, // [IN] Max tokens to put.
+ // ULONG *pcTokens) PURE; // [OUT] Put # put here.
+ new void EnumMethodImpls_();
+
+ // STDMETHOD(EnumPermissionSets)( // S_OK, S_FALSE, or error.
+ // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
+ // mdToken tk, // [IN] if !NIL, token to scope the enumeration.
+ // DWORD dwActions, // [IN] if !0, return only these actions.
+ // mdPermission rPermission[], // [OUT] Put Permissions here.
+ // ULONG cMax, // [IN] Max Permissions to put.
+ // ULONG *pcTokens) PURE; // [OUT] Put # put here.
+ new void EnumPermissionSets_();
+
+ // STDMETHOD(FindMember)(
+ // mdTypeDef td, // [IN] given typedef
+ // LPCWSTR szName, // [IN] member name
+ // PCCOR_SIGNATURE pvSigBlob, // [IN] point to a blob value of CLR signature
+ // ULONG cbSigBlob, // [IN] count of bytes in the signature blob
+ // mdToken *pmb) PURE; // [OUT] matching memberdef
+ new void FindMember_();
+
+ // STDMETHOD(FindMethod)(
+ // mdTypeDef td, // [IN] given typedef
+ // LPCWSTR szName, // [IN] member name
+ // PCCOR_SIGNATURE pvSigBlob, // [IN] point to a blob value of CLR signature
+ // ULONG cbSigBlob, // [IN] count of bytes in the signature blob
+ // mdMethodDef *pmb) PURE; // [OUT] matching memberdef
+ new void FindMethod_();
+
+ // STDMETHOD(FindField)(
+ // mdTypeDef td, // [IN] given typedef
+ // LPCWSTR szName, // [IN] member name
+ // PCCOR_SIGNATURE pvSigBlob, // [IN] point to a blob value of CLR signature
+ // ULONG cbSigBlob, // [IN] count of bytes in the signature blob
+ // mdFieldDef *pmb) PURE; // [OUT] matching memberdef
+ new void FindField_();
+
+ // STDMETHOD(FindMemberRef)(
+ // mdTypeRef td, // [IN] given typeRef
+ // LPCWSTR szName, // [IN] member name
+ // PCCOR_SIGNATURE pvSigBlob, // [IN] point to a blob value of CLR signature
+ // ULONG cbSigBlob, // [IN] count of bytes in the signature blob
+ // mdMemberRef *pmr) PURE; // [OUT] matching memberref
+ new void FindMemberRef_();
#endif
-
- // STDMETHOD (GetMethodProps)(
- // mdMethodDef mb, // The method for which to get props.
- // mdTypeDef *pClass, // Put method's class here.
- // LPWSTR szMethod, // Put method's name here.
- // ULONG cchMethod, // Size of szMethod buffer in wide chars.
- // ULONG *pchMethod, // Put actual size here
- // DWORD *pdwAttr, // Put flags here.
- // PCCOR_SIGNATURE *ppvSigBlob, // [OUT] point to the blob value of meta data
- // ULONG *pcbSigBlob, // [OUT] actual size of signature blob
- // ULONG *pulCodeRVA, // [OUT] codeRVA
- // DWORD *pdwImplFlags) PURE; // [OUT] Impl. Flags
- new void GetMethodProps ([In] uint md,
- [ComAliasName ("mdTypeDef*")] [Out] out int pClass,
- [Out, MarshalAs (UnmanagedType.LPWStr)] StringBuilder szMethod,
- [In] int cchMethod,
- [ComAliasName ("ULONG*")] [Out] out int pchMethod,
- [ComAliasName ("DWORD*")] [Out] out uint pdwAttr,
- [ComAliasName ("PCCOR_SIGNATURE*")] [Out] out IntPtr ppvSigBlob,
- [ComAliasName ("ULONG*")] [Out] out uint pcbSigBlob,
- [ComAliasName ("ULONG*")] [Out] out uint pulCodeRVA,
- [ComAliasName ("DWORD*")] [Out] out uint pdwImplFlags
- );
-
- // STDMETHOD(GetMemberRefProps)( // S_OK or error.
- // mdMemberRef mr, // [IN] given memberref
- // mdToken *ptk, // [OUT] Put classref or classdef here.
- // LPWSTR szMember, // [OUT] buffer to fill for member's name
- // ULONG cchMember, // [IN] the count of char of szMember
- // ULONG *pchMember, // [OUT] actual count of char in member name
- // PCCOR_SIGNATURE *ppvSigBlob, // [OUT] point to meta data blob value
- // ULONG *pbSig) PURE; // [OUT] actual size of signature blob
- new void GetMemberRefProps ([In] uint mr,
- [ComAliasName ("mdMemberRef*")] [Out] out int ptk,
- [Out, MarshalAs (UnmanagedType.LPWStr)] StringBuilder szMember,
- [In] int cchMember,
- [ComAliasName ("ULONG*")] [Out] out uint pchMember,
- [ComAliasName ("PCCOR_SIGNATURE*")] [Out] out IntPtr ppvSigBlob,
- [ComAliasName ("ULONG*")] [Out] out int pbSig
- );
-
+ // STDMETHOD (GetMethodProps)(
+ // mdMethodDef mb, // The method for which to get props.
+ // mdTypeDef *pClass, // Put method's class here.
+ // LPWSTR szMethod, // Put method's name here.
+ // ULONG cchMethod, // Size of szMethod buffer in wide chars.
+ // ULONG *pchMethod, // Put actual size here
+ // DWORD *pdwAttr, // Put flags here.
+ // PCCOR_SIGNATURE *ppvSigBlob, // [OUT] point to the blob value of meta data
+ // ULONG *pcbSigBlob, // [OUT] actual size of signature blob
+ // ULONG *pulCodeRVA, // [OUT] codeRVA
+ // DWORD *pdwImplFlags) PURE; // [OUT] Impl. Flags
+ new void GetMethodProps([In] uint md,
+ [ComAliasName("mdTypeDef*")] [Out] out int pClass,
+ [Out, MarshalAs( UnmanagedType.LPWStr)] StringBuilder szMethod,
+ [In] int cchMethod,
+ [ComAliasName("ULONG*")] [Out] out int pchMethod,
+ [ComAliasName("DWORD*")] [Out] out uint pdwAttr,
+ [ComAliasName("PCCOR_SIGNATURE*")] [Out] out IntPtr ppvSigBlob,
+ [ComAliasName("ULONG*")] [Out] out uint pcbSigBlob,
+ [ComAliasName("ULONG*")] [Out] out uint pulCodeRVA,
+ [ComAliasName("DWORD*")] [Out] out uint pdwImplFlags
+ );
+
+ // STDMETHOD(GetMemberRefProps)( // S_OK or error.
+ // mdMemberRef mr, // [IN] given memberref
+ // mdToken *ptk, // [OUT] Put classref or classdef here.
+ // LPWSTR szMember, // [OUT] buffer to fill for member's name
+ // ULONG cchMember, // [IN] the count of char of szMember
+ // ULONG *pchMember, // [OUT] actual count of char in member name
+ // PCCOR_SIGNATURE *ppvSigBlob, // [OUT] point to meta data blob value
+ // ULONG *pbSig) PURE; // [OUT] actual size of signature blob
+ new void GetMemberRefProps([In] uint mr,
+ [ComAliasName("mdMemberRef*")] [Out] out int ptk,
+ [Out,MarshalAs(UnmanagedType.LPWStr)] StringBuilder szMember,
+ [In] int cchMember,
+ [ComAliasName("ULONG*")] [Out] out uint pchMember,
+ [ComAliasName("PCCOR_SIGNATURE*")] [Out] out IntPtr ppvSigBlob,
+ [ComAliasName("ULONG*")] [Out] out int pbSig
+ );
+
+ // STDMETHOD(EnumProperties)( // S_OK, S_FALSE, or error.
+ // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
+ // mdTypeDef td, // [IN] TypeDef to scope the enumeration.
+ // mdProperty rProperties[], // [OUT] Put Properties here.
+ // ULONG cMax, // [IN] Max properties to put.
+ // ULONG *pcProperties) PURE; // [OUT] Put # put here.
+ new void EnumProperties(ref IntPtr phEnum,
+ int td,
+ [ComAliasName("mdProperty*")] out int mdProperty,
+ int cMax /*must be 1*/,
+ [ComAliasName("ULONG*")] out uint pcProperties);
#if !MDBG_FAKE_COM
- // STDMETHOD(EnumProperties)( // S_OK, S_FALSE, or error.
- // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- // mdTypeDef td, // [IN] TypeDef to scope the enumeration.
- // mdProperty rProperties[], // [OUT] Put Properties here.
- // ULONG cMax, // [IN] Max properties to put.
- // ULONG *pcProperties) PURE; // [OUT] Put # put here.
- new void EnumProperties (ref IntPtr phEnum,
- int td,
- [ComAliasName ("mdProperty*")] out int mdProperty,
- int cMax /*must be 1*/,
- [ComAliasName ("ULONG*")] out uint pcProperties);
-
- // STDMETHOD(EnumEvents)( // S_OK, S_FALSE, or error.
- // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- // mdTypeDef td, // [IN] TypeDef to scope the enumeration.
- // mdEvent rEvents[], // [OUT] Put events here.
- // ULONG cMax, // [IN] Max events to put.
- // ULONG *pcEvents) PURE; // [OUT] Put # put here.
- new void EnumEvents_ ( );
-
- // STDMETHOD(GetEventProps)( // S_OK, S_FALSE, or error.
- // mdEvent ev, // [IN] event token
- // mdTypeDef *pClass, // [OUT] typedef containing the event declarion.
- // LPCWSTR szEvent, // [OUT] Event name
- // ULONG cchEvent, // [IN] the count of wchar of szEvent
- // ULONG *pchEvent, // [OUT] actual count of wchar for event's name
- // DWORD *pdwEventFlags, // [OUT] Event flags.
- // mdToken *ptkEventType, // [OUT] EventType class
- // mdMethodDef *pmdAddOn, // [OUT] AddOn method of the event
- // mdMethodDef *pmdRemoveOn, // [OUT] RemoveOn method of the event
- // mdMethodDef *pmdFire, // [OUT] Fire method of the event
- // mdMethodDef rmdOtherMethod[], // [OUT] other method of the event
- // ULONG cMax, // [IN] size of rmdOtherMethod
- // ULONG *pcOtherMethod) PURE; // [OUT] total number of other method of this event
- new void GetEventProps_ ( );
-
- // STDMETHOD(EnumMethodSemantics)( // S_OK, S_FALSE, or error.
- // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- // mdMethodDef mb, // [IN] MethodDef to scope the enumeration.
- // mdToken rEventProp[], // [OUT] Put Event/Property here.
- // ULONG cMax, // [IN] Max properties to put.
- // ULONG *pcEventProp) PURE; // [OUT] Put # put here.
- new void EnumMethodSemantics_ ( );
-
- // STDMETHOD(GetMethodSemantics)( // S_OK, S_FALSE, or error.
- // mdMethodDef mb, // [IN] method token
- // mdToken tkEventProp, // [IN] event/property token.
- // DWORD *pdwSemanticsFlags) PURE; // [OUT] the role flags for the method/propevent pair
- new void GetMethodSemantics_ ( );
-
- // STDMETHOD(GetClassLayout) (
- // mdTypeDef td, // [IN] give typedef
- // DWORD *pdwPackSize, // [OUT] 1, 2, 4, 8, or 16
- // COR_FIELD_OFFSET rFieldOffset[], // [OUT] field offset array
- // ULONG cMax, // [IN] size of the array
- // ULONG *pcFieldOffset, // [OUT] needed array size
- // ULONG *pulClassSize) PURE; // [OUT] the size of the class
- new void GetClassLayout_ ( );
-
- // STDMETHOD(GetFieldMarshal) (
- // mdToken tk, // [IN] given a field's memberdef
- // PCCOR_SIGNATURE *ppvNativeType, // [OUT] native type of this field
- // ULONG *pcbNativeType) PURE; // [OUT] the count of bytes of *ppvNativeType
- new void GetFieldMarshal_ ( );
-
- // STDMETHOD(GetRVA)( // S_OK or error.
- // mdToken tk, // Member for which to set offset
- // ULONG *pulCodeRVA, // The offset
- // DWORD *pdwImplFlags) PURE; // the implementation flags
- new void GetRVA_ ( );
-
- // STDMETHOD(GetPermissionSetProps) (
- // mdPermission pm, // [IN] the permission token.
- // DWORD *pdwAction, // [OUT] CorDeclSecurity.
- // void const **ppvPermission, // [OUT] permission blob.
- // ULONG *pcbPermission) PURE; // [OUT] count of bytes of pvPermission.
- new void GetPermissionSetProps_ ( );
-
- // STDMETHOD(GetSigFromToken)( // S_OK or error.
- // mdSignature mdSig, // [IN] Signature token.
- // PCCOR_SIGNATURE *ppvSig, // [OUT] return pointer to token.
- // ULONG *pcbSig) PURE; // [OUT] return size of signature.
- new void GetSigFromToken_ ( );
-
- // STDMETHOD(GetModuleRefProps)( // S_OK or error.
- // mdModuleRef mur, // [IN] moduleref token.
- // LPWSTR szName, // [OUT] buffer to fill with the moduleref name.
- // ULONG cchName, // [IN] size of szName in wide characters.
- // ULONG *pchName) PURE; // [OUT] actual count of characters in the name.
- new void GetModuleRefProps_ ( );
-
- // STDMETHOD(EnumModuleRefs)( // S_OK or error.
- // HCORENUM *phEnum, // [IN|OUT] pointer to the enum.
- // mdModuleRef rModuleRefs[], // [OUT] put modulerefs here.
- // ULONG cmax, // [IN] max memberrefs to put.
- // ULONG *pcModuleRefs) PURE; // [OUT] put # put here.
- new void EnumModuleRefs_ ( );
-
- // STDMETHOD(GetTypeSpecFromToken)( // S_OK or error.
- // mdTypeSpec typespec, // [IN] TypeSpec token.
- // PCCOR_SIGNATURE *ppvSig, // [OUT] return pointer to TypeSpec signature
- // ULONG *pcbSig) PURE; // [OUT] return size of signature.
- new void GetTypeSpecFromToken_ ( );
-
- // STDMETHOD(GetNameFromToken)( // Not Recommended! May be removed!
- // mdToken tk, // [IN] Token to get name from. Must have a name.
- // MDUTF8CSTR *pszUtf8NamePtr) PURE; // [OUT] Return pointer to UTF8 name in heap.
- new void GetNameFromToken_ ( );
-
-
- // STDMETHOD(EnumUnresolvedMethods)( // S_OK, S_FALSE, or error.
- // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- // mdToken rMethods[], // [OUT] Put MemberDefs here.
- // ULONG cMax, // [IN] Max MemberDefs to put.
- // ULONG *pcTokens) PURE; // [OUT] Put # put here.
- new void EnumUnresolvedMethods_ ( );
-#endif
-
- // STDMETHOD(GetUserString)( // S_OK or error.
- // mdString stk, // [IN] String token.
- // LPWSTR szString, // [OUT] Copy of string.
- // ULONG cchString, // [IN] Max chars of room in szString.
- // ULONG *pchString) PURE; // [OUT] How many chars in actual string.
- new void GetUserString ([In] int stk,
- [Out, MarshalAs (UnmanagedType.LPWStr)] StringBuilder szString,
- [In] int cchString,
- [ComAliasName ("ULONG*")] out int pchString
- );
-
-#if !MDBG_FAKE_COM
- // STDMETHOD(GetPinvokeMap)( // S_OK or error.
- // mdToken tk, // [IN] FieldDef or MethodDef.
- // DWORD *pdwMappingFlags, // [OUT] Flags used for mapping.
- // LPWSTR szImportName, // [OUT] Import name.
- // ULONG cchImportName, // [IN] Size of the name buffer.
- // ULONG *pchImportName, // [OUT] Actual number of characters stored.
- // mdModuleRef *pmrImportDLL) PURE; // [OUT] ModuleRef token for the target DLL.
- new void GetPinvokeMap_ ( );
-
- // STDMETHOD(EnumSignatures)( // S_OK or error.
- // HCORENUM *phEnum, // [IN|OUT] pointer to the enum.
- // mdSignature rSignatures[], // [OUT] put signatures here.
- // ULONG cmax, // [IN] max signatures to put.
- // ULONG *pcSignatures) PURE; // [OUT] put # put here.
- new void EnumSignatures_ ( );
-
- // STDMETHOD(EnumTypeSpecs)( // S_OK or error.
- // HCORENUM *phEnum, // [IN|OUT] pointer to the enum.
- // mdTypeSpec rTypeSpecs[], // [OUT] put TypeSpecs here.
- // ULONG cmax, // [IN] max TypeSpecs to put.
- // ULONG *pcTypeSpecs) PURE; // [OUT] put # put here.
- new void EnumTypeSpecs_ ( );
-
- // STDMETHOD(EnumUserStrings)( // S_OK or error.
- // HCORENUM *phEnum, // [IN/OUT] pointer to the enum.
- // mdString rStrings[], // [OUT] put Strings here.
- // ULONG cmax, // [IN] max Strings to put.
- // ULONG *pcStrings) PURE; // [OUT] put # put here.
- new void EnumUserStrings_ ( );
-
- // STDMETHOD(GetParamForMethodIndex)( // S_OK or error.
- // mdMethodDef md, // [IN] Method token.
- // ULONG ulParamSeq, // [IN] Parameter sequence.
- // mdParamDef *ppd) PURE; // [IN] Put Param token here.
- new void GetParamForMethodIndex_ ( );
+ // STDMETHOD(EnumEvents)( // S_OK, S_FALSE, or error.
+ // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
+ // mdTypeDef td, // [IN] TypeDef to scope the enumeration.
+ // mdEvent rEvents[], // [OUT] Put events here.
+ // ULONG cMax, // [IN] Max events to put.
+ // ULONG *pcEvents) PURE; // [OUT] Put # put here.
+ new void EnumEvents_();
+
+ // STDMETHOD(GetEventProps)( // S_OK, S_FALSE, or error.
+ // mdEvent ev, // [IN] event token
+ // mdTypeDef *pClass, // [OUT] typedef containing the event declarion.
+ // LPCWSTR szEvent, // [OUT] Event name
+ // ULONG cchEvent, // [IN] the count of wchar of szEvent
+ // ULONG *pchEvent, // [OUT] actual count of wchar for event's name
+ // DWORD *pdwEventFlags, // [OUT] Event flags.
+ // mdToken *ptkEventType, // [OUT] EventType class
+ // mdMethodDef *pmdAddOn, // [OUT] AddOn method of the event
+ // mdMethodDef *pmdRemoveOn, // [OUT] RemoveOn method of the event
+ // mdMethodDef *pmdFire, // [OUT] Fire method of the event
+ // mdMethodDef rmdOtherMethod[], // [OUT] other method of the event
+ // ULONG cMax, // [IN] size of rmdOtherMethod
+ // ULONG *pcOtherMethod) PURE; // [OUT] total number of other method of this event
+ new void GetEventProps_();
+
+ // STDMETHOD(EnumMethodSemantics)( // S_OK, S_FALSE, or error.
+ // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
+ // mdMethodDef mb, // [IN] MethodDef to scope the enumeration.
+ // mdToken rEventProp[], // [OUT] Put Event/Property here.
+ // ULONG cMax, // [IN] Max properties to put.
+ // ULONG *pcEventProp) PURE; // [OUT] Put # put here.
+ new void EnumMethodSemantics_();
+
+ // STDMETHOD(GetMethodSemantics)( // S_OK, S_FALSE, or error.
+ // mdMethodDef mb, // [IN] method token
+ // mdToken tkEventProp, // [IN] event/property token.
+ // DWORD *pdwSemanticsFlags) PURE; // [OUT] the role flags for the method/propevent pair
+ new void GetMethodSemantics_();
+
+ // STDMETHOD(GetClassLayout) (
+ // mdTypeDef td, // [IN] give typedef
+ // DWORD *pdwPackSize, // [OUT] 1, 2, 4, 8, or 16
+ // COR_FIELD_OFFSET rFieldOffset[], // [OUT] field offset array
+ // ULONG cMax, // [IN] size of the array
+ // ULONG *pcFieldOffset, // [OUT] needed array size
+ // ULONG *pulClassSize) PURE; // [OUT] the size of the class
+ new void GetClassLayout_();
+
+ // STDMETHOD(GetFieldMarshal) (
+ // mdToken tk, // [IN] given a field's memberdef
+ // PCCOR_SIGNATURE *ppvNativeType, // [OUT] native type of this field
+ // ULONG *pcbNativeType) PURE; // [OUT] the count of bytes of *ppvNativeType
+ new void GetFieldMarshal_();
+
+ // STDMETHOD(GetRVA)( // S_OK or error.
+ // mdToken tk, // Member for which to set offset
+ // ULONG *pulCodeRVA, // The offset
+ // DWORD *pdwImplFlags) PURE; // the implementation flags
+ new void GetRVA_();
+
+ // STDMETHOD(GetPermissionSetProps) (
+ // mdPermission pm, // [IN] the permission token.
+ // DWORD *pdwAction, // [OUT] CorDeclSecurity.
+ // void const **ppvPermission, // [OUT] permission blob.
+ // ULONG *pcbPermission) PURE; // [OUT] count of bytes of pvPermission.
+ new void GetPermissionSetProps_();
+
+ // STDMETHOD(GetSigFromToken)( // S_OK or error.
+ // mdSignature mdSig, // [IN] Signature token.
+ // PCCOR_SIGNATURE *ppvSig, // [OUT] return pointer to token.
+ // ULONG *pcbSig) PURE; // [OUT] return size of signature.
+ new void GetSigFromToken_();
+
+ // STDMETHOD(GetModuleRefProps)( // S_OK or error.
+ // mdModuleRef mur, // [IN] moduleref token.
+ // LPWSTR szName, // [OUT] buffer to fill with the moduleref name.
+ // ULONG cchName, // [IN] size of szName in wide characters.
+ // ULONG *pchName) PURE; // [OUT] actual count of characters in the name.
+ new void GetModuleRefProps_();
+
+ // STDMETHOD(EnumModuleRefs)( // S_OK or error.
+ // HCORENUM *phEnum, // [IN|OUT] pointer to the enum.
+ // mdModuleRef rModuleRefs[], // [OUT] put modulerefs here.
+ // ULONG cmax, // [IN] max memberrefs to put.
+ // ULONG *pcModuleRefs) PURE; // [OUT] put # put here.
+ new void EnumModuleRefs_();
+
+ // STDMETHOD(GetTypeSpecFromToken)( // S_OK or error.
+ // mdTypeSpec typespec, // [IN] TypeSpec token.
+ // PCCOR_SIGNATURE *ppvSig, // [OUT] return pointer to TypeSpec signature
+ // ULONG *pcbSig) PURE; // [OUT] return size of signature.
+ new void GetTypeSpecFromToken_();
+
+ // STDMETHOD(GetNameFromToken)( // Not Recommended! May be removed!
+ // mdToken tk, // [IN] Token to get name from. Must have a name.
+ // MDUTF8CSTR *pszUtf8NamePtr) PURE; // [OUT] Return pointer to UTF8 name in heap.
+ new void GetNameFromToken_();
+
+
+ // STDMETHOD(EnumUnresolvedMethods)( // S_OK, S_FALSE, or error.
+ // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
+ // mdToken rMethods[], // [OUT] Put MemberDefs here.
+ // ULONG cMax, // [IN] Max MemberDefs to put.
+ // ULONG *pcTokens) PURE; // [OUT] Put # put here.
+ new void EnumUnresolvedMethods_();
#endif
-
- // STDMETHOD(EnumCustomAttributes)( // S_OK or error.
- // HCORENUM *phEnum, // [IN, OUT] COR enumerator.
- // mdToken tk, // [IN] Token to scope the enumeration, 0 for all.
- // mdToken tkType, // [IN] Type of interest, 0 for all.
- // mdCustomAttribute rCustomAttributes[], // [OUT] Put custom attribute tokens here.
- // ULONG cMax, // [IN] Size of rCustomAttributes.
- // ULONG *pcCustomAttributes) PURE; // [OUT, OPTIONAL] Put count of token values here.
- new void EnumCustomAttributes (ref IntPtr phEnum,
- int tk,
- int tkType,
- [ComAliasName ("mdCustomAttribute*")]out int mdCustomAttribute,
- uint cMax /*must be 1*/,
- [ComAliasName ("ULONG*")]out uint pcTokens
- );
-
+ // STDMETHOD(GetUserString)( // S_OK or error.
+ // mdString stk, // [IN] String token.
+ // LPWSTR szString, // [OUT] Copy of string.
+ // ULONG cchString, // [IN] Max chars of room in szString.
+ // ULONG *pchString) PURE; // [OUT] How many chars in actual string.
+ new void GetUserString([In] int stk,
+ [Out,MarshalAs(UnmanagedType.LPWStr)] StringBuilder szString,
+ [In] int cchString,
+ [ComAliasName("ULONG*")] out int pchString
+ );
#if !MDBG_FAKE_COM
- // STDMETHOD(GetCustomAttributeProps)( // S_OK or error.
- // mdCustomAttribute cv, // [IN] CustomAttribute token.
- // mdToken *ptkObj, // [OUT, OPTIONAL] Put object token here.
- // mdToken *ptkType, // [OUT, OPTIONAL] Put AttrType token here.
- // void const **ppBlob, // [OUT, OPTIONAL] Put pointer to data here.
- // ULONG *pcbSize) PURE; // [OUT, OPTIONAL] Put size of date here.
- new void GetCustomAttributeProps_ ( );
-
- // STDMETHOD(FindTypeRef)(
- // mdToken tkResolutionScope, // [IN] ModuleRef, AssemblyRef or TypeRef.
- // LPCWSTR szName, // [IN] TypeRef Name.
- // mdTypeRef *ptr) PURE; // [OUT] matching TypeRef.
- new void FindTypeRef_ ( );
-
- // STDMETHOD(GetMemberProps)(
- // mdToken mb, // The member for which to get props.
- // mdTypeDef *pClass, // Put member's class here.
- // LPWSTR szMember, // Put member's name here.
- // ULONG cchMember, // Size of szMember buffer in wide chars.
- // ULONG *pchMember, // Put actual size here
- // DWORD *pdwAttr, // Put flags here.
- // PCCOR_SIGNATURE *ppvSigBlob, // [OUT] point to the blob value of meta data
- // ULONG *pcbSigBlob, // [OUT] actual size of signature blob
- // ULONG *pulCodeRVA, // [OUT] codeRVA
- // DWORD *pdwImplFlags, // [OUT] Impl. Flags
- // DWORD *pdwCPlusTypeFlag, // [OUT] flag for value type. selected ELEMENT_TYPE_*
- // void const **ppValue, // [OUT] constant value
- // ULONG *pcchValue) PURE; // [OUT] size of constant string in chars, 0 for non-strings.
- new void GetMemberProps_ ( );
+ // STDMETHOD(GetPinvokeMap)( // S_OK or error.
+ // mdToken tk, // [IN] FieldDef or MethodDef.
+ // DWORD *pdwMappingFlags, // [OUT] Flags used for mapping.
+ // LPWSTR szImportName, // [OUT] Import name.
+ // ULONG cchImportName, // [IN] Size of the name buffer.
+ // ULONG *pchImportName, // [OUT] Actual number of characters stored.
+ // mdModuleRef *pmrImportDLL) PURE; // [OUT] ModuleRef token for the target DLL.
+ new void GetPinvokeMap_();
+
+ // STDMETHOD(EnumSignatures)( // S_OK or error.
+ // HCORENUM *phEnum, // [IN|OUT] pointer to the enum.
+ // mdSignature rSignatures[], // [OUT] put signatures here.
+ // ULONG cmax, // [IN] max signatures to put.
+ // ULONG *pcSignatures) PURE; // [OUT] put # put here.
+ new void EnumSignatures_();
+
+ // STDMETHOD(EnumTypeSpecs)( // S_OK or error.
+ // HCORENUM *phEnum, // [IN|OUT] pointer to the enum.
+ // mdTypeSpec rTypeSpecs[], // [OUT] put TypeSpecs here.
+ // ULONG cmax, // [IN] max TypeSpecs to put.
+ // ULONG *pcTypeSpecs) PURE; // [OUT] put # put here.
+ new void EnumTypeSpecs_();
+
+ // STDMETHOD(EnumUserStrings)( // S_OK or error.
+ // HCORENUM *phEnum, // [IN/OUT] pointer to the enum.
+ // mdString rStrings[], // [OUT] put Strings here.
+ // ULONG cmax, // [IN] max Strings to put.
+ // ULONG *pcStrings) PURE; // [OUT] put # put here.
+ new void EnumUserStrings_();
+
+ // STDMETHOD(GetParamForMethodIndex)( // S_OK or error.
+ // mdMethodDef md, // [IN] Method token.
+ // ULONG ulParamSeq, // [IN] Parameter sequence.
+ // mdParamDef *ppd) PURE; // [IN] Put Param token here.
+ new void GetParamForMethodIndex_();
#endif
-
- // STDMETHOD(GetFieldProps)(
- // mdFieldDef mb, // The field for which to get props.
- // mdTypeDef *pClass, // Put field's class here.
- // LPWSTR szField, // Put field's name here.
- // ULONG cchField, // Size of szField buffer in wide chars.
- // ULONG *pchField, // Put actual size here
- // DWORD *pdwAttr, // Put flags here.
- // PCCOR_SIGNATURE *ppvSigBlob, // [OUT] point to the blob value of meta data
- // ULONG *pcbSigBlob, // [OUT] actual size of signature blob
- // DWORD *pdwCPlusTypeFlag, // [OUT] flag for value type. selected ELEMENT_TYPE_*
- // void const **ppValue, // [OUT] constant value
- // ULONG *pcchValue) PURE; // [OUT] size of constant string in chars, 0 for non-strings.
- new void GetFieldProps (int mb,
- [ComAliasName ("mdTypeDef*")] out int mdTypeDef,
- [Out, MarshalAs (UnmanagedType.LPWStr)] StringBuilder szField,
- int cchField,
- [ComAliasName ("ULONG*")] out int pchField,
- [ComAliasName ("DWORD*")] out int pdwAttr,
- [ComAliasName ("PCCOR_SIGNATURE*")] out IntPtr ppvSigBlob,
- [ComAliasName ("ULONG*")] out int pcbSigBlob,
- [ComAliasName ("DWORD*")] out int pdwCPlusTypeFlab,
- [ComAliasName ("UVCP_CONSTANT*")] out IntPtr ppValue,
- [ComAliasName ("ULONG*")] out int pcchValue
- );
-
+ // STDMETHOD(EnumCustomAttributes)( // S_OK or error.
+ // HCORENUM *phEnum, // [IN, OUT] COR enumerator.
+ // mdToken tk, // [IN] Token to scope the enumeration, 0 for all.
+ // mdToken tkType, // [IN] Type of interest, 0 for all.
+ // mdCustomAttribute rCustomAttributes[], // [OUT] Put custom attribute tokens here.
+ // ULONG cMax, // [IN] Size of rCustomAttributes.
+ // ULONG *pcCustomAttributes) PURE; // [OUT, OPTIONAL] Put count of token values here.
+ new void EnumCustomAttributes(ref IntPtr phEnum,
+ int tk,
+ int tkType,
+ [ComAliasName("mdCustomAttribute*")]out int mdCustomAttribute,
+ uint cMax /*must be 1*/,
+ [ComAliasName("ULONG*")]out uint pcTokens
+ );
#if !MDBG_FAKE_COM
- // STDMETHOD(GetPropertyProps)( // S_OK, S_FALSE, or error.
- // mdProperty prop, // [IN] property token
- // mdTypeDef *pClass, // [OUT] typedef containing the property declarion.
- // LPCWSTR szProperty, // [OUT] Property name
- // ULONG cchProperty, // [IN] the count of wchar of szProperty
- // ULONG *pchProperty, // [OUT] actual count of wchar for property name
- // DWORD *pdwPropFlags, // [OUT] property flags.
- // PCCOR_SIGNATURE *ppvSig, // [OUT] property type. pointing to meta data internal blob
- // ULONG *pbSig, // [OUT] count of bytes in *ppvSig
- // DWORD *pdwCPlusTypeFlag, // [OUT] flag for value type. selected ELEMENT_TYPE_*
- // void const **ppDefaultValue, // [OUT] constant value
- // ULONG *pcchDefaultValue, // [OUT] size of constant string in chars, 0 for non-strings.
- // mdMethodDef *pmdSetter, // [OUT] setter method of the property
- // mdMethodDef *pmdGetter, // [OUT] getter method of the property
- // mdMethodDef rmdOtherMethod[], // [OUT] other method of the property
- // ULONG cMax, // [IN] size of rmdOtherMethod
- // ULONG *pcOtherMethod) PURE; // [OUT] total number of other method of this property
- new void GetPropertyProps (int prop,
- [ComAliasName ("mdTypeDef*")] out int mdTypeDef,
- [Out, MarshalAs (UnmanagedType.LPWStr)] StringBuilder szProperty,
- int cchProperty,
- [ComAliasName ("ULONG*")] out int pchProperty,
- [ComAliasName ("DWORD*")] out int pdwPropFlags,
- [ComAliasName ("PCCOR_SIGNATURE*")] out IntPtr ppvSig,
- [ComAliasName ("ULONG*")] out int pbSig,
- [ComAliasName ("DWORD*")] out int pdwCPlusTypeFlag,
- [ComAliasName ("UVCP_CONSTANT*")] out IntPtr ppDefaultValue,
- [ComAliasName ("ULONG*")] out int pcchDefaultValue,
- [ComAliasName ("mdMethodDef*")] out int pmdSetter,
- [ComAliasName ("mdMethodDef*")] out int pmdGetter,
- [ComAliasName ("mdMethodDef*")] out int rmdOtherMethod,
- [ComAliasName ("ULONG*")] int cMax, /* must be 1 */
- [ComAliasName ("ULONG*")] out int pcOtherMethod
- );
+ // STDMETHOD(GetCustomAttributeProps)( // S_OK or error.
+ // mdCustomAttribute cv, // [IN] CustomAttribute token.
+ // mdToken *ptkObj, // [OUT, OPTIONAL] Put object token here.
+ // mdToken *ptkType, // [OUT, OPTIONAL] Put AttrType token here.
+ // void const **ppBlob, // [OUT, OPTIONAL] Put pointer to data here.
+ // ULONG *pcbSize) PURE; // [OUT, OPTIONAL] Put size of date here.
+ new void GetCustomAttributeProps_();
+
+ // STDMETHOD(FindTypeRef)(
+ // mdToken tkResolutionScope, // [IN] ModuleRef, AssemblyRef or TypeRef.
+ // LPCWSTR szName, // [IN] TypeRef Name.
+ // mdTypeRef *ptr) PURE; // [OUT] matching TypeRef.
+ new void FindTypeRef_();
+
+ // STDMETHOD(GetMemberProps)(
+ // mdToken mb, // The member for which to get props.
+ // mdTypeDef *pClass, // Put member's class here.
+ // LPWSTR szMember, // Put member's name here.
+ // ULONG cchMember, // Size of szMember buffer in wide chars.
+ // ULONG *pchMember, // Put actual size here
+ // DWORD *pdwAttr, // Put flags here.
+ // PCCOR_SIGNATURE *ppvSigBlob, // [OUT] point to the blob value of meta data
+ // ULONG *pcbSigBlob, // [OUT] actual size of signature blob
+ // ULONG *pulCodeRVA, // [OUT] codeRVA
+ // DWORD *pdwImplFlags, // [OUT] Impl. Flags
+ // DWORD *pdwCPlusTypeFlag, // [OUT] flag for value type. selected ELEMENT_TYPE_*
+ // void const **ppValue, // [OUT] constant value
+ // ULONG *pcchValue) PURE; // [OUT] size of constant string in chars, 0 for non-strings.
+ new void GetMemberProps_();
#endif
+ // STDMETHOD(GetFieldProps)(
+ // mdFieldDef mb, // The field for which to get props.
+ // mdTypeDef *pClass, // Put field's class here.
+ // LPWSTR szField, // Put field's name here.
+ // ULONG cchField, // Size of szField buffer in wide chars.
+ // ULONG *pchField, // Put actual size here
+ // DWORD *pdwAttr, // Put flags here.
+ // PCCOR_SIGNATURE *ppvSigBlob, // [OUT] point to the blob value of meta data
+ // ULONG *pcbSigBlob, // [OUT] actual size of signature blob
+ // DWORD *pdwCPlusTypeFlag, // [OUT] flag for value type. selected ELEMENT_TYPE_*
+ // void const **ppValue, // [OUT] constant value
+ // ULONG *pcchValue) PURE; // [OUT] size of constant string in chars, 0 for non-strings.
+ new void GetFieldProps(int mb,
+ [ComAliasName("mdTypeDef*")] out int mdTypeDef,
+ [Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder szField,
+ int cchField,
+ [ComAliasName("ULONG*")] out int pchField,
+ [ComAliasName("DWORD*")] out int pdwAttr,
+ [ComAliasName("PCCOR_SIGNATURE*")] out IntPtr ppvSigBlob,
+ [ComAliasName("ULONG*")] out int pcbSigBlob,
+ [ComAliasName("DWORD*")] out int pdwCPlusTypeFlab,
+ [ComAliasName("UVCP_CONSTANT*")] out IntPtr ppValue,
+ [ComAliasName("ULONG*")] out int pcchValue
+ );
- // STDMETHOD(GetParamProps)( // S_OK or error.
- // mdParamDef tk, // [IN]The Parameter.
- // mdMethodDef *pmd, // [OUT] Parent Method token.
- // ULONG *pulSequence, // [OUT] Parameter sequence.
- // LPWSTR szName, // [OUT] Put name here.
- // ULONG cchName, // [OUT] Size of name buffer.
- // ULONG *pchName, // [OUT] Put actual size of name here.
- // DWORD *pdwAttr, // [OUT] Put flags here.
- // DWORD *pdwCPlusTypeFlag, // [OUT] Flag for value type. selected ELEMENT_TYPE_*.
- // void const **ppValue, // [OUT] Constant value.
- // ULONG *pcchValue) PURE; // [OUT] size of constant string in chars, 0 for non-strings.
- new void GetParamProps (int tk,
- [ComAliasName ("mdMethodDef*")] out int pmd,
- [ComAliasName ("ULONG*")] out uint pulSequence,
- [Out, MarshalAs (UnmanagedType.LPWStr)] StringBuilder szName,
- uint cchName,
- [ComAliasName ("ULONG*")] out uint pchName,
- [ComAliasName ("DWORD*")] out uint pdwAttr,
- [ComAliasName ("DWORD*")] out uint pdwCPlusTypeFlag,
- [ComAliasName ("UVCP_CONSTANT*")] out IntPtr ppValue,
- [ComAliasName ("ULONG*")] out uint pcchValue
- );
-
- // STDMETHOD(GetCustomAttributeByName)( // S_OK or error.
- // mdToken tkObj, // [IN] Object with Custom Attribute.
- // LPCWSTR szName, // [IN] Name of desired Custom Attribute.
- // const void **ppData, // [OUT] Put pointer to data here.
- // ULONG *pcbData) PURE; // [OUT] Put size of data here.
- [PreserveSig]
- new int GetCustomAttributeByName (
- int tkObj,
- [MarshalAs (UnmanagedType.LPWStr)]string szName,
- out IntPtr ppData,
- out uint pcbData);
-
- // STDMETHOD_(BOOL, IsValidToken)( // True or False.
- // mdToken tk) PURE; // [IN] Given token.
- [PreserveSig]
- new bool IsValidToken ([In, MarshalAs (UnmanagedType.U4)] uint tk);
-
- // STDMETHOD(GetNestedClassProps)( // S_OK or error.
- // mdTypeDef tdNestedClass, // [IN] NestedClass token.
- // mdTypeDef *ptdEnclosingClass) PURE; // [OUT] EnclosingClass token.
- new void GetNestedClassProps (int tdNestedClass, [ComAliasName ("mdTypeDef*")] out int tdEnclosingClass);
-
+ // STDMETHOD(GetPropertyProps)( // S_OK, S_FALSE, or error.
+ // mdProperty prop, // [IN] property token
+ // mdTypeDef *pClass, // [OUT] typedef containing the property declarion.
+ // LPCWSTR szProperty, // [OUT] Property name
+ // ULONG cchProperty, // [IN] the count of wchar of szProperty
+ // ULONG *pchProperty, // [OUT] actual count of wchar for property name
+ // DWORD *pdwPropFlags, // [OUT] property flags.
+ // PCCOR_SIGNATURE *ppvSig, // [OUT] property type. pointing to meta data internal blob
+ // ULONG *pbSig, // [OUT] count of bytes in *ppvSig
+ // DWORD *pdwCPlusTypeFlag, // [OUT] flag for value type. selected ELEMENT_TYPE_*
+ // void const **ppDefaultValue, // [OUT] constant value
+ // ULONG *pcchDefaultValue, // [OUT] size of constant string in chars, 0 for non-strings.
+ // mdMethodDef *pmdSetter, // [OUT] setter method of the property
+ // mdMethodDef *pmdGetter, // [OUT] getter method of the property
+ // mdMethodDef rmdOtherMethod[], // [OUT] other method of the property
+ // ULONG cMax, // [IN] size of rmdOtherMethod
+ // ULONG *pcOtherMethod) PURE; // [OUT] total number of other method of this property
+ new void GetPropertyProps(int prop,
+ [ComAliasName ("mdTypeDef*")] out int mdTypeDef,
+ [Out, MarshalAs (UnmanagedType.LPWStr)] StringBuilder szProperty,
+ int cchProperty,
+ [ComAliasName ("ULONG*")] out int pchProperty,
+ [ComAliasName ("DWORD*")] out int pdwPropFlags,
+ [ComAliasName ("PCCOR_SIGNATURE*")] out IntPtr ppvSig,
+ [ComAliasName ("ULONG*")] out int pbSig,
+ [ComAliasName ("DWORD*")] out int pdwCPlusTypeFlag,
+ [ComAliasName ("UVCP_CONSTANT*")] out IntPtr ppDefaultValue,
+ [ComAliasName ("ULONG*")] out int pcchDefaultValue,
+ [ComAliasName ("mdMethodDef*")] out int pmdSetter,
+ [ComAliasName ("mdMethodDef*")] out int pmdGetter,
+ [ComAliasName ("mdMethodDef*")] out int rmdOtherMethod,
+ [ComAliasName ("ULONG*")] int cMax, /* must be 1 */
+ [ComAliasName ("ULONG*")] out int pcOtherMethod
+ );
+
+ // STDMETHOD(GetParamProps)( // S_OK or error.
+ // mdParamDef tk, // [IN]The Parameter.
+ // mdMethodDef *pmd, // [OUT] Parent Method token.
+ // ULONG *pulSequence, // [OUT] Parameter sequence.
+ // LPWSTR szName, // [OUT] Put name here.
+ // ULONG cchName, // [OUT] Size of name buffer.
+ // ULONG *pchName, // [OUT] Put actual size of name here.
+ // DWORD *pdwAttr, // [OUT] Put flags here.
+ // DWORD *pdwCPlusTypeFlag, // [OUT] Flag for value type. selected ELEMENT_TYPE_*.
+ // void const **ppValue, // [OUT] Constant value.
+ // ULONG *pcchValue) PURE; // [OUT] size of constant string in chars, 0 for non-strings.
+ new void GetParamProps(int tk,
+ [ComAliasName("mdMethodDef*")] out int pmd,
+ [ComAliasName("ULONG*")] out uint pulSequence,
+ [Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder szName,
+ uint cchName,
+ [ComAliasName("ULONG*")] out uint pchName,
+ [ComAliasName("DWORD*")] out uint pdwAttr,
+ [ComAliasName("DWORD*")] out uint pdwCPlusTypeFlag,
+ [ComAliasName("UVCP_CONSTANT*")] out IntPtr ppValue,
+ [ComAliasName("ULONG*")] out uint pcchValue
+ );
+
+ // STDMETHOD(GetCustomAttributeByName)( // S_OK or error.
+ // mdToken tkObj, // [IN] Object with Custom Attribute.
+ // LPCWSTR szName, // [IN] Name of desired Custom Attribute.
+ // const void **ppData, // [OUT] Put pointer to data here.
+ // ULONG *pcbData) PURE; // [OUT] Put size of data here.
+ [PreserveSig]
+ new int GetCustomAttributeByName(
+ int tkObj,
+ [MarshalAs(UnmanagedType.LPWStr)]string szName,
+ out IntPtr ppData,
+ out uint pcbData);
+
+ // STDMETHOD_(BOOL, IsValidToken)( // True or False.
+ // mdToken tk) PURE; // [IN] Given token.
+ [PreserveSig] new bool IsValidToken([In, MarshalAs(UnmanagedType.U4)] uint tk);
+
+ // STDMETHOD(GetNestedClassProps)( // S_OK or error.
+ // mdTypeDef tdNestedClass, // [IN] NestedClass token.
+ // mdTypeDef *ptdEnclosingClass) PURE; // [OUT] EnclosingClass token.
+ new void GetNestedClassProps(int tdNestedClass, [ComAliasName("mdTypeDef*")] out int tdEnclosingClass);
#if !MDBG_FAKE_COM
- // STDMETHOD(GetNativeCallConvFromSig)( // S_OK or error.
- // void const *pvSig, // [IN] Pointer to signature.
- // ULONG cbSig, // [IN] Count of signature bytes.
- // ULONG *pCallConv) PURE; // [OUT] Put calling conv here (see CorPinvokemap).
- new void GetNativeCallConvFromSig_ ( );
-
-
- // STDMETHOD(IsGlobal)( // S_OK or error.
- // mdToken pd, // [IN] Type, Field, or Method token.
- // int *pbGlobal) PURE; // [OUT] Put 1 if global, 0 otherwise.
- new void IsGlobal_ ( );
+ // STDMETHOD(GetNativeCallConvFromSig)( // S_OK or error.
+ // void const *pvSig, // [IN] Pointer to signature.
+ // ULONG cbSig, // [IN] Count of signature bytes.
+ // ULONG *pCallConv) PURE; // [OUT] Put calling conv here (see CorPinvokemap).
+ new void GetNativeCallConvFromSig_();
+
+
+ // STDMETHOD(IsGlobal)( // S_OK or error.
+ // mdToken pd, // [IN] Type, Field, or Method token.
+ // int *pbGlobal) PURE; // [OUT] Put 1 if global, 0 otherwise.
+ new void IsGlobal_();
#endif
-
- //-----------------------------------------------------------------------------
- // Begin IMetaDataImport2
- //-----------------------------------------------------------------------------
-
- /*
- STDMETHOD(EnumGenericParams)(
- HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- mdToken tk, // [IN] TypeDef or MethodDef whose generic parameters are requested
- mdGenericParam rGenericParams[], // [OUT] Put GenericParams here.
- ULONG cMax, // [IN] Max GenericParams to put.
- ULONG *pcGenericParams) PURE; // [OUT] Put # put here.
- */
- void EnumGenericParams (
- ref IntPtr hEnum,
- int tk,
- [ComAliasName ("mdGenericParam*")] out int rGenericParams, // <strip>@todo - this is a total marshalling shack. Only works if cMax == 1.</strip>
- uint cMax, // must be 1
- [ComAliasName ("ULONG*")] out uint pcGenericParams
- );
-
- // STDMETHOD(GetGenericParamProps)( // S_OK or error.
- // mdGenericParam gp, // [IN] GenericParam
- // ULONG *pulParamSeq, // [OUT] Index of the type parameter
- // DWORD *pdwParamFlags, // [OUT] Flags, for future use (e.g. variance)
- // mdToken *ptOwner, // [OUT] Owner (TypeDef or MethodDef)
- // mdToken *ptkKind, // [OUT] For future use (e.g. non-type parameters)
- // LPWSTR wzname, // [OUT] Put name here
- // ULONG cchName, // [IN] Size of buffer
- // ULONG *pchName) PURE; // [OUT] Put size of name (wide chars) here.
- void GetGenericParamProps (int gp,
- [ComAliasName ("ULONG*")] out uint pulParamSeq,
- [ComAliasName ("DWORD*")] out int pdwParamFlags,
- [ComAliasName ("mdToken*")] out int ptOwner,
- [ComAliasName ("mdToken*")] out int ptkKind,
- [Out, MarshalAs (UnmanagedType.LPWStr)] StringBuilder wzName,
- ulong cchName,
- [ComAliasName ("ULONG*")] out ulong pchName
- );
-
- // STDMETHOD(GetMethodSpecProps)(
- // mdMethodSpec mi, // [IN] The method instantiation
- // mdToken *tkParent, // [OUT] MethodDef or MemberRef
- // PCCOR_SIGNATURE *ppvSigBlob, // [OUT] point to the blob value of meta data
- // ULONG *pcbSigBlob) PURE; // [OUT] actual size of signature blob
-
- void GetMethodSpecProps ([ComAliasName ("mdMethodSpec")] int mi,
- [ComAliasName ("mdToken*")] out int tkParent,
- [ComAliasName ("PCCOR_SIGNATURE*")] out IntPtr ppvSigBlob,
- [ComAliasName ("ULONG*")] out int pcbSigBlob
- );
-
+ //-----------------------------------------------------------------------------
+ // Begin IMetaDataImport2
+ //-----------------------------------------------------------------------------
+
+ /*
+ STDMETHOD(EnumGenericParams)(
+ HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
+ mdToken tk, // [IN] TypeDef or MethodDef whose generic parameters are requested
+ mdGenericParam rGenericParams[], // [OUT] Put GenericParams here.
+ ULONG cMax, // [IN] Max GenericParams to put.
+ ULONG *pcGenericParams) PURE; // [OUT] Put # put here.
+ */
+ void EnumGenericParams(
+ ref IntPtr hEnum,
+ int tk,
+ [ComAliasName("mdGenericParam*")] out int rGenericParams,
+ uint cMax, // must be 1
+ [ComAliasName("ULONG*")] out uint pcGenericParams
+ );
+
+ // STDMETHOD(GetGenericParamProps)( // S_OK or error.
+ // mdGenericParam gp, // [IN] GenericParam
+ // ULONG *pulParamSeq, // [OUT] Index of the type parameter
+ // DWORD *pdwParamFlags, // [OUT] Flags, for future use (e.g. variance)
+ // mdToken *ptOwner, // [OUT] Owner (TypeDef or MethodDef)
+ // mdToken *ptkKind, // [OUT] For future use (e.g. non-type parameters)
+ // LPWSTR wzname, // [OUT] Put name here
+ // ULONG cchName, // [IN] Size of buffer
+ // ULONG *pchName) PURE; // [OUT] Put size of name (wide chars) here.
+ void GetGenericParamProps(int gp,
+ [ComAliasName("ULONG*")] out uint pulParamSeq,
+ [ComAliasName("DWORD*")] out int pdwParamFlags,
+ [ComAliasName("mdToken*")] out int ptOwner,
+ [ComAliasName("mdToken*")] out int ptkKind,
+ [Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder wzName,
+ ulong cchName,
+ [ComAliasName("ULONG*")] out ulong pchName
+ );
+
+ // STDMETHOD(GetMethodSpecProps)(
+ // mdMethodSpec mi, // [IN] The method instantiation
+ // mdToken *tkParent, // [OUT] MethodDef or MemberRef
+ // PCCOR_SIGNATURE *ppvSigBlob, // [OUT] point to the blob value of meta data
+ // ULONG *pcbSigBlob) PURE; // [OUT] actual size of signature blob
+
+ void GetMethodSpecProps([ComAliasName("mdMethodSpec")] int mi,
+ [ComAliasName("mdToken*")] out int tkParent,
+ [ComAliasName("PCCOR_SIGNATURE*")] out IntPtr ppvSigBlob,
+ [ComAliasName("ULONG*")] out int pcbSigBlob
+ );
#if !MDBG_FAKE_COM
- // STDMETHOD(EnumGenericParamConstraints)(
- // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- // mdGenericParam tk, // [IN] GenericParam whose constraints are requested
- // mdGenericParamConstraint rGenericParamConstraints[], // [OUT] Put GenericParamConstraints here.
- // ULONG cMax, // [IN] Max GenericParamConstraints to put.
- // ULONG *pcGenericParamConstraints) PURE; // [OUT] Put # put here.
- void EnumGenericParamConstraints_ ( );
-
- // STDMETHOD(GetGenericParamConstraintProps)( // S_OK or error.
- // mdGenericParamConstraint gpc, // [IN] GenericParamConstraint
- // mdGenericParam *ptGenericParam, // [OUT] GenericParam that is constrained
- // mdToken *ptkConstraintType) PURE; // [OUT] TypeDef/Ref/Spec constraint
- void GetGenericParamConstraintProps_ ( );
-
- // STDMETHOD(GetPEKind)( // S_OK or error.
- // DWORD* pdwPEKind, // [OUT] The kind of PE (0 - not a PE)
- // DWORD* pdwMAchine) PURE; // [OUT] Machine as defined in NT header
- void GetPEKind_ ( );
-
- // STDMETHOD(GetVersionString)( // S_OK or error.
- // LPWSTR pwzBuf, // [OUT[ Put version string here.
- // DWORD ccBufSize, // [IN] size of the buffer, in wide chars
- // DWORD *pccBufSize) PURE; // [OUT] Size of the version string, wide chars, including terminating nul.
- void GetVersionString_ ( );
-
- // STDMETHOD(EnumMethodSpecs)(
- // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- // mdToken tk, // [IN] MethodDef or MemberRef whose MethodSpecs are requested
- // mdMethodSpec rMethodSpecs[], // [OUT] Put MethodSpecs here.
- // ULONG cMax, // [IN] Max tokens to put.
- // ULONG *pcMethodSpecs) PURE; // [OUT] Put actual count here.
- void EnumMethodSpecs_ ( );
+ // STDMETHOD(EnumGenericParamConstraints)(
+ // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
+ // mdGenericParam tk, // [IN] GenericParam whose constraints are requested
+ // mdGenericParamConstraint rGenericParamConstraints[], // [OUT] Put GenericParamConstraints here.
+ // ULONG cMax, // [IN] Max GenericParamConstraints to put.
+ // ULONG *pcGenericParamConstraints) PURE; // [OUT] Put # put here.
+ void EnumGenericParamConstraints_();
+
+ // STDMETHOD(GetGenericParamConstraintProps)( // S_OK or error.
+ // mdGenericParamConstraint gpc, // [IN] GenericParamConstraint
+ // mdGenericParam *ptGenericParam, // [OUT] GenericParam that is constrained
+ // mdToken *ptkConstraintType) PURE; // [OUT] TypeDef/Ref/Spec constraint
+ void GetGenericParamConstraintProps_();
+
+ // STDMETHOD(GetPEKind)( // S_OK or error.
+ // DWORD* pdwPEKind, // [OUT] The kind of PE (0 - not a PE)
+ // DWORD* pdwMAchine) PURE; // [OUT] Machine as defined in NT header
+ void GetPEKind_();
+
+ // STDMETHOD(GetVersionString)( // S_OK or error.
+ // LPWSTR pwzBuf, // [OUT[ Put version string here.
+ // DWORD ccBufSize, // [IN] size of the buffer, in wide chars
+ // DWORD *pccBufSize) PURE; // [OUT] Size of the version string, wide chars, including terminating nul.
+ void GetVersionString_();
+
+ // STDMETHOD(EnumMethodSpecs)(
+ // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
+ // mdToken tk, // [IN] MethodDef or MemberRef whose MethodSpecs are requested
+ // mdMethodSpec rMethodSpecs[], // [OUT] Put MethodSpecs here.
+ // ULONG cMax, // [IN] Max tokens to put.
+ // ULONG *pcMethodSpecs) PURE; // [OUT] Put actual count here.
+ void EnumMethodSpecs_();
#endif
- }
-
- // GUID Copied from Cor.h
- [Guid ("EE62470B-E94B-424e-9B7C-2F00C9249F93"),
- InterfaceType (ComInterfaceType.InterfaceIsIUnknown)
- ] // IID_IMetadataAssemblyImport from cor.h
-
- // This should be a private interface, but
- // we cannot do that becuase we are then getting an exception
- // "The specified type must be visible from COM." @ CorMetadataImport::GetRawInterface
- public interface IMetadataAssemblyImport
- {
- // STDMETHOD(GetAssemblyProps)( // S_OK or error.
- // mdAssembly mda, // [IN] The Assembly for which to get the properties.
- // const void **ppbPublicKey, // [OUT] Pointer to the public key.
- // ULONG *pcbPublicKey, // [OUT] Count of bytes in the public key.
- // ULONG *pulHashAlgId, // [OUT] Hash Algorithm.
- // LPWSTR szName, // [OUT] Buffer to fill with assembly's simply name.
- // ULONG cchName, // [IN] Size of buffer in wide chars.
- // ULONG *pchName, // [OUT] Actual # of wide chars in name.
- // ASSEMBLYMETADATA *pMetaData, // [OUT] Assembly MetaData.
- // DWORD *pdwAssemblyFlags) PURE; // [OUT] Flags.
-
- // STDMETHOD(GetAssemblyRefProps)( // S_OK or error.
- // mdAssemblyRef mdar, // [IN] The AssemblyRef for which to get the properties.
- // const void **ppbPublicKeyOrToken, // [OUT] Pointer to the public key or token.
- // ULONG *pcbPublicKeyOrToken, // [OUT] Count of bytes in the public key or token.
- // LPWSTR szName, // [OUT] Buffer to fill with name.
- // ULONG cchName, // [IN] Size of buffer in wide chars.
- // ULONG *pchName, // [OUT] Actual # of wide chars in name.
- // ASSEMBLYMETADATA *pMetaData, // [OUT] Assembly MetaData.
- // const void **ppbHashValue, // [OUT] Hash blob.
- // ULONG *pcbHashValue, // [OUT] Count of bytes in the hash blob.
- // DWORD *pdwAssemblyRefFlags) PURE; // [OUT] Flags.
-
- // STDMETHOD(GetFileProps)( // S_OK or error.
- // mdFile mdf, // [IN] The File for which to get the properties.
- // LPWSTR szName, // [OUT] Buffer to fill with name.
- // ULONG cchName, // [IN] Size of buffer in wide chars.
- // ULONG *pchName, // [OUT] Actual # of wide chars in name.
- // const void **ppbHashValue, // [OUT] Pointer to the Hash Value Blob.
- // ULONG *pcbHashValue, // [OUT] Count of bytes in the Hash Value Blob.
- // DWORD *pdwFileFlags) PURE; // [OUT] Flags.
-
- // STDMETHOD(GetExportedTypeProps)( // S_OK or error.
- // mdExportedType mdct, // [IN] The ExportedType for which to get the properties.
- // LPWSTR szName, // [OUT] Buffer to fill with name.
- // ULONG cchName, // [IN] Size of buffer in wide chars.
- // ULONG *pchName, // [OUT] Actual # of wide chars in name.
- // mdToken *ptkImplementation, // [OUT] mdFile or mdAssemblyRef or mdExportedType.
- // mdTypeDef *ptkTypeDef, // [OUT] TypeDef token within the file.
- // DWORD *pdwExportedTypeFlags) PURE; // [OUT] Flags.
-
- // STDMETHOD(GetManifestResourceProps)( // S_OK or error.
- // mdManifestResource mdmr, // [IN] The ManifestResource for which to get the properties.
- // LPWSTR szName, // [OUT] Buffer to fill with name.
- // ULONG cchName, // [IN] Size of buffer in wide chars.
- // ULONG *pchName, // [OUT] Actual # of wide chars in name.
- // mdToken *ptkImplementation, // [OUT] mdFile or mdAssemblyRef that provides the ManifestResource.
- // DWORD *pdwOffset, // [OUT] Offset to the beginning of the resource within the file.
- // DWORD *pdwResourceFlags) PURE;// [OUT] Flags.
-
- // STDMETHOD(EnumAssemblyRefs)( // S_OK or error
- // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- // mdAssemblyRef rAssemblyRefs[], // [OUT] Put AssemblyRefs here.
- // ULONG cMax, // [IN] Max AssemblyRefs to put.
- // ULONG *pcTokens) PURE; // [OUT] Put # put here.
-
- // STDMETHOD(EnumFiles)( // S_OK or error
- // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- // mdFile rFiles[], // [OUT] Put Files here.
- // ULONG cMax, // [IN] Max Files to put.
- // ULONG *pcTokens) PURE; // [OUT] Put # put here.
-
- // STDMETHOD(EnumExportedTypes)( // S_OK or error
- // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- // mdExportedType rExportedTypes[], // [OUT] Put ExportedTypes here.
- // ULONG cMax, // [IN] Max ExportedTypes to put.
- // ULONG *pcTokens) PURE; // [OUT] Put # put here.
-
- // STDMETHOD(EnumManifestResources)( // S_OK or error
- // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
- // mdManifestResource rManifestResources[], // [OUT] Put ManifestResources here.
- // ULONG cMax, // [IN] Max Resources to put.
- // ULONG *pcTokens) PURE; // [OUT] Put # put here.
-
- // STDMETHOD(GetAssemblyFromScope)( // S_OK or error
- // mdAssembly *ptkAssembly) PURE; // [OUT] Put token here.
-
- // STDMETHOD(FindExportedTypeByName)( // S_OK or error
- // LPCWSTR szName, // [IN] Name of the ExportedType.
- // mdToken mdtExportedType, // [IN] ExportedType for the enclosing class.
- // mdExportedType *ptkExportedType) PURE; // [OUT] Put the ExportedType token here.
-
- // STDMETHOD(FindManifestResourceByName)( // S_OK or error
- // LPCWSTR szName, // [IN] Name of the ManifestResource.
- // mdManifestResource *ptkManifestResource) PURE; // [OUT] Put the ManifestResource token here.
-
- // STDMETHOD_(void, CloseEnum)(
- // HCORENUM hEnum) PURE; // Enum to be closed.
-
- // STDMETHOD(FindAssembliesByName)( // S_OK or error
- // LPCWSTR szAppBase, // [IN] optional - can be NULL
- // LPCWSTR szPrivateBin, // [IN] optional - can be NULL
- // LPCWSTR szAssemblyName, // [IN] required - this is the assembly you are requesting
- // IUnknown *ppIUnk[], // [OUT] put IMetaDataAssemblyImport pointers here
- // ULONG cMax, // [IN] The max number to put
- // ULONG *pcAssemblies) PURE; // [OUT] The number of assemblies returned.
- // }; // IMetaDataAssemblyImport
- }
+ }
+
+ // GUID Copied from Cor.h
+ [Guid("EE62470B-E94B-424e-9B7C-2F00C9249F93"),
+ InterfaceType(ComInterfaceType.InterfaceIsIUnknown)
+ ] // IID_IMetadataAssemblyImport from cor.h
+
+ // This should be a private interface, but
+ // we cannot do that becuase we are then getting an exception
+ // "The specified type must be visible from COM." @ CorMetadataImport::GetRawInterface
+ [CLSCompliant(false)]
+ public interface IMetadataAssemblyImport
+ {
+ // STDMETHOD(GetAssemblyProps)( // S_OK or error.
+ // mdAssembly mda, // [IN] The Assembly for which to get the properties.
+ // const void **ppbPublicKey, // [OUT] Pointer to the public key.
+ // ULONG *pcbPublicKey, // [OUT] Count of bytes in the public key.
+ // ULONG *pulHashAlgId, // [OUT] Hash Algorithm.
+ // LPWSTR szName, // [OUT] Buffer to fill with assembly's simply name.
+ // ULONG cchName, // [IN] Size of buffer in wide chars.
+ // ULONG *pchName, // [OUT] Actual # of wide chars in name.
+ // ASSEMBLYMETADATA *pMetaData, // [OUT] Assembly MetaData.
+ // DWORD *pdwAssemblyFlags) PURE; // [OUT] Flags.
+
+ // STDMETHOD(GetAssemblyRefProps)( // S_OK or error.
+ // mdAssemblyRef mdar, // [IN] The AssemblyRef for which to get the properties.
+ // const void **ppbPublicKeyOrToken, // [OUT] Pointer to the public key or token.
+ // ULONG *pcbPublicKeyOrToken, // [OUT] Count of bytes in the public key or token.
+ // LPWSTR szName, // [OUT] Buffer to fill with name.
+ // ULONG cchName, // [IN] Size of buffer in wide chars.
+ // ULONG *pchName, // [OUT] Actual # of wide chars in name.
+ // ASSEMBLYMETADATA *pMetaData, // [OUT] Assembly MetaData.
+ // const void **ppbHashValue, // [OUT] Hash blob.
+ // ULONG *pcbHashValue, // [OUT] Count of bytes in the hash blob.
+ // DWORD *pdwAssemblyRefFlags) PURE; // [OUT] Flags.
+
+ // STDMETHOD(GetFileProps)( // S_OK or error.
+ // mdFile mdf, // [IN] The File for which to get the properties.
+ // LPWSTR szName, // [OUT] Buffer to fill with name.
+ // ULONG cchName, // [IN] Size of buffer in wide chars.
+ // ULONG *pchName, // [OUT] Actual # of wide chars in name.
+ // const void **ppbHashValue, // [OUT] Pointer to the Hash Value Blob.
+ // ULONG *pcbHashValue, // [OUT] Count of bytes in the Hash Value Blob.
+ // DWORD *pdwFileFlags) PURE; // [OUT] Flags.
+
+ // STDMETHOD(GetExportedTypeProps)( // S_OK or error.
+ // mdExportedType mdct, // [IN] The ExportedType for which to get the properties.
+ // LPWSTR szName, // [OUT] Buffer to fill with name.
+ // ULONG cchName, // [IN] Size of buffer in wide chars.
+ // ULONG *pchName, // [OUT] Actual # of wide chars in name.
+ // mdToken *ptkImplementation, // [OUT] mdFile or mdAssemblyRef or mdExportedType.
+ // mdTypeDef *ptkTypeDef, // [OUT] TypeDef token within the file.
+ // DWORD *pdwExportedTypeFlags) PURE; // [OUT] Flags.
+
+ // STDMETHOD(GetManifestResourceProps)( // S_OK or error.
+ // mdManifestResource mdmr, // [IN] The ManifestResource for which to get the properties.
+ // LPWSTR szName, // [OUT] Buffer to fill with name.
+ // ULONG cchName, // [IN] Size of buffer in wide chars.
+ // ULONG *pchName, // [OUT] Actual # of wide chars in name.
+ // mdToken *ptkImplementation, // [OUT] mdFile or mdAssemblyRef that provides the ManifestResource.
+ // DWORD *pdwOffset, // [OUT] Offset to the beginning of the resource within the file.
+ // DWORD *pdwResourceFlags) PURE;// [OUT] Flags.
+
+ // STDMETHOD(EnumAssemblyRefs)( // S_OK or error
+ // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
+ // mdAssemblyRef rAssemblyRefs[], // [OUT] Put AssemblyRefs here.
+ // ULONG cMax, // [IN] Max AssemblyRefs to put.
+ // ULONG *pcTokens) PURE; // [OUT] Put # put here.
+
+ // STDMETHOD(EnumFiles)( // S_OK or error
+ // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
+ // mdFile rFiles[], // [OUT] Put Files here.
+ // ULONG cMax, // [IN] Max Files to put.
+ // ULONG *pcTokens) PURE; // [OUT] Put # put here.
+
+ // STDMETHOD(EnumExportedTypes)( // S_OK or error
+ // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
+ // mdExportedType rExportedTypes[], // [OUT] Put ExportedTypes here.
+ // ULONG cMax, // [IN] Max ExportedTypes to put.
+ // ULONG *pcTokens) PURE; // [OUT] Put # put here.
+
+ // STDMETHOD(EnumManifestResources)( // S_OK or error
+ // HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
+ // mdManifestResource rManifestResources[], // [OUT] Put ManifestResources here.
+ // ULONG cMax, // [IN] Max Resources to put.
+ // ULONG *pcTokens) PURE; // [OUT] Put # put here.
+
+ // STDMETHOD(GetAssemblyFromScope)( // S_OK or error
+ // mdAssembly *ptkAssembly) PURE; // [OUT] Put token here.
+
+ // STDMETHOD(FindExportedTypeByName)( // S_OK or error
+ // LPCWSTR szName, // [IN] Name of the ExportedType.
+ // mdToken mdtExportedType, // [IN] ExportedType for the enclosing class.
+ // mdExportedType *ptkExportedType) PURE; // [OUT] Put the ExportedType token here.
+
+ // STDMETHOD(FindManifestResourceByName)( // S_OK or error
+ // LPCWSTR szName, // [IN] Name of the ManifestResource.
+ // mdManifestResource *ptkManifestResource) PURE; // [OUT] Put the ManifestResource token here.
+
+ // STDMETHOD_(void, CloseEnum)(
+ // HCORENUM hEnum) PURE; // Enum to be closed.
+
+ // STDMETHOD(FindAssembliesByName)( // S_OK or error
+ // LPCWSTR szAppBase, // [IN] optional - can be NULL
+ // LPCWSTR szPrivateBin, // [IN] optional - can be NULL
+ // LPCWSTR szAssemblyName, // [IN] required - this is the assembly you are requesting
+ // IUnknown *ppIUnk[], // [OUT] put IMetaDataAssemblyImport pointers here
+ // ULONG cMax, // [IN] The max number to put
+ // ULONG *pcAssemblies) PURE; // [OUT] The number of assemblies returned.
+ // }; // IMetaDataAssemblyImport
+ }
}
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi2/Metadata/Constants.cs b/extras/MonoDevelop.Debugger.Win32/CorApi/RawAssemblyAttributes.cs
index a9dcf58034..2f02b53093 100644
--- a/extras/MonoDevelop.Debugger.Win32/CorApi2/Metadata/Constants.cs
+++ b/extras/MonoDevelop.Debugger.Win32/CorApi/RawAssemblyAttributes.cs
@@ -2,8 +2,11 @@
// This file is part of the CLR Managed Debugger (mdbg) Sample.
//
// Copyright (C) Microsoft Corporation. All rights reserved.
+//
+// Imports ICorDebug interface into managed code
//---------------------------------------------------------------------
-namespace Microsoft.Samples.Debugging.CorMetadata
-{
-
-}
+
+
+// Assembly attributes for Raw native imports.
+using System;
+[assembly:CLSCompliant(false)]
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi/WindowsImports.cs b/extras/MonoDevelop.Debugger.Win32/CorApi/WindowsImports.cs
new file mode 100644
index 0000000000..756f85c13c
--- /dev/null
+++ b/extras/MonoDevelop.Debugger.Win32/CorApi/WindowsImports.cs
@@ -0,0 +1,117 @@
+//---------------------------------------------------------------------
+// This file is part of the CLR Managed Debugger (mdbg) Sample.
+//
+// Copyright (C) Microsoft Corporation. All rights reserved.
+//
+// Imports the win32 structures needed by the ICorDebug interfaces.
+//---------------------------------------------------------------------
+
+using System;
+using System.Text;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+using Microsoft.Samples.Debugging.CorMetadata.NativeApi;
+using Microsoft.Win32.SafeHandles;
+
+
+namespace Microsoft.Samples.Debugging.CorDebug.NativeApi
+{
+ #region X86 Context
+ [StructLayout(LayoutKind.Sequential)]
+ public struct WIN32_CONTEXT
+ {
+ public uint ContextFlags;
+ public uint Dr0;
+ public uint Dr1;
+ public uint Dr2;
+ public uint Dr3;
+ public uint Dr6;
+ public uint Dr7;
+ public WIN32_FLOATING_SAVE_AREA FloatSave;
+ public uint SegGs;
+ public uint SegFs;
+ public uint SegEs;
+ public uint SegDs;
+ public uint Edi;
+ public uint Esi;
+ public uint Ebx;
+ public uint Edx;
+ public uint Ecx;
+ public uint Eax;
+ public uint Ebp;
+ public uint Eip;
+ public uint SegCs;
+ public uint EFlags;
+ public uint Esp;
+ public uint SegSs;
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0x200)]
+ public byte[] ExtendedRegisters;
+ }
+
+ [StructLayout(LayoutKind.Sequential)]
+ public struct WIN32_FLOATING_SAVE_AREA
+ {
+ public uint ControlWord;
+ public uint StatusWord;
+ public uint TagWord;
+ public uint ErrorOffset;
+ public uint ErrorSelector;
+ public uint DataOffset;
+ public uint DataSelector;
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 80)]
+ public byte[] RegisterArea;
+ public uint Cr0NpxState;
+ }
+
+ #endregion // X86 Context
+
+
+ #region Structures for CreateProcess
+ [StructLayout(LayoutKind.Sequential, Pack = 8), ComVisible(false)]
+ public class PROCESS_INFORMATION
+ {
+ public IntPtr hProcess;
+ public IntPtr hThread;
+ public int dwProcessId;
+ public int dwThreadId;
+ public PROCESS_INFORMATION() { }
+ }
+
+ [StructLayout(LayoutKind.Sequential, Pack = 8), ComVisible(false)]
+ public class SECURITY_ATTRIBUTES
+ {
+ public int nLength;
+ public IntPtr lpSecurityDescriptor;
+ public bool bInheritHandle;
+ public SECURITY_ATTRIBUTES() { }
+ }
+
+ [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto, Pack = 8), ComVisible(false)]
+ public class STARTUPINFO
+ {
+ public int cb;
+ public string lpReserved;
+ public string lpDesktop;
+ public string lpTitle;
+ public int dwX;
+ public int dwY;
+ public int dwXSize;
+ public int dwYSize;
+ public int dwXCountChars;
+ public int dwYCountChars;
+ public int dwFillAttribute;
+ public int dwFlags;
+ public short wShowWindow;
+ public short cbReserved2;
+ public IntPtr lpReserved2;
+ public SafeFileHandle hStdInput;
+ public SafeFileHandle hStdOutput;
+ public SafeFileHandle hStdError;
+ public STARTUPINFO() { }
+ }
+
+ #endregion // Structures for CreateProcess
+
+
+} // Microsoft.Samples.Debugging.CorDebug.NativeApi \ No newline at end of file
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi/context.il b/extras/MonoDevelop.Debugger.Win32/CorApi/context.il
deleted file mode 100644
index 1b190ebef5..0000000000
--- a/extras/MonoDevelop.Debugger.Win32/CorApi/context.il
+++ /dev/null
@@ -1,130 +0,0 @@
-//---------------------------------------------------------------------
-// This file is part of the CLR Managed Debugger (mdbg) Sample.
-//
-// Copyright (C) Microsoft Corporation. All rights reserved.
-//---------------------------------------------------------------------
-//
-// this file defines CONTEXT structure just like in Win32
-// for the original Win32 definition see winnt.h
-//
-
-//
-// the following .cs code was used to disassemble this .il
-//
-/*
-using System;
-using System.Runtime.InteropServices;
-
-namespace Microsoft.Samples.Debugging.CorDebug.NativeApi
-{
-enum Win32Sizes
-{
- SIZE_OF_80387_REGISTERS = 80,
- MAXIMUM_SUPPORTED_EXTENSION = 512
-};
-
-public struct FLOATING_SAVE_AREA
-{
- public UInt32 ControlWord;
- public UInt32 StatusWord;
- public UInt32 TagWord;
- public UInt32 ErrorOffset;
- public UInt32 ErrorSelector;
- public UInt32 DataOffset;
- public UInt32 DataSelector;
-
- [MarshalAs(UnmanagedType.ByValArray, SizeConst=(int)Win32Sizes.SIZE_OF_80387_REGISTERS)]
- public Byte[] RegisterArea;
- public UInt32 Cr0NpxState;
-}
-
-public struct WIN32_CONTEXT
-{
- // See description of the CONTEXT structure in winnt.h
-
- public UInt32 ContextFlags;
-
- public UInt32 Dr0;
- public UInt32 Dr1;
- public UInt32 Dr2;
- public UInt32 Dr3;
- public UInt32 Dr6;
- public UInt32 Dr7;
-
- public FLOATING_SAVE_AREA FloatSave;
-
- public UInt32 SegGs;
- public UInt32 SegFs;
- public UInt32 SegEs;
- public UInt32 SegDs;
-
- public UInt32 Edi;
- public UInt32 Esi;
- public UInt32 Ebx;
- public UInt32 Edx;
- public UInt32 Ecx;
- public UInt32 Eax;
-
- public UInt32 Ebp;
- public UInt32 Eip;
- public UInt32 SegCs;
- public UInt32 EFlags;
- public UInt32 Esp;
- public UInt32 SegSs;
-
- [MarshalAs(UnmanagedType.ByValArray, SizeConst=(int)Win32Sizes.MAXIMUM_SUPPORTED_EXTENSION)]
- public Byte[] ExtendedRegisters;
-}
-}
-*/
-
-// =============== CLASS MEMBERS DECLARATION ===================
-
-.namespace Microsoft.Samples.Debugging.CorDebug.NativeApi
-{
- .class public sequential ansi sealed beforefieldinit WIN32_FLOATING_SAVE_AREA
- extends [mscorlib]System.ValueType
- {
- .field public uint32 ControlWord
- .field public uint32 StatusWord
- .field public uint32 TagWord
- .field public uint32 ErrorOffset
- .field public uint32 ErrorSelector
- .field public uint32 DataOffset
- .field public uint32 DataSelector
- .field public marshal( fixed array [80]) uint8[] RegisterArea
- .field public uint32 Cr0NpxState
- } // end of class WIN32_FLOATING_SAVE_AREA
-
- .class public sequential ansi sealed beforefieldinit WIN32_CONTEXT
- extends [mscorlib]System.ValueType
- {
- .field public uint32 ContextFlags
- .field public uint32 Dr0
- .field public uint32 Dr1
- .field public uint32 Dr2
- .field public uint32 Dr3
- .field public uint32 Dr6
- .field public uint32 Dr7
- .field public valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.WIN32_FLOATING_SAVE_AREA FloatSave
- .field public uint32 SegGs
- .field public uint32 SegFs
- .field public uint32 SegEs
- .field public uint32 SegDs
- .field public uint32 Edi
- .field public uint32 Esi
- .field public uint32 Ebx
- .field public uint32 Edx
- .field public uint32 Ecx
- .field public uint32 Eax
- .field public uint32 Ebp
- .field public uint32 Eip
- .field public uint32 SegCs
- .field public uint32 EFlags
- .field public uint32 Esp
- .field public uint32 SegSs
- .field public marshal( fixed array [512]) uint8[] ExtendedRegisters
- } // end of class WIN32_CONTEXT
-
-} // end of namespace Microsoft.Samples.Debugging.CorDebug.NativeApi
-
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi/cordblib.il b/extras/MonoDevelop.Debugger.Win32/CorApi/cordblib.il
deleted file mode 100644
index 61f6336324..0000000000
--- a/extras/MonoDevelop.Debugger.Win32/CorApi/cordblib.il
+++ /dev/null
@@ -1,4195 +0,0 @@
-//---------------------------------------------------------------------
-// This file is part of the CLR Managed Debugger (mdbg) Sample.
-//
-// Copyright (C) Microsoft Corporation. All rights reserved.
-//---------------------------------------------------------------------
-
-// Microsoft (R) .NET Framework IL Disassembler. Version 2.0.31117.00
-// Copyright (C) Microsoft Corporation 1998-2003. All rights reserved.
-
-
-// MVID: {ED5AC2EB-E2E2-4B6C-B2ED-C74617CFB7E8}
-.imagebase 0x00400000
-.file alignment 0x00001000
-.stackreserve 0x00100000
-.subsystem 0x0003 // WINDOWS_CUI
-.corflags 0x00000001 // ILONLY
-// Image base: 0x03DF0000
-
-
-// =============== CLASS MEMBERS DECLARATION ===================
-
-.namespace Microsoft.Samples.Debugging.CorDebug.NativeApi
-{
- .class public sequential ansi SECURITY_ATTRIBUTES
- extends ['mscorlib']System.Object
- {
- .pack 8
- .size 0
- .custom instance void ['mscorlib']System.Runtime.InteropServices.ComVisibleAttribute::.ctor(bool) = ( 01 00 00 00 00 )
- .field public int32 nLength
- .field public native int lpSecurityDescriptor
- .field public bool bInheritHandle
- .method public hidebysig specialname rtspecialname
- instance void .ctor() il managed
- {
- // Code size 15 (0xf)
- .maxstack 8
- IL_0000: ldarg.0
- IL_0001: ldc.i4.s 12
- IL_0003: stfld int32 Microsoft.Samples.Debugging.CorDebug.NativeApi.SECURITY_ATTRIBUTES::nLength
- IL_0008: ldarg.0
- IL_0009: call instance void ['mscorlib']System.Object::.ctor()
- IL_000e: ret
- } // end of method 'SECURITY_ATTRIBUTES::.ctor'
-
- } // end of class 'SECURITY_ATTRIBUTES'
-
- .class public sequential autochar STARTUPINFO
- extends ['mscorlib']System.Object
- {
- .pack 8
- .size 0
- .custom instance void ['mscorlib']System.Runtime.InteropServices.ComVisibleAttribute::.ctor(bool) = ( 01 00 00 00 00 )
- .field public int32 cb
- .field public class System.String lpReserved
- .field public class System.String lpDesktop
- .field public class System.String lpTitle
- .field public int32 dwX
- .field public int32 dwY
- .field public int32 dwXSize
- .field public int32 dwYSize
- .field public int32 dwXCountChars
- .field public int32 dwYCountChars
- .field public int32 dwFillAttribute
- .field public int32 dwFlags
- .field public int16 wShowWindow
- .field public int16 cbReserved2
- .field public native int lpReserved2
- .field public class [mscorlib]Microsoft.Win32.SafeHandles.SafeFileHandle hStdInput
- .field public class [mscorlib]Microsoft.Win32.SafeHandles.SafeFileHandle hStdOutput
- .field public class [mscorlib]Microsoft.Win32.SafeHandles.SafeFileHandle hStdError
- .method public hidebysig specialname rtspecialname
- instance void .ctor() il managed
- {
- // Code size 7 (0x7)
- .maxstack 8
- IL_0000: ldarg.0
- IL_0001: call instance void ['mscorlib']System.Object::.ctor()
- IL_0006: ret
- } // end of method 'STARTUPINFO::.ctor'
-
- } // end of class 'STARTUPINFO'
-
-
- .class public sequential ansi PROCESS_INFORMATION
- extends ['mscorlib']System.Object
- {
- .pack 8
- .size 0
- .custom instance void ['mscorlib']System.Runtime.InteropServices.ComVisibleAttribute::.ctor(bool) = ( 01 00 00 00 00 )
- .field public native int hProcess
- .field public native int hThread
- .field public int32 dwProcessId
- .field public int32 dwThreadId
- .method public hidebysig specialname rtspecialname
- instance void .ctor() il managed
- {
- // Code size 7 (0x7)
- .maxstack 8
- IL_0000: ldarg.0
- IL_0001: call instance void ['mscorlib']System.Object::.ctor()
- IL_0006: ret
- } // end of method 'PROCESS_INFORMATION::.ctor'
-
- } // end of class 'PROCESS_INFORMATION'
-
- //
- // This whole part is union definition for DEBUG_EVENT
- //
-
- .class public sequential ansi sealed beforefieldinit CREATE_PROCESS_DEBUG_INFO
- extends [mscorlib]System.ValueType
- {
- .field public native int hFile
- .field public native int hProcess
- .field public native int hThread
- .field public native int lpBaseOfImage
- .field public uint32 dwDebugInfoFileOffset
- .field public uint32 nDebugInfoSize
- .field public native int lpThreadLocalBase
- .field public native int lpStartAddress
- .field public native int lpImageName
- .field public uint16 fUnicode
- } // end of class CREATE_PROCESS_DEBUG_INFO
-
- .class public sequential ansi sealed beforefieldinit EXCEPTION_RECORD
- extends [mscorlib]System.ValueType
- {
- .field public uint32 ExceptionCode
- .field public uint32 ExceptionFlags
- .field public native int ExceptionRecord
- .field public native int ExceptionAddress
- .field public uint32 NumberParameters
- .field public native int ExceptionAddress0
- .field public native int ExceptionAddress1
- .field public native int ExceptionAddress2
- .field public native int ExceptionAddress3
- } // end of class EXCEPTION_RECORD
-
- .class public sequential ansi sealed beforefieldinit EXCEPTION_DEBUG_INFO
- extends [mscorlib]System.ValueType
- {
- .field public valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.EXCEPTION_RECORD ExceptionRecord
- .field public uint32 dwFirstChance
- } // end of class EXCEPTION_DEBUG_INFO
-
- .class public sequential ansi sealed beforefieldinit CREATE_THREAD_DEBUG_INFO
- extends [mscorlib]System.ValueType
- {
- .field public native int hThread
- .field public native int lpThreadLocalBase
- .field public native int lpStartAddress
- } // end of class CREATE_THREAD_DEBUG_INFO
-
- .class public sequential ansi sealed beforefieldinit EXIT_THREAD_DEBUG_INFO
- extends [mscorlib]System.ValueType
- {
- .field public uint32 dwExitCode
- } // end of class EXIT_THREAD_DEBUG_INFO
-
- .class public sequential ansi sealed beforefieldinit EXIT_PROCESS_DEBUG_INFO
- extends [mscorlib]System.ValueType
- {
- .field public uint32 dwExitCode
- } // end of class EXIT_PROCESS_DEBUG_INFO
-
- .class public sequential ansi sealed beforefieldinit LOAD_DLL_DEBUG_INFO
- extends [mscorlib]System.ValueType
- {
- .field public native int hFile
- .field public native int lpBaseOfDll
- .field public uint32 dwDebugInfoFileOffset
- .field public uint32 nDebugInfoSize
- .field public native int lpImageName
- .field public uint16 fUnicode
- } // end of class LOAD_DLL_DEBUG_INFO
-
- .class public sequential ansi sealed beforefieldinit UNLOAD_DLL_DEBUG_INFO
- extends [mscorlib]System.ValueType
- {
- .field public native int lpBaseOfDll
- } // end of class UNLOAD_DLL_DEBUG_INFO
-
- .class public sequential ansi sealed beforefieldinit OUTPUT_DEBUG_STRING_INFO
- extends [mscorlib]System.ValueType
- {
- .field public native int lpDebugStringData
- .field public uint16 fUnicode
- .field public uint16 nDebugStringLenght
- } // end of class OUTPUT_DEBUG_STRING_INFO
-
- .class public explicit ansi beforefieldinit DEBUG_EVENT
- extends [mscorlib]System.Object
- {
- .field [0] public uint32 dwDebugEventCode
- .field [4] public uint32 dwProcessId
- .field [8] public uint32 dwThreadId
- .field [12] public valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CREATE_PROCESS_DEBUG_INFO CreateProcess
- .field [12] public valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.EXCEPTION_DEBUG_INFO Exception
- .field [12] public valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CREATE_THREAD_DEBUG_INFO CreateThread
- .field [12] public valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.EXIT_THREAD_DEBUG_INFO ExitThread
- .field [12] public valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.EXIT_PROCESS_DEBUG_INFO ExitProcess
- .field [12] public valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.LOAD_DLL_DEBUG_INFO LoadDll
- .field [12] public valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.UNLOAD_DLL_DEBUG_INFO UnloadDll
- .field [12] public valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.OUTPUT_DEBUG_STRING_INFO OutputDebugString
- .method public hidebysig specialname rtspecialname
- instance void .ctor() cil managed
- {
- // Code size 7 (0x7)
- .maxstack 8
- IL_0000: ldarg.0
- IL_0001: call instance void [mscorlib]System.Object::.ctor()
- IL_0006: ret
- } // end of method DEBUG_EVENT::.ctor
-
- } // end of class DEBUG_EVENT
-}
-.class public auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugClass
- extends [mscorlib]System.Object
- implements Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebug,
- Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebug
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.TypeLibTypeAttribute::.ctor(int16) = ( 01 00 02 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.ClassInterfaceAttribute::.ctor(int16) = ( 01 00 00 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 36 66 65 66 34 34 64 30 2D 33 39 65 37 // ..$6fef44d0-39e7
- 2D 34 63 37 37 2D 62 65 38 65 2D 63 39 66 38 63 // -4c77-be8e-c9f8c
- 66 39 38 38 36 33 30 00 00 ) // f988630..
- .method public specialname rtspecialname
- instance void .ctor() runtime managed internalcall
- {
- } // end of method CorDebugClass::.ctor
-
- .method public hidebysig newslot virtual
- instance void Initialize() runtime managed internalcall
- {
- .override Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebug::Initialize
- } // end of method CorDebugClass::Initialize
-
- .method public hidebysig newslot virtual
- instance void Terminate() runtime managed internalcall
- {
- .override Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebug::Terminate
- } // end of method CorDebugClass::Terminate
-
- .method public hidebysig newslot virtual
- instance void SetManagedHandler([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugManagedCallback marshal( interface) pCallback) runtime managed internalcall
- {
- .override Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebug::SetManagedHandler
- } // end of method CorDebugClass::SetManagedHandler
-
- .method public hidebysig newslot virtual
- instance void SetUnmanagedHandler([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugUnmanagedCallback marshal( interface) pCallback) runtime managed internalcall
- {
- .override Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebug::SetUnmanagedHandler
- } // end of method CorDebugClass::SetUnmanagedHandler
-
- .method public hidebysig newslot virtual
- instance void CreateProcess([in] string marshal( lpwstr) lpApplicationName,
- [in] string marshal( lpwstr) lpCommandLine,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.SECURITY_ATTRIBUTES lpProcessAttributes,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.SECURITY_ATTRIBUTES lpThreadAttributes,
- [in] int32 bInheritHandles,
- [in] uint32 dwCreationFlags,
- [in] native int lpEnvironment,
- [in] string marshal( lpwstr) lpCurrentDirectory,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.STARTUPINFO lpStartupInfo,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.PROCESS_INFORMATION lpProcessInformation,
- [in] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugCreateProcessFlags debuggingFlags,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugProcess& marshal( interface) ppProcess) runtime managed internalcall
- {
- .override Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebug::CreateProcess
- } // end of method CorDebugClass::CreateProcess
-
- .method public hidebysig newslot virtual
- instance void DebugActiveProcess([in] uint32 id,
- [in] int32 win32Attach,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugProcess& marshal( interface) ppProcess) runtime managed internalcall
- {
- .override Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebug::DebugActiveProcess
- } // end of method CorDebugClass::DebugActiveProcess
-
- .method public hidebysig newslot virtual
- instance void EnumerateProcesses([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugProcessEnum& marshal( interface) ppProcess) runtime managed internalcall
- {
- .override Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebug::EnumerateProcesses
- } // end of method CorDebugClass::EnumerateProcesses
-
- .method public hidebysig newslot virtual
- instance void GetProcess([in] uint32 dwProcessId,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugProcess& marshal( interface) ppProcess) runtime managed internalcall
- {
- .override Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebug::GetProcess
- } // end of method CorDebugClass::GetProcess
-
- .method public hidebysig newslot virtual
- instance void CanLaunchOrAttach([in] uint32 dwProcessId,
- [in] int32 win32DebuggingEnabled) runtime managed internalcall
- {
- .override Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebug::CanLaunchOrAttach
- } // end of method CorDebugClass::CanLaunchOrAttach
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugClass
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebug
- implements Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebug
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.CoClassAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 3C 4D 69 63 72 6F 73 6F 66 74 2E 53 61 6D // ..<Microsoft.Sam
- 70 6C 65 73 2E 44 65 62 75 67 67 69 6E 67 2E 43 // ples.Debugging.C
- 6F 72 44 65 62 75 67 2E 4E 61 74 69 76 65 41 70 // orDebug.NativeAp
- 69 2E 43 6F 72 44 65 62 75 67 43 6C 61 73 73 00 // i.CorDebugClass.
- 00 )
-
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 33 44 36 46 35 46 36 31 2D 37 35 33 38 // ..$3D6F5F61-7538
- 2D 31 31 44 33 2D 38 44 35 42 2D 30 30 31 30 34 // -11D3-8D5B-00104
- 42 33 35 45 37 45 46 00 00 ) // B35E7EF..
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebug
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebug
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 33 44 36 46 35 46 36 31 2D 37 35 33 38 // ..$3D6F5F61-7538
- 2D 31 31 44 33 2D 38 44 35 42 2D 30 30 31 30 34 // -11D3-8D5B-00104
- 42 33 35 45 37 45 46 00 00 ) // B35E7EF..
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .method public hidebysig newslot abstract virtual
- instance void Initialize() runtime managed internalcall
- {
- } // end of method ICorDebug::Initialize
-
- .method public hidebysig newslot abstract virtual
- instance void Terminate() runtime managed internalcall
- {
- } // end of method ICorDebug::Terminate
-
- .method public hidebysig newslot abstract virtual
- instance void SetManagedHandler([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugManagedCallback marshal( interface) pCallback) runtime managed internalcall
- {
- } // end of method ICorDebug::SetManagedHandler
-
- .method public hidebysig newslot abstract virtual
- instance void SetUnmanagedHandler([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugUnmanagedCallback marshal( interface) pCallback) runtime managed internalcall
- {
- } // end of method ICorDebug::SetUnmanagedHandler
-
- .method public hidebysig newslot abstract virtual
- instance void CreateProcess([in] string marshal( lpwstr) lpApplicationName,
- [in] string marshal( lpwstr) lpCommandLine,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.SECURITY_ATTRIBUTES lpProcessAttributes,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.SECURITY_ATTRIBUTES lpThreadAttributes,
- [in] int32 bInheritHandles,
- [in] uint32 dwCreationFlags,
- [in] native int lpEnvironment,
- [in] string marshal( lpwstr) lpCurrentDirectory,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.STARTUPINFO lpStartupInfo,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.PROCESS_INFORMATION lpProcessInformation,
- [in] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugCreateProcessFlags debuggingFlags,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugProcess& marshal( interface) ppProcess) runtime managed internalcall
- {
- } // end of method ICorDebug::CreateProcess
-
- .method public hidebysig newslot abstract virtual
- instance void DebugActiveProcess([in] uint32 id,
- [in] int32 win32Attach,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugProcess& marshal( interface) ppProcess) runtime managed internalcall
- {
- } // end of method ICorDebug::DebugActiveProcess
-
- .method public hidebysig newslot abstract virtual
- instance void EnumerateProcesses([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugProcessEnum& marshal( interface) ppProcess) runtime managed internalcall
- {
- } // end of method ICorDebug::EnumerateProcesses
-
- .method public hidebysig newslot abstract virtual
- instance void GetProcess([in] uint32 dwProcessId,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugProcess& marshal( interface) ppProcess) runtime managed internalcall
- {
- } // end of method ICorDebug::GetProcess
-
- .method public hidebysig newslot abstract virtual
- instance void CanLaunchOrAttach([in] uint32 dwProcessId,
- [in] int32 win32DebuggingEnabled) runtime managed internalcall
- {
- } // end of method ICorDebug::CanLaunchOrAttach
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebug
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugManagedCallback
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 33 44 36 46 35 46 36 30 2D 37 35 33 38 // ..$3D6F5F60-7538
- 2D 31 31 44 33 2D 38 44 35 42 2D 30 30 31 30 34 // -11D3-8D5B-00104
- 42 33 35 45 37 45 46 00 00 ) // B35E7EF..
- .method public hidebysig newslot abstract virtual
- instance void Breakpoint([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAppDomain marshal( interface) pAppDomain,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugThread marshal( interface) pThread,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugBreakpoint marshal( interface) pBreakpoint) runtime managed internalcall
- {
- } // end of method ICorDebugManagedCallback::Breakpoint
-
- .method public hidebysig newslot abstract virtual
- instance void StepComplete([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAppDomain marshal( interface) pAppDomain,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugThread marshal( interface) pThread,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugStepper marshal( interface) pStepper,
- [in] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugStepReason reason) runtime managed internalcall
- {
- } // end of method ICorDebugManagedCallback::StepComplete
-
- .method public hidebysig newslot abstract virtual
- instance void Break([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAppDomain marshal( interface) pAppDomain,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugThread marshal( interface) thread) runtime managed internalcall
- {
- } // end of method ICorDebugManagedCallback::Break
-
- .method public hidebysig newslot abstract virtual
- instance void Exception([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAppDomain marshal( interface) pAppDomain,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugThread marshal( interface) pThread,
- [in] int32 unhandled) runtime managed internalcall
- {
- } // end of method ICorDebugManagedCallback::Exception
-
- .method public hidebysig newslot abstract virtual
- instance void EvalComplete([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAppDomain marshal( interface) pAppDomain,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugThread marshal( interface) pThread,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugEval marshal( interface) pEval) runtime managed internalcall
- {
- } // end of method ICorDebugManagedCallback::EvalComplete
-
- .method public hidebysig newslot abstract virtual
- instance void EvalException([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAppDomain marshal( interface) pAppDomain,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugThread marshal( interface) pThread,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugEval marshal( interface) pEval) runtime managed internalcall
- {
- } // end of method ICorDebugManagedCallback::EvalException
-
- .method public hidebysig newslot abstract virtual
- instance void CreateProcess([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugProcess marshal( interface) pProcess) runtime managed internalcall
- {
- } // end of method ICorDebugManagedCallback::CreateProcess
-
- .method public hidebysig newslot abstract virtual
- instance void ExitProcess([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugProcess marshal( interface) pProcess) runtime managed internalcall
- {
- } // end of method ICorDebugManagedCallback::ExitProcess
-
- .method public hidebysig newslot abstract virtual
- instance void CreateThread([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAppDomain marshal( interface) pAppDomain,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugThread marshal( interface) thread) runtime managed internalcall
- {
- } // end of method ICorDebugManagedCallback::CreateThread
-
- .method public hidebysig newslot abstract virtual
- instance void ExitThread([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAppDomain marshal( interface) pAppDomain,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugThread marshal( interface) thread) runtime managed internalcall
- {
- } // end of method ICorDebugManagedCallback::ExitThread
-
- .method public hidebysig newslot abstract virtual
- instance void LoadModule([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAppDomain marshal( interface) pAppDomain,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugModule marshal( interface) pModule) runtime managed internalcall
- {
- } // end of method ICorDebugManagedCallback::LoadModule
-
- .method public hidebysig newslot abstract virtual
- instance void UnloadModule([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAppDomain marshal( interface) pAppDomain,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugModule marshal( interface) pModule) runtime managed internalcall
- {
- } // end of method ICorDebugManagedCallback::UnloadModule
-
- .method public hidebysig newslot abstract virtual
- instance void LoadClass([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAppDomain marshal( interface) pAppDomain,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugClass marshal( interface) c) runtime managed internalcall
- {
- } // end of method ICorDebugManagedCallback::LoadClass
-
- .method public hidebysig newslot abstract virtual
- instance void UnloadClass([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAppDomain marshal( interface) pAppDomain,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugClass marshal( interface) c) runtime managed internalcall
- {
- } // end of method ICorDebugManagedCallback::UnloadClass
-
- .method public hidebysig newslot abstract virtual
- instance void DebuggerError([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugProcess marshal( interface) pProcess,
- [in] int32 marshal( error) errorHR,
- [in] uint32 errorCode) runtime managed internalcall
- {
- } // end of method ICorDebugManagedCallback::DebuggerError
-
- .method public hidebysig newslot abstract virtual
- instance void LogMessage([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAppDomain marshal( interface) pAppDomain,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugThread marshal( interface) pThread,
- [in] int32 lLevel,
- [in] string marshal( lpwstr) pLogSwitchName,
- [in] string marshal( lpwstr) pMessage) runtime managed internalcall
- {
- } // end of method ICorDebugManagedCallback::LogMessage
-
- .method public hidebysig newslot abstract virtual
- instance void LogSwitch([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAppDomain marshal( interface) pAppDomain,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugThread marshal( interface) pThread,
- [in] int32 lLevel,
- [in] uint32 ulReason,
- [in] string marshal( lpwstr) pLogSwitchName,
- [in] string marshal( lpwstr) pParentName) runtime managed internalcall
- {
- } // end of method ICorDebugManagedCallback::LogSwitch
-
- .method public hidebysig newslot abstract virtual
- instance void CreateAppDomain([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugProcess marshal( interface) pProcess,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAppDomain marshal( interface) pAppDomain) runtime managed internalcall
- {
- } // end of method ICorDebugManagedCallback::CreateAppDomain
-
- .method public hidebysig newslot abstract virtual
- instance void ExitAppDomain([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugProcess marshal( interface) pProcess,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAppDomain marshal( interface) pAppDomain) runtime managed internalcall
- {
- } // end of method ICorDebugManagedCallback::ExitAppDomain
-
- .method public hidebysig newslot abstract virtual
- instance void LoadAssembly([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAppDomain marshal( interface) pAppDomain,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAssembly marshal( interface) pAssembly) runtime managed internalcall
- {
- } // end of method ICorDebugManagedCallback::LoadAssembly
-
- .method public hidebysig newslot abstract virtual
- instance void UnloadAssembly([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAppDomain marshal( interface) pAppDomain,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAssembly marshal( interface) pAssembly) runtime managed internalcall
- {
- } // end of method ICorDebugManagedCallback::UnloadAssembly
-
- .method public hidebysig newslot abstract virtual
- instance void ControlCTrap([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugProcess marshal( interface) pProcess) runtime managed internalcall
- {
- } // end of method ICorDebugManagedCallback::ControlCTrap
-
- .method public hidebysig newslot abstract virtual
- instance void NameChange([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAppDomain marshal( interface) pAppDomain,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugThread marshal( interface) pThread) runtime managed internalcall
- {
- } // end of method ICorDebugManagedCallback::NameChange
-
- .method public hidebysig newslot abstract virtual
- instance void UpdateModuleSymbols([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAppDomain marshal( interface) pAppDomain,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugModule marshal( interface) pModule,
- [in] class [mscorlib]System.Runtime.InteropServices.ComTypes.IStream marshal( interface) pSymbolStream) runtime managed internalcall
- {
- } // end of method ICorDebugManagedCallback::UpdateModuleSymbols
-
- .method public hidebysig newslot abstract virtual
- instance void EditAndContinueRemap([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAppDomain marshal( interface) pAppDomain,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugThread marshal( interface) pThread,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFunction marshal( interface) pFunction,
- [in] int32 fAccurate) runtime managed internalcall
- {
- } // end of method ICorDebugManagedCallback::EditAndContinueRemap
-
- .method public hidebysig newslot abstract virtual
- instance void BreakpointSetError([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAppDomain marshal( interface) pAppDomain,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugThread marshal( interface) pThread,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugBreakpoint marshal( interface) pBreakpoint,
- [in] uint32 dwError) runtime managed internalcall
- {
- } // end of method ICorDebugManagedCallback::BreakpointSetError
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugManagedCallback
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAppDomain
- implements Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugController
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.ComConversionLossAttribute::.ctor() = ( 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 33 44 36 46 35 46 36 33 2D 37 35 33 38 // ..$3D6F5F63-7538
- 2D 31 31 44 33 2D 38 44 35 42 2D 30 30 31 30 34 // -11D3-8D5B-00104
- 42 33 35 45 37 45 46 00 00 ) // B35E7EF..
- .method public hidebysig newslot abstract virtual
- instance void Stop([in] uint32 dwTimeout) runtime managed internalcall
- {
- } // end of method ICorDebugAppDomain::Stop
-
- .method public hidebysig newslot abstract virtual
- instance void Continue([in] int32 fIsOutOfBand) runtime managed internalcall
- {
- } // end of method ICorDebugAppDomain::Continue
-
- .method public hidebysig newslot abstract virtual
- instance void IsRunning([out] int32& pbRunning) runtime managed internalcall
- {
- } // end of method ICorDebugAppDomain::IsRunning
-
- .method public hidebysig newslot abstract virtual
- instance void HasQueuedCallbacks([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugThread marshal( interface) pThread,
- [out] int32& pbQueued) runtime managed internalcall
- {
- } // end of method ICorDebugAppDomain::HasQueuedCallbacks
-
- .method public hidebysig newslot abstract virtual
- instance void EnumerateThreads([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugThreadEnum& marshal( interface) ppThreads) runtime managed internalcall
- {
- } // end of method ICorDebugAppDomain::EnumerateThreads
-
- .method public hidebysig newslot abstract virtual
- instance void SetAllThreadsDebugState([in] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugThreadState state,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugThread marshal( interface) pExceptThisThread) runtime managed internalcall
- {
- } // end of method ICorDebugAppDomain::SetAllThreadsDebugState
-
- .method public hidebysig newslot abstract virtual
- instance void Detach() runtime managed internalcall
- {
- } // end of method ICorDebugAppDomain::Detach
-
- .method public hidebysig newslot abstract virtual
- instance void Terminate([in] uint32 exitCode) runtime managed internalcall
- {
- } // end of method ICorDebugAppDomain::Terminate
-
- .method public hidebysig newslot abstract virtual
- instance void CanCommitChanges([in] uint32 cSnapshots,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugEditAndContinueSnapshot& marshal( interface) pSnapshots,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugErrorInfoEnum& marshal( interface) pError) runtime managed internalcall
- {
- } // end of method ICorDebugAppDomain::CanCommitChanges
-
- .method public hidebysig newslot abstract virtual
- instance void CommitChanges([in] uint32 cSnapshots,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugEditAndContinueSnapshot& marshal( interface) pSnapshots,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugErrorInfoEnum& marshal( interface) pError) runtime managed internalcall
- {
- } // end of method ICorDebugAppDomain::CommitChanges
-
- .method public hidebysig newslot abstract virtual
- instance void GetProcess([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugProcess& marshal( interface) ppProcess) runtime managed internalcall
- {
- } // end of method ICorDebugAppDomain::GetProcess
-
- .method public hidebysig newslot abstract virtual
- instance void EnumerateAssemblies([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAssemblyEnum& marshal( interface) ppAssemblies) runtime managed internalcall
- {
- } // end of method ICorDebugAppDomain::EnumerateAssemblies
-
- .method public hidebysig newslot abstract virtual
- instance void GetModuleFromMetaDataInterface([in] object marshal( iunknown) pIMetaData,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugModule& marshal( interface) ppModule) runtime managed internalcall
- {
- } // end of method ICorDebugAppDomain::GetModuleFromMetaDataInterface
-
- .method public hidebysig newslot abstract virtual
- instance void EnumerateBreakpoints([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugBreakpointEnum& marshal( interface) ppBreakpoints) runtime managed internalcall
- {
- } // end of method ICorDebugAppDomain::EnumerateBreakpoints
-
- .method public hidebysig newslot abstract virtual
- instance void EnumerateSteppers([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugStepperEnum& marshal( interface) ppSteppers) runtime managed internalcall
- {
- } // end of method ICorDebugAppDomain::EnumerateSteppers
-
- .method public hidebysig newslot abstract virtual
- instance void IsAttached([out] int32& pbAttached) runtime managed internalcall
- {
- } // end of method ICorDebugAppDomain::IsAttached
-
- .method public hidebysig newslot abstract virtual
- instance void GetName([in] uint32 cchName,
- [out] uint32& pcchName,
- [out] class [mscorlib]System.Text.StringBuilder marshal( lpwstr) szName
- ) runtime managed internalcall
- {
- } // end of method ICorDebugAppDomain::GetName
-
- .method public hidebysig newslot abstract virtual
- instance void GetObject([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValue& marshal( interface) ppObject) runtime managed internalcall
- {
- } // end of method ICorDebugAppDomain::GetObject
-
- .method public hidebysig newslot abstract virtual
- instance void Attach() runtime managed internalcall
- {
- } // end of method ICorDebugAppDomain::Attach
-
- .method public hidebysig newslot abstract virtual
- instance void GetID([out] uint32& pId) runtime managed internalcall
- {
- } // end of method ICorDebugAppDomain::GetID
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAppDomain
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugController
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 33 44 36 46 35 46 36 32 2D 37 35 33 38 // ..$3D6F5F62-7538
- 2D 31 31 44 33 2D 38 44 35 42 2D 30 30 31 30 34 // -11D3-8D5B-00104
- 42 33 35 45 37 45 46 00 00 ) // B35E7EF..
- .method public hidebysig newslot abstract virtual
- instance void Stop([in] uint32 dwTimeout) runtime managed internalcall
- {
- } // end of method ICorDebugController::Stop
-
- .method public hidebysig newslot abstract virtual
- instance void Continue([in] int32 fIsOutOfBand) runtime managed internalcall
- {
- } // end of method ICorDebugController::Continue
-
- .method public hidebysig newslot abstract virtual
- instance void IsRunning([out] int32& pbRunning) runtime managed internalcall
- {
- } // end of method ICorDebugController::IsRunning
-
- .method public hidebysig newslot abstract virtual
- instance void HasQueuedCallbacks([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugThread marshal( interface) pThread,
- [out] int32& pbQueued) runtime managed internalcall
- {
- } // end of method ICorDebugController::HasQueuedCallbacks
-
- .method public hidebysig newslot abstract virtual
- instance void EnumerateThreads([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugThreadEnum& marshal( interface) ppThreads) runtime managed internalcall
- {
- } // end of method ICorDebugController::EnumerateThreads
-
- .method public hidebysig newslot abstract virtual
- instance void SetAllThreadsDebugState([in] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugThreadState state,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugThread marshal( interface) pExceptThisThread) runtime managed internalcall
- {
- } // end of method ICorDebugController::SetAllThreadsDebugState
-
- .method public hidebysig newslot abstract virtual
- instance void Detach() runtime managed internalcall
- {
- } // end of method ICorDebugController::Detach
-
- .method public hidebysig newslot abstract virtual
- instance void Terminate([in] uint32 exitCode) runtime managed internalcall
- {
- } // end of method ICorDebugController::Terminate
-
- .method public hidebysig newslot abstract virtual
- instance void CanCommitChanges([in] uint32 cSnapshots,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugEditAndContinueSnapshot& marshal( interface) pSnapshots,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugErrorInfoEnum& marshal( interface) pError) runtime managed internalcall
- {
- } // end of method ICorDebugController::CanCommitChanges
-
- .method public hidebysig newslot abstract virtual
- instance void CommitChanges([in] uint32 cSnapshots,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugEditAndContinueSnapshot& marshal( interface) pSnapshots,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugErrorInfoEnum& marshal( interface) pError) runtime managed internalcall
- {
- } // end of method ICorDebugController::CommitChanges
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugController
-
-.namespace Microsoft.Samples.Debugging.CorDebug.NativeApi
-{
- .class public sequential ansi sealed beforefieldinit _CodeChunkInfo
- extends [mscorlib]System.ValueType
- {
- .pack 8
- .size 0
- .field public uint64 startAddr
- .field public uint32 length
- } // end of class _CodeChunkInfo
-
- .class public sequential ansi sealed beforefieldinit COR_ACTIVE_FUNCTION
- extends [mscorlib]System.ValueType
- {
- .pack 4
- .size 0
- .field public class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAppDomain pAppDomain
- .field public class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugModule pModule
- .field public class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFunction2 pFunction
- .field public uint32 ilOffset
- .field public uint32 Flags
- } // end of class 'COR_ACTIVE_FUNCTION'
-
- .class public sequential ansi sealed beforefieldinit COR_DEBUG_IL_TO_NATIVE_MAP
- extends [mscorlib]System.ValueType
- {
- .pack 4
- .size 0
- .field public uint32 ilOffset
- .field public uint32 nativeStartOffset
- .field public uint32 nativeEndOffset
- } // end of class 'COR_DEBUG_IL_TO_NATIVE_MAP'
-}
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugThread
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 39 33 38 43 36 44 36 36 2D 37 46 42 36 // ..$938C6D66-7FB6
- 2D 34 46 36 39 2D 42 33 38 39 2D 34 32 35 42 38 // -4F69-B389-425B8
- 39 38 37 33 32 39 42 00 00 ) // 987329B..
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .method public hidebysig newslot abstract virtual
- instance void GetProcess([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugProcess& marshal( interface) ppProcess) runtime managed internalcall
- {
- } // end of method ICorDebugThread::GetProcess
-
- .method public hidebysig newslot abstract virtual
- instance void GetID([out] uint32& pdwThreadId) runtime managed internalcall
- {
- } // end of method ICorDebugThread::GetID
-
- .method public hidebysig newslot abstract virtual
- instance void GetHandle([out] native int& phThreadHandle) runtime managed internalcall
- {
- } // end of method ICorDebugThread::GetHandle
-
- .method public hidebysig newslot abstract virtual
- instance void GetAppDomain([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAppDomain& marshal( interface) ppAppDomain) runtime managed internalcall
- {
- } // end of method ICorDebugThread::GetAppDomain
-
- .method public hidebysig newslot abstract virtual
- instance void SetDebugState([in] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugThreadState state) runtime managed internalcall
- {
- } // end of method ICorDebugThread::SetDebugState
-
- .method public hidebysig newslot abstract virtual
- instance void GetDebugState([out] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugThreadState& pState) runtime managed internalcall
- {
- } // end of method ICorDebugThread::GetDebugState
-
- .method public hidebysig newslot abstract virtual
- instance void GetUserState([out] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugUserState& pState) runtime managed internalcall
- {
- } // end of method ICorDebugThread::GetUserState
-
- .method public hidebysig newslot abstract virtual
- instance void GetCurrentException([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValue& marshal( interface) ppExceptionObject) runtime managed internalcall
- {
- } // end of method ICorDebugThread::GetCurrentException
-
- .method public hidebysig newslot abstract virtual
- instance void ClearCurrentException() runtime managed internalcall
- {
- } // end of method ICorDebugThread::ClearCurrentException
-
- .method public hidebysig newslot abstract virtual
- instance void CreateStepper([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugStepper& marshal( interface) ppStepper) runtime managed internalcall
- {
- } // end of method ICorDebugThread::CreateStepper
-
- .method public hidebysig newslot abstract virtual
- instance void EnumerateChains([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugChainEnum& marshal( interface) ppChains) runtime managed internalcall
- {
- } // end of method ICorDebugThread::EnumerateChains
-
- .method public hidebysig newslot abstract virtual
- instance void GetActiveChain([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugChain& marshal( interface) ppChain) runtime managed internalcall
- {
- } // end of method ICorDebugThread::GetActiveChain
-
- .method public hidebysig newslot abstract virtual
- instance void GetActiveFrame([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFrame& marshal( interface) ppFrame) runtime managed internalcall
- {
- } // end of method ICorDebugThread::GetActiveFrame
-
- .method public hidebysig newslot abstract virtual
- instance void GetRegisterSet([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugRegisterSet& marshal( interface) ppRegisters) runtime managed internalcall
- {
- } // end of method ICorDebugThread::GetRegisterSet
-
- .method public hidebysig newslot abstract virtual
- instance void CreateEval([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugEval& marshal( interface) ppEval) runtime managed internalcall
- {
- } // end of method ICorDebugThread::CreateEval
-
- .method public hidebysig newslot abstract virtual
- instance void GetObject([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValue& marshal( interface) ppObject) runtime managed internalcall
- {
- } // end of method ICorDebugThread::GetObject
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugThread
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugProcess
- implements Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugController
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 33 44 36 46 35 46 36 34 2D 37 35 33 38 // ..$3D6F5F64-7538
- 2D 31 31 44 33 2D 38 44 35 42 2D 30 30 31 30 34 // -11D3-8D5B-00104
- 42 33 35 45 37 45 46 00 00 ) // B35E7EF..
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.ComConversionLossAttribute::.ctor() = ( 01 00 00 00 )
- .method public hidebysig newslot abstract virtual
- instance void Stop([in] uint32 dwTimeout) runtime managed internalcall
- {
- } // end of method ICorDebugProcess::Stop
-
- .method public hidebysig newslot abstract virtual
- instance void Continue([in] int32 fIsOutOfBand) runtime managed internalcall
- {
- } // end of method ICorDebugProcess::Continue
-
- .method public hidebysig newslot abstract virtual
- instance void IsRunning([out] int32& pbRunning) runtime managed internalcall
- {
- } // end of method ICorDebugProcess::IsRunning
-
- .method public hidebysig newslot abstract virtual
- instance void HasQueuedCallbacks([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugThread marshal( interface) pThread,
- [out] int32& pbQueued) runtime managed internalcall
- {
- } // end of method ICorDebugProcess::HasQueuedCallbacks
-
- .method public hidebysig newslot abstract virtual
- instance void EnumerateThreads([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugThreadEnum& marshal( interface) ppThreads) runtime managed internalcall
- {
- } // end of method ICorDebugProcess::EnumerateThreads
-
- .method public hidebysig newslot abstract virtual
- instance void SetAllThreadsDebugState([in] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugThreadState state,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugThread marshal( interface) pExceptThisThread) runtime managed internalcall
- {
- } // end of method ICorDebugProcess::SetAllThreadsDebugState
-
- .method public hidebysig newslot abstract virtual
- instance void Detach() runtime managed internalcall
- {
- } // end of method ICorDebugProcess::Detach
-
- .method public hidebysig newslot abstract virtual
- instance void Terminate([in] uint32 exitCode) runtime managed internalcall
- {
- } // end of method ICorDebugProcess::Terminate
-
- .method public hidebysig newslot abstract virtual
- instance void CanCommitChanges([in] uint32 cSnapshots,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugEditAndContinueSnapshot& marshal( interface) pSnapshots,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugErrorInfoEnum& marshal( interface) pError) runtime managed internalcall
- {
- } // end of method ICorDebugProcess::CanCommitChanges
-
- .method public hidebysig newslot abstract virtual
- instance void CommitChanges([in] uint32 cSnapshots,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugEditAndContinueSnapshot& marshal( interface) pSnapshots,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugErrorInfoEnum& marshal( interface) pError) runtime managed internalcall
- {
- } // end of method ICorDebugProcess::CommitChanges
-
- .method public hidebysig newslot abstract virtual
- instance void GetID([out] uint32& pdwProcessId) runtime managed internalcall
- {
- } // end of method ICorDebugProcess::GetID
-
- .method public hidebysig newslot abstract virtual
- instance void GetHandle([out] native int& phProcessHandle) runtime managed internalcall
- {
- .param [1]
- .custom instance void [mscorlib]System.Runtime.InteropServices.ComAliasNameAttribute::.ctor(string) = ( 01 00 09 48 50 52 4F 43 45 53 53 2A 00 00 ) // ...HPROCESS*..
- } // end of method ICorDebugProcess::GetHandle
-
- .method public hidebysig newslot abstract virtual
- instance void GetThread([in] uint32 dwThreadId,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugThread& marshal( interface) ppThread) runtime managed internalcall
- {
- } // end of method ICorDebugProcess::GetThread
-
- .method public hidebysig newslot abstract virtual
- instance void EnumerateObjects([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugObjectEnum& marshal( interface) ppObjects) runtime managed internalcall
- {
- } // end of method ICorDebugProcess::EnumerateObjects
-
- .method public hidebysig newslot abstract virtual
- instance void IsTransitionStub([in] uint64 address,
- [out] int32& pbTransitionStub) runtime managed internalcall
- {
- } // end of method ICorDebugProcess::IsTransitionStub
-
- .method public hidebysig newslot abstract virtual
- instance void IsOSSuspended([in] uint32 threadID,
- [out] int32& pbSuspended) runtime managed internalcall
- {
- } // end of method ICorDebugProcess::IsOSSuspended
-
- .method public hidebysig newslot abstract virtual
- instance void GetThreadContext([in] uint32 threadID,
- [in] uint32 contextSize,
- [in] native int context) runtime managed internalcall
- {
- .param [3]
- .custom instance void [mscorlib]System.Runtime.InteropServices.ComAliasNameAttribute::.ctor(string) = ( 01 00 05 42 59 54 45 2A 00 00 ) // ...BYTE*..
- } // end of method ICorDebugProcess::GetThreadContext
-
- .method public hidebysig newslot abstract virtual
- instance void SetThreadContext([in] uint32 threadID,
- [in] uint32 contextSize,
- [in] native int context) runtime managed internalcall
- {
- .param [3]
- .custom instance void [mscorlib]System.Runtime.InteropServices.ComAliasNameAttribute::.ctor(string) = ( 01 00 05 42 59 54 45 2A 00 00 ) // ...BYTE*..
- } // end of method ICorDebugProcess::SetThreadContext
-
- .method public hidebysig newslot abstract virtual
- instance void ReadMemory([in] uint64 address,
- [in] uint32 size,
- [out] unsigned int8[] marshal([]) buffer,
- [out] uint32& read) runtime managed internalcall
- {
- .param [4]
- .custom instance void [mscorlib]System.Runtime.InteropServices.ComAliasNameAttribute::.ctor(string) = ( 01 00 07 53 49 5A 45 5F 54 2A 00 00 ) // ...SIZE_T*..
- } // end of method ICorDebugProcess::ReadMemory
-
- .method public hidebysig newslot abstract virtual
- instance void WriteMemory([in] uint64 address,
- [in] uint32 size,
- [in] unsigned int8[] marshal([]) buffer,
- [out] uint32& written) runtime managed internalcall
- {
- .param [4]
- .custom instance void [mscorlib]System.Runtime.InteropServices.ComAliasNameAttribute::.ctor(string) = ( 01 00 07 53 49 5A 45 5F 54 2A 00 00 ) // ...SIZE_T*..
- } // end of method ICorDebugProcess::WriteMemory
-
- .method public hidebysig newslot abstract virtual
- instance void ClearCurrentException([in] uint32 threadID) runtime managed internalcall
- {
- } // end of method ICorDebugProcess::ClearCurrentException
-
- .method public hidebysig newslot abstract virtual
- instance void EnableLogMessages([in] int32 fOnOff) runtime managed internalcall
- {
- } // end of method ICorDebugProcess::EnableLogMessages
-
- .method public hidebysig newslot abstract virtual
- instance void ModifyLogSwitch([in] string marshal( lpwstr) pLogSwitchName,
- [in] int32 lLevel) runtime managed internalcall
- {
- } // end of method ICorDebugProcess::ModifyLogSwitch
-
- .method public hidebysig newslot abstract virtual
- instance void EnumerateAppDomains([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAppDomainEnum& marshal( interface) ppAppDomains) runtime managed internalcall
- {
- } // end of method ICorDebugProcess::EnumerateAppDomains
-
- .method public hidebysig newslot abstract virtual
- instance void GetObject([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValue& marshal( interface) ppObject) runtime managed internalcall
- {
- } // end of method ICorDebugProcess::GetObject
-
- .method public hidebysig newslot abstract virtual
- instance void ThreadForFiberCookie([in] uint32 fiberCookie,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugThread& marshal( interface) ppThread) runtime managed internalcall
- {
- } // end of method ICorDebugProcess::ThreadForFiberCookie
-
- .method public hidebysig newslot abstract virtual
- instance void GetHelperThreadID([out] uint32& pThreadID) runtime managed internalcall
- {
- } // end of method ICorDebugProcess::GetHelperThreadID
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugProcess
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugObjectEnum
- implements Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugEnum
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 43 43 37 42 43 42 30 32 2D 38 41 36 38 // ..$CC7BCB02-8A68
- 2D 31 31 44 32 2D 39 38 33 43 2D 30 30 30 30 46 // -11D2-983C-0000F
- 38 30 38 33 34 32 44 00 00 ) // 808342D..
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.ComConversionLossAttribute::.ctor() = ( 01 00 00 00 )
- .method public hidebysig newslot abstract virtual
- instance void Skip([in] uint32 celt) runtime managed internalcall
- {
- } // end of method ICorDebugObjectEnum::Skip
-
- .method public hidebysig newslot abstract virtual
- instance void Reset() runtime managed internalcall
- {
- } // end of method ICorDebugObjectEnum::Reset
-
- .method public hidebysig newslot abstract virtual
- instance void Clone([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugEnum& marshal( interface) ppEnum) runtime managed internalcall
- {
- } // end of method ICorDebugObjectEnum::Clone
-
- .method public hidebysig newslot abstract virtual
- instance void GetCount([out] uint32& pcelt) runtime managed internalcall
- {
- } // end of method ICorDebugObjectEnum::GetCount
-
- .method public hidebysig newslot abstract virtual
- instance int32 Next([in] uint32 celt,
- [out] unsigned int64[] marshal([ ]) objects,
- [out] uint32& pceltFetched) runtime managed internalcall preservesig
- {
- } // end of method ICorDebugObjectEnum::Next
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugObjectEnum
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugEnum
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 43 43 37 42 43 42 30 31 2D 38 41 36 38 // ..$CC7BCB01-8A68
- 2D 31 31 44 32 2D 39 38 33 43 2D 30 30 30 30 46 // -11D2-983C-0000F
- 38 30 38 33 34 32 44 00 00 ) // 808342D..
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .method public hidebysig newslot abstract virtual
- instance void Skip([in] uint32 celt) runtime managed internalcall
- {
- } // end of method ICorDebugEnum::Skip
-
- .method public hidebysig newslot abstract virtual
- instance void Reset() runtime managed internalcall
- {
- } // end of method ICorDebugEnum::Reset
-
- .method public hidebysig newslot abstract virtual
- instance void Clone([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugEnum& marshal( interface) ppEnum) runtime managed internalcall
- {
- } // end of method ICorDebugEnum::Clone
-
- .method public hidebysig newslot abstract virtual
- instance void GetCount([out] uint32& pcelt) runtime managed internalcall
- {
- } // end of method ICorDebugEnum::GetCount
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugEnum
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAppDomainEnum
- implements Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugEnum
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.ComConversionLossAttribute::.ctor() = ( 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 36 33 43 41 31 42 32 34 2D 34 33 35 39 // ..$63CA1B24-4359
- 2D 34 38 38 33 2D 42 44 35 37 2D 31 33 46 38 31 // -4883-BD57-13F81
- 35 46 35 38 37 34 34 00 00 ) // 5F58744..
- .method public hidebysig newslot abstract virtual
- instance void Skip([in] uint32 celt) runtime managed internalcall
- {
- } // end of method ICorDebugAppDomainEnum::Skip
-
- .method public hidebysig newslot abstract virtual
- instance void Reset() runtime managed internalcall
- {
- } // end of method ICorDebugAppDomainEnum::Reset
-
- .method public hidebysig newslot abstract virtual
- instance void Clone([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugEnum& marshal( interface) ppEnum) runtime managed internalcall
- {
- } // end of method ICorDebugAppDomainEnum::Clone
-
- .method public hidebysig newslot abstract virtual
- instance void GetCount([out] uint32& pcelt) runtime managed internalcall
- {
- } // end of method ICorDebugAppDomainEnum::GetCount
-
- .method public hidebysig newslot abstract virtual
- instance int32 Next([in] uint32 celt,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAppDomain[] marshal([ ]) values,
- [out] uint32& pceltFetched) runtime managed internalcall preservesig
- {
- } // end of method ICorDebugAppDomainEnum::Next
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAppDomainEnum
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValue
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 43 43 37 42 43 41 46 37 2D 38 41 36 38 // ..$CC7BCAF7-8A68
- 2D 31 31 44 32 2D 39 38 33 43 2D 30 30 30 30 46 // -11D2-983C-0000F
- 38 30 38 33 34 32 44 00 00 ) // 808342D..
- .method public hidebysig newslot abstract virtual
- instance void GetType([out] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType& pType) runtime managed internalcall
- {
- } // end of method ICorDebugValue::GetType
-
- .method public hidebysig newslot abstract virtual
- instance void GetSize([out] uint32& pSize) runtime managed internalcall
- {
- } // end of method ICorDebugValue::GetSize
-
- .method public hidebysig newslot abstract virtual
- instance void GetAddress([out] uint64& pAddress) runtime managed internalcall
- {
- } // end of method ICorDebugValue::GetAddress
-
- .method public hidebysig newslot abstract virtual
- instance void CreateBreakpoint([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValueBreakpoint& marshal( interface) ppBreakpoint) runtime managed internalcall
- {
- } // end of method ICorDebugValue::CreateBreakpoint
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValue
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValueBreakpoint
- implements Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugBreakpoint
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 43 43 37 42 43 41 45 42 2D 38 41 36 38 // ..$CC7BCAEB-8A68
- 2D 31 31 44 32 2D 39 38 33 43 2D 30 30 30 30 46 // -11D2-983C-0000F
- 38 30 38 33 34 32 44 00 00 ) // 808342D..
- .method public hidebysig newslot abstract virtual
- instance void Activate([in] int32 bActive) runtime managed internalcall
- {
- } // end of method ICorDebugValueBreakpoint::Activate
-
- .method public hidebysig newslot abstract virtual
- instance void IsActive([out] int32& pbActive) runtime managed internalcall
- {
- } // end of method ICorDebugValueBreakpoint::IsActive
-
- .method public hidebysig newslot abstract virtual
- instance void GetValue([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValue& marshal( interface) ppValue) runtime managed internalcall
- {
- } // end of method ICorDebugValueBreakpoint::GetValue
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValueBreakpoint
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugBreakpoint
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 43 43 37 42 43 41 45 38 2D 38 41 36 38 // ..$CC7BCAE8-8A68
- 2D 31 31 44 32 2D 39 38 33 43 2D 30 30 30 30 46 // -11D2-983C-0000F
- 38 30 38 33 34 32 44 00 00 ) // 808342D..
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .method public hidebysig newslot abstract virtual
- instance void Activate([in] int32 bActive) runtime managed internalcall
- {
- } // end of method ICorDebugBreakpoint::Activate
-
- .method public hidebysig newslot abstract virtual
- instance void IsActive([out] int32& pbActive) runtime managed internalcall
- {
- } // end of method ICorDebugBreakpoint::IsActive
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugBreakpoint
-
-.class public auto ansi sealed Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugThreadState
- extends [mscorlib]System.Enum
-{
- .field public specialname rtspecialname int32 value__
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugThreadState THREAD_RUN = int32(0x00000000)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugThreadState THREAD_SUSPEND = int32(0x00000001)
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugThreadState
-
-.class public auto ansi sealed Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugUserState
- extends [mscorlib]System.Enum
-{
- .field public specialname rtspecialname int32 value__
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugUserState USER_STOP_REQUESTED = int32(0x00000001)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugUserState USER_SUSPEND_REQUESTED = int32(0x00000002)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugUserState USER_BACKGROUND = int32(0x00000004)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugUserState USER_UNSTARTED = int32(0x00000008)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugUserState USER_STOPPED = int32(0x00000010)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugUserState USER_WAIT_SLEEP_JOIN = int32(0x00000020)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugUserState USER_SUSPENDED = int32(0x00000040)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugUserState USER_UNSAFE_POINT = int32(0x00000080)
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugUserState
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugStepper
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 43 43 37 42 43 41 45 43 2D 38 41 36 38 // ..$CC7BCAEC-8A68
- 2D 31 31 44 32 2D 39 38 33 43 2D 30 30 30 30 46 // -11D2-983C-0000F
- 38 30 38 33 34 32 44 00 00 ) // 808342D..
- .method public hidebysig newslot abstract virtual
- instance void IsActive([out] int32& pbActive) runtime managed internalcall
- {
- } // end of method ICorDebugStepper::IsActive
-
- .method public hidebysig newslot abstract virtual
- instance void Deactivate() runtime managed internalcall
- {
- } // end of method ICorDebugStepper::Deactivate
-
- .method public hidebysig newslot abstract virtual
- instance void SetInterceptMask([in] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugIntercept mask) runtime managed internalcall
- {
- } // end of method ICorDebugStepper::SetInterceptMask
-
- .method public hidebysig newslot abstract virtual
- instance void SetUnmappedStopMask([in] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugUnmappedStop mask) runtime managed internalcall
- {
- } // end of method ICorDebugStepper::SetUnmappedStopMask
-
- .method public hidebysig newslot abstract virtual
- instance void Step([in] int32 bStepIn) runtime managed internalcall
- {
- } // end of method ICorDebugStepper::Step
-
- .method public hidebysig newslot abstract virtual
- instance void StepRange([in] int32 bStepIn,
- [in] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.COR_DEBUG_STEP_RANGE[] marshal([ ]) ranges,
- [in] uint32 cRangeCount) runtime managed internalcall
- {
- } // end of method ICorDebugStepper::StepRange
-
- .method public hidebysig newslot abstract virtual
- instance void StepOut() runtime managed internalcall
- {
- } // end of method ICorDebugStepper::StepOut
-
- .method public hidebysig newslot abstract virtual
- instance void SetRangeIL([in] int32 bIL) runtime managed internalcall
- {
- } // end of method ICorDebugStepper::SetRangeIL
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugStepper
-
-.class public auto ansi sealed Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugIntercept
- extends [mscorlib]System.Enum
-{
- .field public specialname rtspecialname int32 value__
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugIntercept INTERCEPT_NONE = int32(0x00000000)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugIntercept INTERCEPT_CLASS_INIT = int32(0x00000001)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugIntercept INTERCEPT_EXCEPTION_FILTER = int32(0x00000002)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugIntercept INTERCEPT_SECURITY = int32(0x00000004)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugIntercept INTERCEPT_CONTEXT_POLICY = int32(0x00000008)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugIntercept INTERCEPT_INTERCEPTION = int32(0x00000010)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugIntercept INTERCEPT_ALL = int32(0x0000FFFF)
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugIntercept
-
-.class public auto ansi sealed Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugUnmappedStop
- extends [mscorlib]System.Enum
-{
- .field public specialname rtspecialname int32 value__
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugUnmappedStop STOP_NONE = int32(0x00000000)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugUnmappedStop STOP_PROLOG = int32(0x00000001)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugUnmappedStop STOP_EPILOG = int32(0x00000002)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugUnmappedStop STOP_NO_MAPPING_INFO = int32(0x00000004)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugUnmappedStop STOP_OTHER_UNMAPPED = int32(0x00000008)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugUnmappedStop STOP_UNMANAGED = int32(0x00000010)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugUnmappedStop STOP_ALL = int32(0x0000FFFF)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugUnmappedStop STOP_ONLYJUSTMYCODE = int32(0x00010000)
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugUnmappedStop
-
-.class public sequential ansi sealed beforefieldinit Microsoft.Samples.Debugging.CorDebug.NativeApi.COR_DEBUG_STEP_RANGE
- extends [mscorlib]System.ValueType
-{
- .pack 4
- .size 0
- .field public uint32 startOffset
- .field public uint32 endOffset
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.COR_DEBUG_STEP_RANGE
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugChainEnum
- implements Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugEnum
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.ComConversionLossAttribute::.ctor() = ( 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 43 43 37 42 43 42 30 38 2D 38 41 36 38 // ..$CC7BCB08-8A68
- 2D 31 31 44 32 2D 39 38 33 43 2D 30 30 30 30 46 // -11D2-983C-0000F
- 38 30 38 33 34 32 44 00 00 ) // 808342D..
- .method public hidebysig newslot abstract virtual
- instance void Skip([in] uint32 celt) runtime managed internalcall
- {
- } // end of method ICorDebugChainEnum::Skip
-
- .method public hidebysig newslot abstract virtual
- instance void Reset() runtime managed internalcall
- {
- } // end of method ICorDebugChainEnum::Reset
-
- .method public hidebysig newslot abstract virtual
- instance void Clone([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugEnum& marshal( interface) ppEnum) runtime managed internalcall
- {
- } // end of method ICorDebugChainEnum::Clone
-
- .method public hidebysig newslot abstract virtual
- instance void GetCount([out] uint32& pcelt) runtime managed internalcall
- {
- } // end of method ICorDebugChainEnum::GetCount
-
- .method public hidebysig newslot abstract virtual
- instance int32 Next([in] uint32 celt,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugChain[] marshal([ ]) chains,
- [out] uint32& pceltFetched) runtime managed internalcall preservesig
- {
- } // end of method ICorDebugChainEnum::Next
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugChainEnum
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugChain
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 43 43 37 42 43 41 45 45 2D 38 41 36 38 // ..$CC7BCAEE-8A68
- 2D 31 31 44 32 2D 39 38 33 43 2D 30 30 30 30 46 // -11D2-983C-0000F
- 38 30 38 33 34 32 44 00 00 ) // 808342D..
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .method public hidebysig newslot abstract virtual
- instance void GetThread([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugThread& marshal( interface) ppThread) runtime managed internalcall
- {
- } // end of method ICorDebugChain::GetThread
-
- .method public hidebysig newslot abstract virtual
- instance void GetStackRange([out] uint64& pStart,
- [out] uint64& pEnd) runtime managed internalcall
- {
- } // end of method ICorDebugChain::GetStackRange
-
- .method public hidebysig newslot abstract virtual
- instance void GetContext([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugContext& marshal( interface) ppContext) runtime managed internalcall
- {
- } // end of method ICorDebugChain::GetContext
-
- .method public hidebysig newslot abstract virtual
- instance void GetCaller([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugChain& marshal( interface) ppChain) runtime managed internalcall
- {
- } // end of method ICorDebugChain::GetCaller
-
- .method public hidebysig newslot abstract virtual
- instance void GetCallee([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugChain& marshal( interface) ppChain) runtime managed internalcall
- {
- } // end of method ICorDebugChain::GetCallee
-
- .method public hidebysig newslot abstract virtual
- instance void GetPrevious([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugChain& marshal( interface) ppChain) runtime managed internalcall
- {
- } // end of method ICorDebugChain::GetPrevious
-
- .method public hidebysig newslot abstract virtual
- instance void GetNext([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugChain& marshal( interface) ppChain) runtime managed internalcall
- {
- } // end of method ICorDebugChain::GetNext
-
- .method public hidebysig newslot abstract virtual
- instance void IsManaged([out] int32& pManaged) runtime managed internalcall
- {
- } // end of method ICorDebugChain::IsManaged
-
- .method public hidebysig newslot abstract virtual
- instance void EnumerateFrames([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFrameEnum& marshal( interface) ppFrames) runtime managed internalcall
- {
- } // end of method ICorDebugChain::EnumerateFrames
-
- .method public hidebysig newslot abstract virtual
- instance void GetActiveFrame([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFrame& marshal( interface) ppFrame) runtime managed internalcall
- {
- } // end of method ICorDebugChain::GetActiveFrame
-
- .method public hidebysig newslot abstract virtual
- instance void GetRegisterSet([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugRegisterSet& marshal( interface) ppRegisters) runtime managed internalcall
- {
- } // end of method ICorDebugChain::GetRegisterSet
-
- .method public hidebysig newslot abstract virtual
- instance void GetReason([out] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugChainReason& pReason) runtime managed internalcall
- {
- } // end of method ICorDebugChain::GetReason
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugChain
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugContext
- implements Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugObjectValue
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 43 43 37 42 43 42 30 30 2D 38 41 36 38 // ..$CC7BCB00-8A68
- 2D 31 31 44 32 2D 39 38 33 43 2D 30 30 30 30 46 // -11D2-983C-0000F
- 38 30 38 33 34 32 44 00 00 ) // 808342D..
- .method public hidebysig newslot abstract virtual
- instance void GetType([out] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType& pType) runtime managed internalcall
- {
- } // end of method ICorDebugContext::GetType
-
- .method public hidebysig newslot abstract virtual
- instance void GetSize([out] uint32& pSize) runtime managed internalcall
- {
- } // end of method ICorDebugContext::GetSize
-
- .method public hidebysig newslot abstract virtual
- instance void GetAddress([out] uint64& pAddress) runtime managed internalcall
- {
- } // end of method ICorDebugContext::GetAddress
-
- .method public hidebysig newslot abstract virtual
- instance void CreateBreakpoint([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValueBreakpoint& marshal( interface) ppBreakpoint) runtime managed internalcall
- {
- } // end of method ICorDebugContext::CreateBreakpoint
-
- .method public hidebysig newslot abstract virtual
- instance void GetClass([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugClass& marshal( interface) ppClass) runtime managed internalcall
- {
- } // end of method ICorDebugContext::GetClass
-
- .method public hidebysig newslot abstract virtual
- instance void GetFieldValue([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugClass marshal( interface) pClass,
- [in] uint32 fieldDef,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValue& marshal( interface) ppValue) runtime managed internalcall
- {
- } // end of method ICorDebugContext::GetFieldValue
-
- .method public hidebysig newslot abstract virtual
- instance void GetVirtualMethod([in] uint32 memberRef,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFunction& marshal( interface) ppFunction) runtime managed internalcall
- {
- } // end of method ICorDebugContext::GetVirtualMethod
-
- .method public hidebysig newslot abstract virtual
- instance void GetContext([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugContext& marshal( interface) ppContext) runtime managed internalcall
- {
- } // end of method ICorDebugContext::GetContext
-
- .method public hidebysig newslot abstract virtual
- instance void IsValueClass([out] int32& pbIsValueClass) runtime managed internalcall
- {
- } // end of method ICorDebugContext::IsValueClass
-
- .method public hidebysig newslot abstract virtual
- instance void GetManagedCopy([out] object& marshal( iunknown) ppObject) runtime managed internalcall
- {
- } // end of method ICorDebugContext::GetManagedCopy
-
- .method public hidebysig newslot abstract virtual
- instance void SetFromManagedCopy([in] object marshal( iunknown) pObject) runtime managed internalcall
- {
- } // end of method ICorDebugContext::SetFromManagedCopy
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugContext
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugObjectValue
- implements Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValue
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 31 38 41 44 33 44 36 45 2D 42 37 44 32 // ..$18AD3D6E-B7D2
- 2D 31 31 44 32 2D 42 44 30 34 2D 30 30 30 30 46 // -11D2-BD04-0000F
- 38 30 38 34 39 42 44 00 00 ) // 80849BD..
- .method public hidebysig newslot abstract virtual
- instance void GetType([out] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType& pType) runtime managed internalcall
- {
- } // end of method ICorDebugObjectValue::GetType
-
- .method public hidebysig newslot abstract virtual
- instance void GetSize([out] uint32& pSize) runtime managed internalcall
- {
- } // end of method ICorDebugObjectValue::GetSize
-
- .method public hidebysig newslot abstract virtual
- instance void GetAddress([out] uint64& pAddress) runtime managed internalcall
- {
- } // end of method ICorDebugObjectValue::GetAddress
-
- .method public hidebysig newslot abstract virtual
- instance void CreateBreakpoint([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValueBreakpoint& marshal( interface) ppBreakpoint) runtime managed internalcall
- {
- } // end of method ICorDebugObjectValue::CreateBreakpoint
-
- .method public hidebysig newslot abstract virtual
- instance void GetClass([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugClass& marshal( interface) ppClass) runtime managed internalcall
- {
- } // end of method ICorDebugObjectValue::GetClass
-
- .method public hidebysig newslot abstract virtual
- instance void GetFieldValue([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugClass marshal( interface) pClass,
- [in] uint32 fieldDef,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValue& marshal( interface) ppValue) runtime managed internalcall
- {
- } // end of method ICorDebugObjectValue::GetFieldValue
-
- .method public hidebysig newslot abstract virtual
- instance void GetVirtualMethod([in] uint32 memberRef,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFunction& marshal( interface) ppFunction) runtime managed internalcall
- {
- } // end of method ICorDebugObjectValue::GetVirtualMethod
-
- .method public hidebysig newslot abstract virtual
- instance void GetContext([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugContext& marshal( interface) ppContext) runtime managed internalcall
- {
- } // end of method ICorDebugObjectValue::GetContext
-
- .method public hidebysig newslot abstract virtual
- instance void IsValueClass([out] int32& pbIsValueClass) runtime managed internalcall
- {
- } // end of method ICorDebugObjectValue::IsValueClass
-
- .method public hidebysig newslot abstract virtual
- instance void GetManagedCopy([out] object& marshal( iunknown) ppObject) runtime managed internalcall
- {
- } // end of method ICorDebugObjectValue::GetManagedCopy
-
- .method public hidebysig newslot abstract virtual
- instance void SetFromManagedCopy([in] object marshal( iunknown) pObject) runtime managed internalcall
- {
- } // end of method ICorDebugObjectValue::SetFromManagedCopy
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugObjectValue
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugClass
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 43 43 37 42 43 41 46 35 2D 38 41 36 38 // ..$CC7BCAF5-8A68
- 2D 31 31 44 32 2D 39 38 33 43 2D 30 30 30 30 46 // -11D2-983C-0000F
- 38 30 38 33 34 32 44 00 00 ) // 808342D..
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .method public hidebysig newslot abstract virtual
- instance void GetModule([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugModule& marshal( interface) pModule) runtime managed internalcall
- {
- } // end of method ICorDebugClass::GetModule
-
- .method public hidebysig newslot abstract virtual
- instance void GetToken([out] uint32& pTypeDef) runtime managed internalcall
- {
- } // end of method ICorDebugClass::GetToken
-
- .method public hidebysig newslot abstract virtual
- instance void GetStaticFieldValue([in] uint32 fieldDef,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFrame marshal( interface) pFrame,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValue& marshal( interface) ppValue) runtime managed internalcall
- {
- } // end of method ICorDebugClass::GetStaticFieldValue
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugClass
-
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugMDA
-{
- //.custom instance void [mscorlib]System.Runtime.InteropServices.ComConversionLossAttribute::.ctor() = ( 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 43 43 37 32 36 46 32 46 2D 31 44 42 37 // ..$CC726F2F-1DB7
- 2D 34 35 39 42 2D 42 30 45 43 2D 30 35 46 30 31 // -459B-B0EC-05F01
- 44 38 34 31 42 34 32 00 00 ) // D841B42..
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .method public hidebysig newslot abstract virtual
- instance void GetName([in] uint32 cchName,
- [out] uint32& pcchName,
- char[] marshal([ ]) szName) runtime managed internalcall
- {
- } // end of method ICorDebugMDA::GetName
-
-
- .method public hidebysig newslot abstract virtual
- instance void GetDescription([in] uint32 cchName,
- [out] uint32& pcchName,
- char[] marshal([ ]) szName) runtime managed internalcall
- {
- } // end of method ICorDebugMDA::GetDescription
-
- .method public hidebysig newslot abstract virtual
- instance void GetXML([in] uint32 cchName,
- [out] uint32& pcchName,
- char[] marshal([ ]) szName) runtime managed internalcall
- {
- } // end of method ICorDebugMDA::GetXML
-
- .method public hidebysig newslot abstract virtual
- instance void GetFlags([out] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugMDAFlags& pFlags) runtime managed internalcall
- {
- } // end of method ICorDebugMDA::GetFlags
-
- .method public hidebysig newslot abstract virtual
- instance void GetOSThreadId([out] uint32& pOsTid) runtime managed internalcall
- {
- } // end of method ICorDebugMDA::GetOSThreadId
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugMDA
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugModule
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 44 42 41 32 44 38 43 31 2D 45 35 43 35 // ..$DBA2D8C1-E5C5
- 2D 34 30 36 39 2D 38 43 31 33 2D 31 30 41 37 43 // -4069-8C13-10A7C
- 36 41 42 46 34 33 44 00 00 ) // 6ABF43D..
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.ComConversionLossAttribute::.ctor() = ( 01 00 00 00 )
- .method public hidebysig newslot abstract virtual
- instance void GetProcess([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugProcess& marshal( interface) ppProcess) runtime managed internalcall
- {
- } // end of method ICorDebugModule::GetProcess
-
- .method public hidebysig newslot abstract virtual
- instance void GetBaseAddress([out] uint64& pAddress) runtime managed internalcall
- {
- } // end of method ICorDebugModule::GetBaseAddress
-
- .method public hidebysig newslot abstract virtual
- instance void GetAssembly([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAssembly& marshal( interface) ppAssembly) runtime managed internalcall
- {
- } // end of method ICorDebugModule::GetAssembly
-
- .method public hidebysig newslot abstract virtual
- instance void GetName([in] uint32 cchName,
- [out] uint32& pcchName,
- char[] marshal([ ]) szName) runtime managed internalcall
- {
- } // end of method ICorDebugModule::GetName
-
- .method public hidebysig newslot abstract virtual
- instance void EnableJITDebugging([in] int32 bTrackJITInfo,
- [in] int32 bAllowJitOpts) runtime managed internalcall
- {
- } // end of method ICorDebugModule::EnableJITDebugging
-
- .method public hidebysig newslot abstract virtual
- instance void EnableClassLoadCallbacks([in] int32 bClassLoadCallbacks) runtime managed internalcall
- {
- } // end of method ICorDebugModule::EnableClassLoadCallbacks
-
- .method public hidebysig newslot abstract virtual
- instance void GetFunctionFromToken([in] uint32 methodDef,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFunction& marshal( interface) ppFunction) runtime managed internalcall
- {
- } // end of method ICorDebugModule::GetFunctionFromToken
-
- .method public hidebysig newslot abstract virtual
- instance void GetFunctionFromRVA([in] uint64 rva,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFunction& marshal( interface) ppFunction) runtime managed internalcall
- {
- } // end of method ICorDebugModule::GetFunctionFromRVA
-
- .method public hidebysig newslot abstract virtual
- instance void GetClassFromToken([in] uint32 typeDef,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugClass& marshal( interface) ppClass) runtime managed internalcall
- {
- } // end of method ICorDebugModule::GetClassFromToken
-
- .method public hidebysig newslot abstract virtual
- instance void CreateBreakpoint([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugModuleBreakpoint& marshal( interface) ppBreakpoint) runtime managed internalcall
- {
- } // end of method ICorDebugModule::CreateBreakpoint
-
- .method public hidebysig newslot abstract virtual
- instance void GetEditAndContinueSnapshot([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugEditAndContinueSnapshot& marshal( interface) ppEditAndContinueSnapshot) runtime managed internalcall
- {
- } // end of method ICorDebugModule::GetEditAndContinueSnapshot
-
- .method public hidebysig newslot abstract virtual
- instance void GetMetaDataInterface([in] valuetype [mscorlib]System.Guid& riid,
- // TODO: We may want to just return an IUnknown here, but then the fake-com wrappers will need some way of knowing how to wrap it
- [out] class Microsoft.Samples.Debugging.CorMetadata.NativeApi.IMetadataImport& marshal( interface) ppObj) runtime managed internalcall
- {
- .param [1]
- .custom instance void [mscorlib]System.Runtime.InteropServices.ComAliasNameAttribute::.ctor(string) = ( 01 00 06 52 45 46 49 49 44 00 00 ) // ...REFIID..
- } // end of method ICorDebugModule::GetMetaDataInterface
-
- .method public hidebysig newslot abstract virtual
- instance void GetToken([out] uint32& pToken) runtime managed internalcall
- {
- } // end of method ICorDebugModule::GetToken
-
- .method public hidebysig newslot abstract virtual
- instance void IsDynamic([out] int32& pDynamic) runtime managed internalcall
- {
- } // end of method ICorDebugModule::IsDynamic
-
- .method public hidebysig newslot abstract virtual
- instance void GetGlobalVariableValue([in] uint32 fieldDef,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValue& marshal( interface) ppValue) runtime managed internalcall
- {
- } // end of method ICorDebugModule::GetGlobalVariableValue
-
- .method public hidebysig newslot abstract virtual
- instance void GetSize([out] uint32& pcBytes) runtime managed internalcall
- {
- } // end of method ICorDebugModule::GetSize
-
- .method public hidebysig newslot abstract virtual
- instance void IsInMemory([out] int32& pInMemory) runtime managed internalcall
- {
- } // end of method ICorDebugModule::IsInMemory
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugModule
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAssembly
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 44 46 35 39 35 30 37 43 2D 44 34 37 41 // ..$DF59507C-D47A
- 2D 34 35 39 45 2D 42 43 45 32 2D 36 34 32 37 45 // -459E-BCE2-6427E
- 41 43 38 46 44 30 36 00 00 ) // AC8FD06..
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.ComConversionLossAttribute::.ctor() = ( 01 00 00 00 )
- .method public hidebysig newslot abstract virtual
- instance void GetProcess([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugProcess& marshal( interface) ppProcess) runtime managed internalcall
- {
- } // end of method ICorDebugAssembly::GetProcess
-
- .method public hidebysig newslot abstract virtual
- instance void GetAppDomain([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAppDomain& marshal( interface) ppAppDomain) runtime managed internalcall
- {
- } // end of method ICorDebugAssembly::GetAppDomain
-
- .method public hidebysig newslot abstract virtual
- instance void EnumerateModules([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugModuleEnum& marshal( interface) ppModules) runtime managed internalcall
- {
- } // end of method ICorDebugAssembly::EnumerateModules
-
- .method public hidebysig newslot abstract virtual
- instance void GetCodeBase([in] uint32 cchName,
- [out] uint32& pcchName,
- char[] marshal([ ]) szName) runtime managed internalcall
- {
- } // end of method ICorDebugAssembly::GetCodeBase
-
- .method public hidebysig newslot abstract virtual
- instance void GetName([in] uint32 cchName,
- [out] uint32& pcchName,
- char[] marshal([ ]) szName) runtime managed internalcall
- {
- } // end of method ICorDebugAssembly::GetName
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAssembly
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAssembly2
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 34 32 36 44 31 46 39 45 2D 36 44 44 34 // ..$426D1F9E-6DD4
- 2D 34 34 43 38 2D 41 45 43 37 2D 32 36 43 44 42 // -44C8-AEC7-26CDB
- 41 46 34 45 33 39 38 00 00 ) // AF4E398..
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .method public hidebysig newslot abstract virtual
- instance void IsFullyTrusted([out] int32& pbFullyTrusted) runtime managed internalcall
- {
- } // end of method ICorDebugAssembly2::IsFullyTrusted
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAssembly2
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugModuleEnum
- implements Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugEnum
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 43 43 37 42 43 42 30 39 2D 38 41 36 38 // ..$CC7BCB09-8A68
- 2D 31 31 44 32 2D 39 38 33 43 2D 30 30 30 30 46 // -11D2-983C-0000F
- 38 30 38 33 34 32 44 00 00 ) // 808342D..
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.ComConversionLossAttribute::.ctor() = ( 01 00 00 00 )
- .method public hidebysig newslot abstract virtual
- instance void Skip([in] uint32 celt) runtime managed internalcall
- {
- } // end of method ICorDebugModuleEnum::Skip
-
- .method public hidebysig newslot abstract virtual
- instance void Reset() runtime managed internalcall
- {
- } // end of method ICorDebugModuleEnum::Reset
-
- .method public hidebysig newslot abstract virtual
- instance void Clone([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugEnum& marshal( interface) ppEnum) runtime managed internalcall
- {
- } // end of method ICorDebugModuleEnum::Clone
-
- .method public hidebysig newslot abstract virtual
- instance void GetCount([out] uint32& pcelt) runtime managed internalcall
- {
- } // end of method ICorDebugModuleEnum::GetCount
-
- .method public hidebysig newslot abstract virtual
- instance int32 Next([in] uint32 celt,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugModule[] marshal([ ]) modules,
- [out] uint32& pceltFetched) runtime managed internalcall preservesig
- {
- } // end of method ICorDebugModuleEnum::Next
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugModuleEnum
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFunction
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 43 43 37 42 43 41 46 33 2D 38 41 36 38 // ..$CC7BCAF3-8A68
- 2D 31 31 44 32 2D 39 38 33 43 2D 30 30 30 30 46 // -11D2-983C-0000F
- 38 30 38 33 34 32 44 00 00 ) // 808342D..
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .method public hidebysig newslot abstract virtual
- instance void GetModule([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugModule& marshal( interface) ppModule) runtime managed internalcall
- {
- } // end of method ICorDebugFunction::GetModule
-
- .method public hidebysig newslot abstract virtual
- instance void GetClass([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugClass& marshal( interface) ppClass) runtime managed internalcall
- {
- } // end of method ICorDebugFunction::GetClass
-
- .method public hidebysig newslot abstract virtual
- instance void GetToken([out] uint32& pMethodDef) runtime managed internalcall
- {
- } // end of method ICorDebugFunction::GetToken
-
- .method public hidebysig newslot abstract virtual
- instance void GetILCode([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugCode& marshal( interface) ppCode) runtime managed internalcall
- {
- } // end of method ICorDebugFunction::GetILCode
-
- .method public hidebysig newslot abstract virtual
- instance void GetNativeCode([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugCode& marshal( interface) ppCode) runtime managed internalcall
- {
- } // end of method ICorDebugFunction::GetNativeCode
-
- .method public hidebysig newslot abstract virtual
- instance void CreateBreakpoint([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFunctionBreakpoint& marshal( interface) ppBreakpoint) runtime managed internalcall
- {
- } // end of method ICorDebugFunction::CreateBreakpoint
-
- .method public hidebysig newslot abstract virtual
- instance void GetLocalVarSigToken([out] uint32& pmdSig) runtime managed internalcall
- {
- } // end of method ICorDebugFunction::GetLocalVarSigToken
-
- .method public hidebysig newslot abstract virtual
- instance void GetCurrentVersionNumber([out] uint32& pnCurrentVersion) runtime managed internalcall
- {
- } // end of method ICorDebugFunction::GetCurrentVersionNumber
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFunction
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugCode
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 43 43 37 42 43 41 46 34 2D 38 41 36 38 // ..$CC7BCAF4-8A68
- 2D 31 31 44 32 2D 39 38 33 43 2D 30 30 30 30 46 // -11D2-983C-0000F
- 38 30 38 33 34 32 44 00 00 ) // 808342D..
- .custom instance void [mscorlib]System.Runtime.InteropServices.ComConversionLossAttribute::.ctor() = ( 01 00 00 00 )
- .method public hidebysig newslot abstract virtual
- instance void IsIL([out] int32& pbIL) runtime managed internalcall
- {
- } // end of method ICorDebugCode::IsIL
-
- .method public hidebysig newslot abstract virtual
- instance void GetFunction([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFunction& marshal( interface) ppFunction) runtime managed internalcall
- {
- } // end of method ICorDebugCode::GetFunction
-
- .method public hidebysig newslot abstract virtual
- instance void GetAddress([out] uint64& pStart) runtime managed internalcall
- {
- } // end of method ICorDebugCode::GetAddress
-
- .method public hidebysig newslot abstract virtual
- instance void GetSize([out] uint32& pcBytes) runtime managed internalcall
- {
- } // end of method ICorDebugCode::GetSize
-
- .method public hidebysig newslot abstract virtual
- instance void CreateBreakpoint([in] uint32 offset,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFunctionBreakpoint& marshal( interface) ppBreakpoint) runtime managed internalcall
- {
- } // end of method ICorDebugCode::CreateBreakpoint
-
- .method public hidebysig newslot abstract virtual
- instance void GetCode([in] uint32 startOffset,
- [in] uint32 endOffset,
- [in] uint32 cBufferAlloc,
- [out] unsigned int8[] marshal([+5]) buffer,
- [out] uint32& pcBufferSize) runtime managed internalcall
- {
- } // end of method ICorDebugCode::GetCode
-
- .method public hidebysig newslot abstract virtual
- instance void GetVersionNumber([out] uint32& nVersion) runtime managed internalcall
- {
- } // end of method ICorDebugCode::GetVersionNumber
-
- .method public hidebysig newslot abstract virtual
- instance void GetILToNativeMapping([in] uint32 cMap,
- [out] uint32& pcMap,
- [out] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.COR_DEBUG_IL_TO_NATIVE_MAP[] marshal( [ +1 ] ) map) runtime managed internalcall
- {
- } // end of method ICorDebugCode::GetILToNativeMapping
-
- .method public hidebysig newslot abstract virtual
- instance void GetEnCRemapSequencePoints([in] uint32 cMap,
- [out] uint32& pcMap,
- [out] uint32[] marshal([]) offsets) runtime managed internalcall
- {
- } // end of method ICorDebugCode::GetEnCRemapSequencePoints
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugCode
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugCode2
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 35 46 36 39 36 35 30 39 2D 34 35 32 46 // ..$5F696509-452F
- 2D 34 34 33 36 2D 41 33 46 45 2D 34 44 31 31 46 // -4436-A3FE-4D11F
- 45 37 45 32 33 34 37 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.ComConversionLossAttribute::.ctor() = ( 01 00 00 00 )
- .method public hidebysig newslot abstract virtual
- instance void GetCodeChunks([in] uint32 cbufSize, [out] uint32& pcnumChunks, [out] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi._CodeChunkInfo[] marshal( [+1] ) chunks) runtime managed internalcall
- {
- } // end of method ICorDebugCode2::GetCodeChunks
-
- .method public hidebysig newslot abstract virtual
- instance void GetCompilerFlags([out] uint32& pdwFlags) runtime managed internalcall
- {
- } // end of method ICorDebugCode2::GetCompilerFlags
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugCode2
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFunctionBreakpoint
- implements Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugBreakpoint
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 43 43 37 42 43 41 45 39 2D 38 41 36 38 // ..$CC7BCAE9-8A68
- 2D 31 31 44 32 2D 39 38 33 43 2D 30 30 30 30 46 // -11D2-983C-0000F
- 38 30 38 33 34 32 44 00 00 ) // 808342D..
- .method public hidebysig newslot abstract virtual
- instance void Activate([in] int32 bActive) runtime managed internalcall
- {
- } // end of method ICorDebugFunctionBreakpoint::Activate
-
- .method public hidebysig newslot abstract virtual
- instance void IsActive([out] int32& pbActive) runtime managed internalcall
- {
- } // end of method ICorDebugFunctionBreakpoint::IsActive
-
- .method public hidebysig newslot abstract virtual
- instance void GetFunction([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFunction& marshal( interface) ppFunction) runtime managed internalcall
- {
- } // end of method ICorDebugFunctionBreakpoint::GetFunction
-
- .method public hidebysig newslot abstract virtual
- instance void GetOffset([out] uint32& pnOffset) runtime managed internalcall
- {
- } // end of method ICorDebugFunctionBreakpoint::GetOffset
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFunctionBreakpoint
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugModuleBreakpoint
- implements Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugBreakpoint
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 43 43 37 42 43 41 45 41 2D 38 41 36 38 // ..$CC7BCAEA-8A68
- 2D 31 31 44 32 2D 39 38 33 43 2D 30 30 30 30 46 // -11D2-983C-0000F
- 38 30 38 33 34 32 44 00 00 ) // 808342D..
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .method public hidebysig newslot abstract virtual
- instance void Activate([in] int32 bActive) runtime managed internalcall
- {
- } // end of method ICorDebugModuleBreakpoint::Activate
-
- .method public hidebysig newslot abstract virtual
- instance void IsActive([out] int32& pbActive) runtime managed internalcall
- {
- } // end of method ICorDebugModuleBreakpoint::IsActive
-
- .method public hidebysig newslot abstract virtual
- instance void GetModule([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugModule& marshal( interface) ppModule) runtime managed internalcall
- {
- } // end of method ICorDebugModuleBreakpoint::GetModule
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugModuleBreakpoint
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugEditAndContinueSnapshot
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 36 44 43 33 46 41 30 31 2D 44 37 43 42 // ..$6DC3FA01-D7CB
- 2D 31 31 44 32 2D 38 41 39 35 2D 30 30 38 30 43 // -11D2-8A95-0080C
- 37 39 32 45 35 44 38 00 00 ) // 792E5D8..
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .method public hidebysig newslot abstract virtual
- instance void CopyMetaData([in] class [mscorlib]System.Runtime.InteropServices.ComTypes.IStream marshal( interface) pIStream,
- [out] valuetype [mscorlib]System.Guid& pMvid) runtime managed internalcall
- {
- } // end of method ICorDebugEditAndContinueSnapshot::CopyMetaData
-
- .method public hidebysig newslot abstract virtual
- instance void GetMvid([out] valuetype [mscorlib]System.Guid& pMvid) runtime managed internalcall
- {
- } // end of method ICorDebugEditAndContinueSnapshot::GetMvid
-
- .method public hidebysig newslot abstract virtual
- instance void GetRoDataRVA([out] uint32& pRoDataRVA) runtime managed internalcall
- {
- } // end of method ICorDebugEditAndContinueSnapshot::GetRoDataRVA
-
- .method public hidebysig newslot abstract virtual
- instance void GetRwDataRVA([out] uint32& pRwDataRVA) runtime managed internalcall
- {
- } // end of method ICorDebugEditAndContinueSnapshot::GetRwDataRVA
-
- .method public hidebysig newslot abstract virtual
- instance void SetPEBytes([in] class [mscorlib]System.Runtime.InteropServices.ComTypes.IStream marshal( interface) pIStream) runtime managed internalcall
- {
- } // end of method ICorDebugEditAndContinueSnapshot::SetPEBytes
-
- .method public hidebysig newslot abstract virtual
- instance void SetILMap([in] uint32 mdFunction,
- [in] uint32 cMapSize,
- [in] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.COR_IL_MAP& map) runtime managed internalcall
- {
- } // end of method ICorDebugEditAndContinueSnapshot::SetILMap
-
- .method public hidebysig newslot abstract virtual
- instance void SetPESymbolBytes([in] class [mscorlib]System.Runtime.InteropServices.ComTypes.IStream marshal( interface) pIStream) runtime managed internalcall
- {
- } // end of method ICorDebugEditAndContinueSnapshot::SetPESymbolBytes
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugEditAndContinueSnapshot
-
-.class public sequential ansi sealed beforefieldinit Microsoft.Samples.Debugging.CorDebug.NativeApi._LARGE_INTEGER
- extends [mscorlib]System.ValueType
-{
- .pack 8
- .size 0
- .field public int64 QuadPart
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi._LARGE_INTEGER
-
-.class public sequential ansi sealed beforefieldinit Microsoft.Samples.Debugging.CorDebug.NativeApi._ULARGE_INTEGER
- extends [mscorlib]System.ValueType
-{
- .pack 8
- .size 0
- .field public uint64 QuadPart
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi._ULARGE_INTEGER
-
-
-.class public sequential ansi sealed beforefieldinit Microsoft.Samples.Debugging.CorDebug.NativeApi.COR_IL_MAP
- extends [mscorlib]System.ValueType
-{
- .pack 4
- .size 0
- .field public uint32 oldOffset
- .field public uint32 newOffset
- .field public int32 fAccurate
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.COR_IL_MAP
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFrame
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 43 43 37 42 43 41 45 46 2D 38 41 36 38 // ..$CC7BCAEF-8A68
- 2D 31 31 44 32 2D 39 38 33 43 2D 30 30 30 30 46 // -11D2-983C-0000F
- 38 30 38 33 34 32 44 00 00 ) // 808342D..
- .method public hidebysig newslot abstract virtual
- instance void GetChain([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugChain& marshal( interface) ppChain) runtime managed internalcall
- {
- } // end of method ICorDebugFrame::GetChain
-
- .method public hidebysig newslot abstract virtual
- instance void GetCode([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugCode& marshal( interface) ppCode) runtime managed internalcall
- {
- } // end of method ICorDebugFrame::GetCode
-
- .method public hidebysig newslot abstract virtual
- instance void GetFunction([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFunction& marshal( interface) ppFunction) runtime managed internalcall
- {
- } // end of method ICorDebugFrame::GetFunction
-
- .method public hidebysig newslot abstract virtual
- instance void GetFunctionToken([out] uint32& pToken) runtime managed internalcall
- {
- } // end of method ICorDebugFrame::GetFunctionToken
-
- .method public hidebysig newslot abstract virtual
- instance void GetStackRange([out] uint64& pStart,
- [out] uint64& pEnd) runtime managed internalcall
- {
- } // end of method ICorDebugFrame::GetStackRange
-
- .method public hidebysig newslot abstract virtual
- instance void GetCaller([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFrame& marshal( interface) ppFrame) runtime managed internalcall
- {
- } // end of method ICorDebugFrame::GetCaller
-
- .method public hidebysig newslot abstract virtual
- instance void GetCallee([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFrame& marshal( interface) ppFrame) runtime managed internalcall
- {
- } // end of method ICorDebugFrame::GetCallee
-
- .method public hidebysig newslot abstract virtual
- instance void CreateStepper([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugStepper& marshal( interface) ppStepper) runtime managed internalcall
- {
- } // end of method ICorDebugFrame::CreateStepper
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFrame
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFrameEnum
- implements Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugEnum
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.ComConversionLossAttribute::.ctor() = ( 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 43 43 37 42 43 42 30 37 2D 38 41 36 38 // ..$CC7BCB07-8A68
- 2D 31 31 44 32 2D 39 38 33 43 2D 30 30 30 30 46 // -11D2-983C-0000F
- 38 30 38 33 34 32 44 00 00 ) // 808342D..
- .method public hidebysig newslot abstract virtual
- instance void Skip([in] uint32 celt) runtime managed internalcall
- {
- } // end of method ICorDebugFrameEnum::Skip
-
- .method public hidebysig newslot abstract virtual
- instance void Reset() runtime managed internalcall
- {
- } // end of method ICorDebugFrameEnum::Reset
-
- .method public hidebysig newslot abstract virtual
- instance void Clone([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugEnum& marshal( interface) ppEnum) runtime managed internalcall
- {
- } // end of method ICorDebugFrameEnum::Clone
-
- .method public hidebysig newslot abstract virtual
- instance void GetCount([out] uint32& pcelt) runtime managed internalcall
- {
- } // end of method ICorDebugFrameEnum::GetCount
-
- .method public hidebysig newslot abstract virtual
- instance int32 Next([in] uint32 celt,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFrame[] marshal([ ]) frames,
- [out] uint32& pceltFetched) runtime managed internalcall preservesig
- {
- } // end of method ICorDebugFrameEnum::Next
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFrameEnum
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugRegisterSet
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 43 43 37 42 43 42 30 42 2D 38 41 36 38 // ..$CC7BCB0B-8A68
- 2D 31 31 44 32 2D 39 38 33 43 2D 30 30 30 30 46 // -11D2-983C-0000F
- 38 30 38 33 34 32 44 00 00 ) // 808342D..
- .custom instance void [mscorlib]System.Runtime.InteropServices.ComConversionLossAttribute::.ctor() = ( 01 00 00 00 )
- .method public hidebysig newslot abstract virtual
- instance void GetRegistersAvailable([out] uint64& pAvailable) runtime managed internalcall
- {
- } // end of method ICorDebugRegisterSet::GetRegistersAvailable
-
- .method public hidebysig newslot abstract virtual
- instance void GetRegisters([in] uint64 mask,
- [in] uint32 regCount,
- [out] uint64[] marshal( [ +2 ]) regBuffer) runtime managed internalcall
- {
- } // end of method ICorDebugRegisterSet::GetRegisters
-
- .method public hidebysig newslot abstract virtual
- instance void SetRegisters([in] uint64 mask,
- [in] uint32 regCount,
- [in] uint64[] marshal( [ +2 ]) regBuffer) runtime managed internalcall
- {
- } // end of method ICorDebugRegisterSet::SetRegisters
-
- .method public hidebysig newslot abstract virtual
- instance void GetThreadContext([in] uint32 contextSize,
- [in] native int context) runtime managed internalcall
- {
- .param [2]
- .custom instance void [mscorlib]System.Runtime.InteropServices.ComAliasNameAttribute::.ctor(string) = ( 01 00 05 42 59 54 45 2A 00 00 ) // ...BYTE*..
- } // end of method ICorDebugRegisterSet::GetThreadContext
-
- .method public hidebysig newslot abstract virtual
- instance void SetThreadContext([in] uint32 contextSize,
- [in] native int context) runtime managed internalcall
- {
- .param [2]
- .custom instance void [mscorlib]System.Runtime.InteropServices.ComAliasNameAttribute::.ctor(string) = ( 01 00 05 42 59 54 45 2A 00 00 ) // ...BYTE*..
- } // end of method ICorDebugRegisterSet::SetThreadContext
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugRegisterSet
-
-.class public auto ansi sealed Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugChainReason
- extends [mscorlib]System.Enum
-{
- .field public specialname rtspecialname int32 value__
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugChainReason CHAIN_NONE = int32(0x00000000)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugChainReason CHAIN_CLASS_INIT = int32(0x00000001)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugChainReason CHAIN_EXCEPTION_FILTER = int32(0x00000002)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugChainReason CHAIN_SECURITY = int32(0x00000004)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugChainReason CHAIN_CONTEXT_POLICY = int32(0x00000008)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugChainReason CHAIN_INTERCEPTION = int32(0x00000010)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugChainReason CHAIN_PROCESS_START = int32(0x00000020)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugChainReason CHAIN_THREAD_START = int32(0x00000040)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugChainReason CHAIN_ENTER_MANAGED = int32(0x00000080)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugChainReason CHAIN_ENTER_UNMANAGED = int32(0x00000100)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugChainReason CHAIN_DEBUGGER_EVAL = int32(0x00000200)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugChainReason CHAIN_CONTEXT_SWITCH = int32(0x00000400)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugChainReason CHAIN_FUNC_EVAL = int32(0x00000800)
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugChainReason
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugEval
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 43 43 37 42 43 41 46 36 2D 38 41 36 38 // ..$CC7BCAF6-8A68
- 2D 31 31 44 32 2D 39 38 33 43 2D 30 30 30 30 46 // -11D2-983C-0000F
- 38 30 38 33 34 32 44 00 00 ) // 808342D..
- .method public hidebysig newslot abstract virtual
- instance void CallFunction([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFunction marshal( interface) pFunction,
- [in] uint32 nArgs,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValue[] marshal( [ +1 ] ) ppArgs) runtime managed internalcall
- {
- } // end of method ICorDebugEval::CallFunction
-
- .method public hidebysig newslot abstract virtual
- instance void NewObject([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFunction marshal( interface) pConstructor,
- [in] uint32 nArgs,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValue[] marshal( [ +1 ] ) ppArgs) runtime managed internalcall
- {
- } // end of method ICorDebugEval::NewObject
-
- .method public hidebysig newslot abstract virtual
- instance void NewObjectNoConstructor([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugClass marshal( interface) pClass) runtime managed internalcall
- {
- } // end of method ICorDebugEval::NewObjectNoConstructor
-
- .method public hidebysig newslot abstract virtual
- instance void NewString([in] string marshal( lpwstr) 'string') runtime managed internalcall
- {
- } // end of method ICorDebugEval::NewString
-
- .method public hidebysig newslot abstract virtual
- instance void NewArray([in] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType elementType,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugClass marshal( interface) pElementClass,
- [in] uint32 rank,
- [in] uint32& dims,
- [in] uint32& lowBounds) runtime managed internalcall
- {
- } // end of method ICorDebugEval::NewArray
-
- .method public hidebysig newslot abstract virtual
- instance void IsActive([out] int32& pbActive) runtime managed internalcall
- {
- } // end of method ICorDebugEval::IsActive
-
- .method public hidebysig newslot abstract virtual
- instance void Abort() runtime managed internalcall
- {
- } // end of method ICorDebugEval::Abort
-
- .method public hidebysig newslot abstract virtual
- instance void GetResult([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValue& marshal( interface) ppResult) runtime managed internalcall
- {
- } // end of method ICorDebugEval::GetResult
-
- .method public hidebysig newslot abstract virtual
- instance void GetThread([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugThread& marshal( interface) ppThread) runtime managed internalcall
- {
- } // end of method ICorDebugEval::GetThread
-
- .method public hidebysig newslot abstract virtual
- instance void CreateValue([in] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType elementType,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugClass marshal( interface) pElementClass,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValue& marshal( interface) ppValue) runtime managed internalcall
- {
- } // end of method ICorDebugEval::CreateValue
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugEval
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugThreadEnum
- implements Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugEnum
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.ComConversionLossAttribute::.ctor() = ( 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 43 43 37 42 43 42 30 36 2D 38 41 36 38 // ..$CC7BCB06-8A68
- 2D 31 31 44 32 2D 39 38 33 43 2D 30 30 30 30 46 // -11D2-983C-0000F
- 38 30 38 33 34 32 44 00 00 ) // 808342D..
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .method public hidebysig newslot abstract virtual
- instance void Skip([in] uint32 celt) runtime managed internalcall
- {
- } // end of method ICorDebugThreadEnum::Skip
-
- .method public hidebysig newslot abstract virtual
- instance void Reset() runtime managed internalcall
- {
- } // end of method ICorDebugThreadEnum::Reset
-
- .method public hidebysig newslot abstract virtual
- instance void Clone([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugEnum& marshal( interface) ppEnum) runtime managed internalcall
- {
- } // end of method ICorDebugThreadEnum::Clone
-
- .method public hidebysig newslot abstract virtual
- instance void GetCount([out] uint32& pcelt) runtime managed internalcall
- {
- } // end of method ICorDebugThreadEnum::GetCount
-
- .method public hidebysig newslot abstract virtual
- instance int32 Next([in] uint32 celt,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugThread[] marshal([ ]) threads,
- [out] uint32& pceltFetched) runtime managed internalcall preservesig
- {
- } // end of method ICorDebugThreadEnum::Next
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugThreadEnum
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugErrorInfoEnum
- implements Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugEnum
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 46 30 45 31 38 38 30 39 2D 37 32 42 35 // ..$F0E18809-72B5
- 2D 31 31 44 32 2D 39 37 36 46 2D 30 30 41 30 43 // -11D2-976F-00A0C
- 39 42 34 44 35 30 43 00 00 ) // 9B4D50C..
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.ComConversionLossAttribute::.ctor() = ( 01 00 00 00 )
- .method public hidebysig newslot abstract virtual
- instance void Skip([in] uint32 celt) runtime managed internalcall
- {
- } // end of method ICorDebugErrorInfoEnum::Skip
-
- .method public hidebysig newslot abstract virtual
- instance void Reset() runtime managed internalcall
- {
- } // end of method ICorDebugErrorInfoEnum::Reset
-
- .method public hidebysig newslot abstract virtual
- instance void Clone([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugEnum& marshal( interface) ppEnum) runtime managed internalcall
- {
- } // end of method ICorDebugErrorInfoEnum::Clone
-
- .method public hidebysig newslot abstract virtual
- instance void GetCount([out] uint32& pcelt) runtime managed internalcall
- {
- } // end of method ICorDebugErrorInfoEnum::GetCount
-
- .method public hidebysig newslot abstract virtual
- instance int32 Next([in] uint32 celt,
- [out] native int errors,
- [out] uint32& pceltFetched) runtime managed internalcall preservesig
- {
- // This is deprecated so we don't bother supporting ICorDebugEditAndContinueErrorInfo
- .param [2]
- .custom instance void [mscorlib]System.Runtime.InteropServices.ComAliasNameAttribute::.ctor(string) = ( 01 00 23 49 43 6F 72 44 65 62 75 67 45 64 69 74 // ..#ICorDebugEdit
- 41 6E 64 43 6F 6E 74 69 6E 75 65 45 72 72 6F 72 // AndContinueError
- 49 6E 66 6F 2A 2A 00 00 ) // Info**..
- } // end of method ICorDebugErrorInfoEnum::Next
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugErrorInfoEnum
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAssemblyEnum
- implements Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugEnum
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.ComConversionLossAttribute::.ctor() = ( 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 34 41 32 41 31 45 43 39 2D 38 35 45 43 // ..$4A2A1EC9-85EC
- 2D 34 42 46 42 2D 39 46 31 35 2D 41 38 39 46 44 // -4BFB-9F15-A89FD
- 46 45 30 46 45 38 33 00 00 ) // FE0FE83..
- .method public hidebysig newslot abstract virtual
- instance void Skip([in] uint32 celt) runtime managed internalcall
- {
- } // end of method ICorDebugAssemblyEnum::Skip
-
- .method public hidebysig newslot abstract virtual
- instance void Reset() runtime managed internalcall
- {
- } // end of method ICorDebugAssemblyEnum::Reset
-
- .method public hidebysig newslot abstract virtual
- instance void Clone([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugEnum& marshal( interface) ppEnum) runtime managed internalcall
- {
- } // end of method ICorDebugAssemblyEnum::Clone
-
- .method public hidebysig newslot abstract virtual
- instance void GetCount([out] uint32& pcelt) runtime managed internalcall
- {
- } // end of method ICorDebugAssemblyEnum::GetCount
-
- .method public hidebysig newslot abstract virtual
- instance int32 Next([in] uint32 celt,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAssembly[] marshal([ ]) values,
- [out] uint32& pceltFetched) runtime managed internalcall preservesig
- {
- } // end of method ICorDebugAssemblyEnum::Next
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAssemblyEnum
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugBreakpointEnum
- implements Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugEnum
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.ComConversionLossAttribute::.ctor() = ( 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 43 43 37 42 43 42 30 33 2D 38 41 36 38 // ..$CC7BCB03-8A68
- 2D 31 31 44 32 2D 39 38 33 43 2D 30 30 30 30 46 // -11D2-983C-0000F
- 38 30 38 33 34 32 44 00 00 ) // 808342D..
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .method public hidebysig newslot abstract virtual
- instance void Skip([in] uint32 celt) runtime managed internalcall
- {
- } // end of method ICorDebugBreakpointEnum::Skip
-
- .method public hidebysig newslot abstract virtual
- instance void Reset() runtime managed internalcall
- {
- } // end of method ICorDebugBreakpointEnum::Reset
-
- .method public hidebysig newslot abstract virtual
- instance void Clone([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugEnum& marshal( interface) ppEnum) runtime managed internalcall
- {
- } // end of method ICorDebugBreakpointEnum::Clone
-
- .method public hidebysig newslot abstract virtual
- instance void GetCount([out] uint32& pcelt) runtime managed internalcall
- {
- } // end of method ICorDebugBreakpointEnum::GetCount
-
- .method public hidebysig newslot abstract virtual
- instance int32 Next([in] uint32 celt,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugBreakpoint[] marshal([ ]) breakpoints,
- [out] uint32& pceltFetched) runtime managed internalcall preservesig
- {
- } // end of method ICorDebugBreakpointEnum::Next
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugBreakpointEnum
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugStepperEnum
- implements Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugEnum
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.ComConversionLossAttribute::.ctor() = ( 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 43 43 37 42 43 42 30 34 2D 38 41 36 38 // ..$CC7BCB04-8A68
- 2D 31 31 44 32 2D 39 38 33 43 2D 30 30 30 30 46 // -11D2-983C-0000F
- 38 30 38 33 34 32 44 00 00 ) // 808342D..
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .method public hidebysig newslot abstract virtual
- instance void Skip([in] uint32 celt) runtime managed internalcall
- {
- } // end of method ICorDebugStepperEnum::Skip
-
- .method public hidebysig newslot abstract virtual
- instance void Reset() runtime managed internalcall
- {
- } // end of method ICorDebugStepperEnum::Reset
-
- .method public hidebysig newslot abstract virtual
- instance void Clone([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugEnum& marshal( interface) ppEnum) runtime managed internalcall
- {
- } // end of method ICorDebugStepperEnum::Clone
-
- .method public hidebysig newslot abstract virtual
- instance void GetCount([out] uint32& pcelt) runtime managed internalcall
- {
- } // end of method ICorDebugStepperEnum::GetCount
-
- .method public hidebysig newslot abstract virtual
- instance int32 Next([in] uint32 celt,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugStepper[] marshal([ ]) steppers,
- [out] uint32& pceltFetched) runtime managed internalcall preservesig
- {
- } // end of method ICorDebugStepperEnum::Next
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugStepperEnum
-
-.class public auto ansi sealed Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugStepReason
- extends [mscorlib]System.Enum
-{
- .field public specialname rtspecialname int32 value__
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugStepReason STEP_NORMAL = int32(0x00000000)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugStepReason STEP_RETURN = int32(0x00000001)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugStepReason STEP_CALL = int32(0x00000002)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugStepReason STEP_EXCEPTION_FILTER = int32(0x00000003)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugStepReason STEP_EXCEPTION_HANDLER = int32(0x00000004)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugStepReason STEP_INTERCEPT = int32(0x00000005)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugStepReason STEP_EXIT = int32(0x00000006)
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugStepReason
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugUnmanagedCallback
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 35 32 36 33 45 39 30 39 2D 38 43 42 35 // ..$5263E909-8CB5
- 2D 31 31 44 33 2D 42 44 32 46 2D 30 30 30 30 46 // -11D3-BD2F-0000F
- 38 30 38 34 39 42 44 00 00 ) // 80849BD..
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .method public hidebysig newslot abstract virtual
- instance void DebugEvent([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.DEBUG_EVENT pDebugEvent,
- [in] int32 fOutOfBand) runtime managed internalcall
- {
- } // end of method ICorDebugUnmanagedCallback::DebugEvent
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugUnmanagedCallback
-
-.class public sequential ansi sealed beforefieldinit Microsoft.Samples.Debugging.CorDebug.NativeApi._SECURITY_ATTRIBUTES
- extends [mscorlib]System.ValueType
-{
- .pack 4
- .size 0
- .field public uint32 nLength
- .field public native int lpSecurityDescriptor
- .field public int32 bInheritHandle
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi._SECURITY_ATTRIBUTES
-
-.class public auto ansi sealed Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugCreateProcessFlags
- extends [mscorlib]System.Enum
-{
- .field public specialname rtspecialname int32 value__
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugCreateProcessFlags DEBUG_NO_SPECIAL_OPTIONS = int32(0x00000000)
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugCreateProcessFlags
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugProcessEnum
- implements Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugEnum
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 43 43 37 42 43 42 30 35 2D 38 41 36 38 // ..$CC7BCB05-8A68
- 2D 31 31 44 32 2D 39 38 33 43 2D 30 30 30 30 46 // -11D2-983C-0000F
- 38 30 38 33 34 32 44 00 00 ) // 808342D..
- .custom instance void [mscorlib]System.Runtime.InteropServices.ComConversionLossAttribute::.ctor() = ( 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .method public hidebysig newslot abstract virtual
- instance void Skip([in] uint32 celt) runtime managed internalcall
- {
- } // end of method ICorDebugProcessEnum::Skip
-
- .method public hidebysig newslot abstract virtual
- instance void Reset() runtime managed internalcall
- {
- } // end of method ICorDebugProcessEnum::Reset
-
- .method public hidebysig newslot abstract virtual
- instance void Clone([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugEnum& marshal( interface) ppEnum) runtime managed internalcall
- {
- } // end of method ICorDebugProcessEnum::Clone
-
- .method public hidebysig newslot abstract virtual
- instance void GetCount([out] uint32& pcelt) runtime managed internalcall
- {
- } // end of method ICorDebugProcessEnum::GetCount
-
- .method public hidebysig newslot abstract virtual
- instance int32 Next([in] uint32 celt,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugProcess[] marshal([ ]) processes,
- [out] uint32& pceltFetched) runtime managed internalcall preservesig
- {
- } // end of method ICorDebugProcessEnum::Next
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugProcessEnum
-
-.class public auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.EmbeddedCLRCorDebugClass
- extends [mscorlib]System.Object
- implements Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebug,
- Microsoft.Samples.Debugging.CorDebug.NativeApi.EmbeddedCLRCorDebug
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.ClassInterfaceAttribute::.ctor(int16) = ( 01 00 00 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 32 31 31 46 31 32 35 34 2D 42 43 37 45 // ..$211F1254-BC7E
- 2D 34 41 46 35 2D 42 39 41 41 2D 30 36 37 33 30 // -4AF5-B9AA-06730
- 38 44 38 33 44 44 31 00 00 ) // 8D83DD1..
- .custom instance void [mscorlib]System.Runtime.InteropServices.TypeLibTypeAttribute::.ctor(int16) = ( 01 00 02 00 00 00 )
- .method public specialname rtspecialname
- instance void .ctor() runtime managed internalcall
- {
- } // end of method EmbeddedCLRCorDebugClass::.ctor
-
- .method public hidebysig newslot virtual
- instance void Initialize() runtime managed internalcall
- {
- .override Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebug::Initialize
- } // end of method EmbeddedCLRCorDebugClass::Initialize
-
- .method public hidebysig newslot virtual
- instance void Terminate() runtime managed internalcall
- {
- .override Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebug::Terminate
- } // end of method EmbeddedCLRCorDebugClass::Terminate
-
- .method public hidebysig newslot virtual
- instance void SetManagedHandler([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugManagedCallback marshal( interface) pCallback) runtime managed internalcall
- {
- .override Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebug::SetManagedHandler
- } // end of method EmbeddedCLRCorDebugClass::SetManagedHandler
-
- .method public hidebysig newslot virtual
- instance void SetUnmanagedHandler([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugUnmanagedCallback marshal( interface) pCallback) runtime managed internalcall
- {
- .override Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebug::SetUnmanagedHandler
- } // end of method EmbeddedCLRCorDebugClass::SetUnmanagedHandler
-
- .method public hidebysig newslot virtual
- instance void CreateProcess([in] string marshal( lpwstr) lpApplicationName,
- [in] string marshal( lpwstr) lpCommandLine,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.SECURITY_ATTRIBUTES lpProcessAttributes,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.SECURITY_ATTRIBUTES lpThreadAttributes,
- [in] int32 bInheritHandles,
- [in] uint32 dwCreationFlags,
- [in] native int lpEnvironment,
- [in] string marshal( lpwstr) lpCurrentDirectory,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.STARTUPINFO lpStartupInfo,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.PROCESS_INFORMATION lpProcessInformation,
- [in] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugCreateProcessFlags debuggingFlags,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugProcess& marshal( interface) ppProcess) runtime managed internalcall
- {
- .param [9]
- .custom instance void [mscorlib]System.Runtime.InteropServices.ComAliasNameAttribute::.ctor(string) = ( 01 00 30 4D 69 63 72 6F 73 6F 66 74 2E 44 65 62 // ..0Microsoft.Deb
- 75 67 67 69 6E 67 2E 43 6F 72 44 65 62 75 67 2E // ugging.CorDebug.
- 4E 61 74 69 76 65 41 70 69 2E 55 4C 4F 4E 47 5F // NativeApi.ULONG_
- 50 54 52 00 00 ) // PTR..
- .param [10]
- .custom instance void [mscorlib]System.Runtime.InteropServices.ComAliasNameAttribute::.ctor(string) = ( 01 00 30 4D 69 63 72 6F 73 6F 66 74 2E 44 65 62 // ..0Microsoft.Deb
- 75 67 67 69 6E 67 2E 43 6F 72 44 65 62 75 67 2E // ugging.CorDebug.
- 4E 61 74 69 76 65 41 70 69 2E 55 4C 4F 4E 47 5F // NativeApi.ULONG_
- 50 54 52 00 00 ) // PTR..
- .override Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebug::CreateProcess
- } // end of method EmbeddedCLRCorDebugClass::CreateProcess
-
- .method public hidebysig newslot virtual
- instance void DebugActiveProcess([in] uint32 id,
- [in] int32 win32Attach,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugProcess& marshal( interface) ppProcess) runtime managed internalcall
- {
- .override Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebug::DebugActiveProcess
- } // end of method EmbeddedCLRCorDebugClass::DebugActiveProcess
-
- .method public hidebysig newslot virtual
- instance void EnumerateProcesses([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugProcessEnum& marshal( interface) ppProcess) runtime managed internalcall
- {
- .override Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebug::EnumerateProcesses
- } // end of method EmbeddedCLRCorDebugClass::EnumerateProcesses
-
- .method public hidebysig newslot virtual
- instance void GetProcess([in] uint32 dwProcessId,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugProcess& marshal( interface) ppProcess) runtime managed internalcall
- {
- .override Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebug::GetProcess
- } // end of method EmbeddedCLRCorDebugClass::GetProcess
-
- .method public hidebysig newslot virtual
- instance void CanLaunchOrAttach([in] uint32 dwProcessId,
- [in] int32 win32DebuggingEnabled) runtime managed internalcall
- {
- .override Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebug::CanLaunchOrAttach
- } // end of method EmbeddedCLRCorDebugClass::CanLaunchOrAttach
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.EmbeddedCLRCorDebugClass
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.EmbeddedCLRCorDebug
- implements Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebug
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 33 44 36 46 35 46 36 31 2D 37 35 33 38 // ..$3D6F5F61-7538
- 2D 31 31 44 33 2D 38 44 35 42 2D 30 30 31 30 34 // -11D3-8D5B-00104
- 42 33 35 45 37 45 46 00 00 ) // B35E7EF..
- .custom instance void [mscorlib]System.Runtime.InteropServices.CoClassAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 47 4D 69 63 72 6F 73 6F 66 74 2E 53 61 6D // ..GMicrosoft.Sam
- 70 6C 65 73 2E 44 65 62 75 67 67 69 6E 67 2E 43 // ples.Debugging.C
- 6F 72 44 65 62 75 67 2E 4E 61 74 69 76 65 41 70 // orDebug.NativeAp
- 69 2E 45 6D 62 65 64 64 65 64 43 4C 52 43 6F 72 // i.EmbeddedCLRCor
- 44 65 62 75 67 43 6C 61 73 73 00 00 ) // DebugClass..
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.EmbeddedCLRCorDebug
-
-.class public auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugManagerClass
- extends [mscorlib]System.Object
- implements Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebug,
- Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugManager
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 42 37 36 42 31 37 45 46 2D 31 36 46 41 // ..$B76B17EF-16FA
- 2D 34 33 41 33 2D 42 41 42 46 2D 44 42 36 45 35 // -43A3-BABF-DB6E5
- 39 34 33 39 45 42 30 00 00 ) // 9439EB0..
- .custom instance void [mscorlib]System.Runtime.InteropServices.ClassInterfaceAttribute::.ctor(int16) = ( 01 00 00 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.TypeLibTypeAttribute::.ctor(int16) = ( 01 00 02 00 00 00 )
- .method public specialname rtspecialname
- instance void .ctor() runtime managed internalcall
- {
- } // end of method CorDebugManagerClass::.ctor
-
- .method public hidebysig newslot virtual
- instance void Initialize() runtime managed internalcall
- {
- .override Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebug::Initialize
- } // end of method CorDebugManagerClass::Initialize
-
- .method public hidebysig newslot virtual
- instance void Terminate() runtime managed internalcall
- {
- .override Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebug::Terminate
- } // end of method CorDebugManagerClass::Terminate
-
- .method public hidebysig newslot virtual
- instance void SetManagedHandler([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugManagedCallback marshal( interface) pCallback) runtime managed internalcall
- {
- .override Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebug::SetManagedHandler
- } // end of method CorDebugManagerClass::SetManagedHandler
-
- .method public hidebysig newslot virtual
- instance void SetUnmanagedHandler([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugUnmanagedCallback marshal( interface) pCallback) runtime managed internalcall
- {
- .override Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebug::SetUnmanagedHandler
- } // end of method CorDebugManagerClass::SetUnmanagedHandler
-
- .method public hidebysig newslot virtual
- instance void CreateProcess([in] string marshal( lpwstr) lpApplicationName,
- [in] string marshal( lpwstr) lpCommandLine,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.SECURITY_ATTRIBUTES lpProcessAttributes,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.SECURITY_ATTRIBUTES lpThreadAttributes,
- [in] int32 bInheritHandles,
- [in] uint32 dwCreationFlags,
- [in] native int lpEnvironment,
- [in] string marshal( lpwstr) lpCurrentDirectory,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.STARTUPINFO lpStartupInfo,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.PROCESS_INFORMATION lpProcessInformation,
- [in] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugCreateProcessFlags debuggingFlags,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugProcess& marshal( interface) ppProcess) runtime managed internalcall
- {
- .param [9]
- .custom instance void [mscorlib]System.Runtime.InteropServices.ComAliasNameAttribute::.ctor(string) = ( 01 00 30 4D 69 63 72 6F 73 6F 66 74 2E 44 65 62 // ..0Microsoft.Deb
- 75 67 67 69 6E 67 2E 43 6F 72 44 65 62 75 67 2E // ugging.CorDebug.
- 4E 61 74 69 76 65 41 70 69 2E 55 4C 4F 4E 47 5F // NativeApi.ULONG_
- 50 54 52 00 00 ) // PTR..
- .param [10]
- .custom instance void [mscorlib]System.Runtime.InteropServices.ComAliasNameAttribute::.ctor(string) = ( 01 00 30 4D 69 63 72 6F 73 6F 66 74 2E 44 65 62 // ..0Microsoft.Deb
- 75 67 67 69 6E 67 2E 43 6F 72 44 65 62 75 67 2E // ugging.CorDebug.
- 4E 61 74 69 76 65 41 70 69 2E 55 4C 4F 4E 47 5F // NativeApi.ULONG_
- 50 54 52 00 00 ) // PTR..
- .override Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebug::CreateProcess
- } // end of method CorDebugManagerClass::CreateProcess
-
- .method public hidebysig newslot virtual
- instance void DebugActiveProcess([in] uint32 id,
- [in] int32 win32Attach,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugProcess& marshal( interface) ppProcess) runtime managed internalcall
- {
- .override Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebug::DebugActiveProcess
- } // end of method CorDebugManagerClass::DebugActiveProcess
-
- .method public hidebysig newslot virtual
- instance void EnumerateProcesses([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugProcessEnum& marshal( interface) ppProcess) runtime managed internalcall
- {
- .override Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebug::EnumerateProcesses
- } // end of method CorDebugManagerClass::EnumerateProcesses
-
- .method public hidebysig newslot virtual
- instance void GetProcess([in] uint32 dwProcessId,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugProcess& marshal( interface) ppProcess) runtime managed internalcall
- {
- .override Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebug::GetProcess
- } // end of method CorDebugManagerClass::GetProcess
-
- .method public hidebysig newslot virtual
- instance void CanLaunchOrAttach([in] uint32 dwProcessId,
- [in] int32 win32DebuggingEnabled) runtime managed internalcall
- {
- .override Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebug::CanLaunchOrAttach
- } // end of method CorDebugManagerClass::CanLaunchOrAttach
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugManagerClass
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugManager
- implements Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebug
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.CoClassAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 43 4D 69 63 72 6F 73 6F 66 74 2E 53 61 6D // ..CMicrosoft.Sam
- 70 6C 65 73 2E 44 65 62 75 67 67 69 6E 67 2E 43 // ples.Debugging.C
- 6F 72 44 65 62 75 67 2E 4E 61 74 69 76 65 41 70 // orDebug.NativeAp
- 69 2E 43 6F 72 44 65 62 75 67 4D 61 6E 61 67 65 // i.CorDebugManage
- 72 43 6C 61 73 73 00 00 ) // rClass..
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 33 44 36 46 35 46 36 31 2D 37 35 33 38 // ..$3D6F5F61-7538
- 2D 31 31 44 33 2D 38 44 35 42 2D 30 30 31 30 34 // -11D3-8D5B-00104
- 42 33 35 45 37 45 46 00 00 ) // B35E7EF..
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugManager
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugReferenceValue
- implements Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValue
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 43 43 37 42 43 41 46 39 2D 38 41 36 38 // ..$CC7BCAF9-8A68
- 2D 31 31 44 32 2D 39 38 33 43 2D 30 30 30 30 46 // -11D2-983C-0000F
- 38 30 38 33 34 32 44 00 00 ) // 808342D..
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .method public hidebysig newslot abstract virtual
- instance void GetType([out] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType& pType) runtime managed internalcall
- {
- } // end of method ICorDebugReferenceValue::GetType
-
- .method public hidebysig newslot abstract virtual
- instance void GetSize([out] uint32& pSize) runtime managed internalcall
- {
- } // end of method ICorDebugReferenceValue::GetSize
-
- .method public hidebysig newslot abstract virtual
- instance void GetAddress([out] uint64& pAddress) runtime managed internalcall
- {
- } // end of method ICorDebugReferenceValue::GetAddress
-
- .method public hidebysig newslot abstract virtual
- instance void CreateBreakpoint([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValueBreakpoint& marshal( interface) ppBreakpoint) runtime managed internalcall
- {
- } // end of method ICorDebugReferenceValue::CreateBreakpoint
-
- .method public hidebysig newslot abstract virtual
- instance void IsNull([out] int32& pbNull) runtime managed internalcall
- {
- } // end of method ICorDebugReferenceValue::IsNull
-
- .method public hidebysig newslot abstract virtual
- instance void GetValue([out] uint64& pValue) runtime managed internalcall
- {
- } // end of method ICorDebugReferenceValue::GetValue
-
- .method public hidebysig newslot abstract virtual
- instance void SetValue([in] uint64 'value') runtime managed internalcall
- {
- } // end of method ICorDebugReferenceValue::SetValue
-
- .method public hidebysig newslot abstract virtual
- instance void Dereference([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValue& marshal( interface) ppValue) runtime managed internalcall
- {
- } // end of method ICorDebugReferenceValue::Dereference
-
- .method public hidebysig newslot abstract virtual
- instance void DereferenceStrong([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValue& marshal( interface) ppValue) runtime managed internalcall
- {
- } // end of method ICorDebugReferenceValue::DereferenceStrong
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugReferenceValue
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugHeapValue
- implements Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValue
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 43 43 37 42 43 41 46 41 2D 38 41 36 38 // ..$CC7BCAFA-8A68
- 2D 31 31 44 32 2D 39 38 33 43 2D 30 30 30 30 46 // -11D2-983C-0000F
- 38 30 38 33 34 32 44 00 00 ) // 808342D..
- .method public hidebysig newslot abstract virtual
- instance void GetType([out] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType& pType) runtime managed internalcall
- {
- } // end of method ICorDebugHeapValue::GetType
-
- .method public hidebysig newslot abstract virtual
- instance void GetSize([out] uint32& pSize) runtime managed internalcall
- {
- } // end of method ICorDebugHeapValue::GetSize
-
- .method public hidebysig newslot abstract virtual
- instance void GetAddress([out] uint64& pAddress) runtime managed internalcall
- {
- } // end of method ICorDebugHeapValue::GetAddress
-
- .method public hidebysig newslot abstract virtual
- instance void CreateBreakpoint([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValueBreakpoint& marshal( interface) ppBreakpoint) runtime managed internalcall
- {
- } // end of method ICorDebugHeapValue::CreateBreakpoint
-
- .method public hidebysig newslot abstract virtual
- instance void IsValid([out] int32& pbValid) runtime managed internalcall
- {
- } // end of method ICorDebugHeapValue::IsValid
-
- .method public hidebysig newslot abstract virtual
- instance void CreateRelocBreakpoint([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValueBreakpoint& marshal( interface) ppBreakpoint) runtime managed internalcall
- {
- } // end of method ICorDebugHeapValue::CreateRelocBreakpoint
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugHeapValue
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugStringValue
- implements Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugHeapValue
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 43 43 37 42 43 41 46 44 2D 38 41 36 38 // ..$CC7BCAFD-8A68
- 2D 31 31 44 32 2D 39 38 33 43 2D 30 30 30 30 46 // -11D2-983C-0000F
- 38 30 38 33 34 32 44 00 00 ) // 808342D..
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.ComConversionLossAttribute::.ctor() = ( 01 00 00 00 )
- .method public hidebysig newslot abstract virtual
- instance void GetType([out] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType& pType) runtime managed internalcall
- {
- } // end of method ICorDebugStringValue::GetType
-
- .method public hidebysig newslot abstract virtual
- instance void GetSize([out] uint32& pSize) runtime managed internalcall
- {
- } // end of method ICorDebugStringValue::GetSize
-
- .method public hidebysig newslot abstract virtual
- instance void GetAddress([out] uint64& pAddress) runtime managed internalcall
- {
- } // end of method ICorDebugStringValue::GetAddress
-
- .method public hidebysig newslot abstract virtual
- instance void CreateBreakpoint([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValueBreakpoint& marshal( interface) ppBreakpoint) runtime managed internalcall
- {
- } // end of method ICorDebugStringValue::CreateBreakpoint
-
- .method public hidebysig newslot abstract virtual
- instance void IsValid([out] int32& pbValid) runtime managed internalcall
- {
- } // end of method ICorDebugStringValue::IsValid
-
- .method public hidebysig newslot abstract virtual
- instance void CreateRelocBreakpoint([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValueBreakpoint& marshal( interface) ppBreakpoint) runtime managed internalcall
- {
- } // end of method ICorDebugStringValue::CreateRelocBreakpoint
-
- .method public hidebysig newslot abstract virtual
- instance void GetLength([out] uint32& pcchString) runtime managed internalcall
- {
- } // end of method ICorDebugStringValue::GetLength
-
- .method public hidebysig newslot abstract virtual
- instance void GetString([in] uint32 cchString,
- [out] uint32& pcchString,
- [out] class [mscorlib]System.Text.StringBuilder marshal( lpwstr) szString) runtime managed internalcall
- {
- } // end of method ICorDebugStringValue::GetString
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugStringValue
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugGenericValue
- implements Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValue
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 43 43 37 42 43 41 46 38 2D 38 41 36 38 // ..$CC7BCAF8-8A68
- 2D 31 31 44 32 2D 39 38 33 43 2D 30 30 30 30 46 // -11D2-983C-0000F
- 38 30 38 33 34 32 44 00 00 ) // 808342D..
- .method public hidebysig newslot abstract virtual
- instance void GetType([out] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType& pType) runtime managed internalcall
- {
- } // end of method ICorDebugGenericValue::GetType
-
- .method public hidebysig newslot abstract virtual
- instance void GetSize([out] uint32& pSize) runtime managed internalcall
- {
- } // end of method ICorDebugGenericValue::GetSize
-
- .method public hidebysig newslot abstract virtual
- instance void GetAddress([out] uint64& pAddress) runtime managed internalcall
- {
- } // end of method ICorDebugGenericValue::GetAddress
-
- .method public hidebysig newslot abstract virtual
- instance void CreateBreakpoint([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValueBreakpoint& marshal( interface) ppBreakpoint) runtime managed internalcall
- {
- } // end of method ICorDebugGenericValue::CreateBreakpoint
-
- .method public hidebysig newslot abstract virtual
- instance void GetValue([out] native int pTo) runtime managed internalcall
- {
- } // end of method ICorDebugGenericValue::GetValue
-
- .method public hidebysig newslot abstract virtual
- instance void SetValue([in] native int pFrom) runtime managed internalcall
- {
- } // end of method ICorDebugGenericValue::SetValue
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugGenericValue
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugBoxValue
- implements Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugHeapValue
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 43 43 37 42 43 41 46 43 2D 38 41 36 38 // ..$CC7BCAFC-8A68
- 2D 31 31 44 32 2D 39 38 33 43 2D 30 30 30 30 46 // -11D2-983C-0000F
- 38 30 38 33 34 32 44 00 00 ) // 808342D..
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .method public hidebysig newslot abstract virtual
- instance void GetType([out] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType& pType) runtime managed internalcall
- {
- } // end of method ICorDebugBoxValue::GetType
-
- .method public hidebysig newslot abstract virtual
- instance void GetSize([out] uint32& pSize) runtime managed internalcall
- {
- } // end of method ICorDebugBoxValue::GetSize
-
- .method public hidebysig newslot abstract virtual
- instance void GetAddress([out] uint64& pAddress) runtime managed internalcall
- {
- } // end of method ICorDebugBoxValue::GetAddress
-
- .method public hidebysig newslot abstract virtual
- instance void CreateBreakpoint([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValueBreakpoint& marshal( interface) ppBreakpoint) runtime managed internalcall
- {
- } // end of method ICorDebugBoxValue::CreateBreakpoint
-
- .method public hidebysig newslot abstract virtual
- instance void IsValid([out] int32& pbValid) runtime managed internalcall
- {
- } // end of method ICorDebugBoxValue::IsValid
-
- .method public hidebysig newslot abstract virtual
- instance void CreateRelocBreakpoint([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValueBreakpoint& marshal( interface) ppBreakpoint) runtime managed internalcall
- {
- } // end of method ICorDebugBoxValue::CreateRelocBreakpoint
-
- .method public hidebysig newslot abstract virtual
- instance void GetObject([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugObjectValue& marshal( interface) ppObject) runtime managed internalcall
- {
- } // end of method ICorDebugBoxValue::GetObject
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugBoxValue
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugArrayValue
- implements Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugHeapValue
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 30 34 30 35 42 30 44 46 2D 41 36 36 30 // ..$0405B0DF-A660
- 2D 31 31 44 32 2D 42 44 30 32 2D 30 30 30 30 46 // -11D2-BD02-0000F
- 38 30 38 34 39 42 44 00 00 ) // 80849BD..
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.ComConversionLossAttribute::.ctor() = ( 01 00 00 00 )
- .method public hidebysig newslot abstract virtual
- instance void GetType([out] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType& pType) runtime managed internalcall
- {
- } // end of method ICorDebugArrayValue::GetType
-
- .method public hidebysig newslot abstract virtual
- instance void GetSize([out] uint32& pSize) runtime managed internalcall
- {
- } // end of method ICorDebugArrayValue::GetSize
-
- .method public hidebysig newslot abstract virtual
- instance void GetAddress([out] uint64& pAddress) runtime managed internalcall
- {
- } // end of method ICorDebugArrayValue::GetAddress
-
- .method public hidebysig newslot abstract virtual
- instance void CreateBreakpoint([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValueBreakpoint& marshal( interface) ppBreakpoint) runtime managed internalcall
- {
- } // end of method ICorDebugArrayValue::CreateBreakpoint
-
- .method public hidebysig newslot abstract virtual
- instance void IsValid([out] int32& pbValid) runtime managed internalcall
- {
- } // end of method ICorDebugArrayValue::IsValid
-
- .method public hidebysig newslot abstract virtual
- instance void CreateRelocBreakpoint([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValueBreakpoint& marshal( interface) ppBreakpoint) runtime managed internalcall
- {
- } // end of method ICorDebugArrayValue::CreateRelocBreakpoint
-
- .method public hidebysig newslot abstract virtual
- instance void GetElementType([out] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType& pType) runtime managed internalcall
- {
- } // end of method ICorDebugArrayValue::GetElementType
-
- .method public hidebysig newslot abstract virtual
- instance void GetRank([out] uint32& pnRank) runtime managed internalcall
- {
- } // end of method ICorDebugArrayValue::GetRank
-
- .method public hidebysig newslot abstract virtual
- instance void GetCount([out] uint32& pnCount) runtime managed internalcall
- {
- } // end of method ICorDebugArrayValue::GetCount
-
- .method public hidebysig newslot abstract virtual
- instance void GetDimensions([in] uint32 cdim,
- [out] uint32[] marshal([ + 0]) dims) runtime managed internalcall
- {
- } // end of method ICorDebugArrayValue::GetDimensions
-
- .method public hidebysig newslot abstract virtual
- instance void HasBaseIndicies([out] int32& pbHasBaseIndicies) runtime managed internalcall
- {
- } // end of method ICorDebugArrayValue::HasBaseIndicies
-
- .method public hidebysig newslot abstract virtual
- instance void GetBaseIndicies([in] uint32 cdim,
- [out] uint32[] marshal([ + 0]) indicies) runtime managed internalcall
- {
- } // end of method ICorDebugArrayValue::GetBaseIndicies
-
- .method public hidebysig newslot abstract virtual
- instance void GetElement([in] uint32 cdim,
- [in] int32[] marshal([+0]) indices,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValue& marshal( interface) ppValue) runtime managed internalcall
- {
- } // end of method ICorDebugArrayValue::GetElement
-
- .method public hidebysig newslot abstract virtual
- instance void GetElementAtPosition([in] uint32 nPosition,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValue& marshal( interface) ppValue) runtime managed internalcall
- {
- } // end of method ICorDebugArrayValue::GetElementAtPosition
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugArrayValue
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugILFrame
- implements Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFrame
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 30 33 45 32 36 33 31 31 2D 34 46 37 36 // ..$03E26311-4F76
- 2D 31 31 44 33 2D 38 38 43 36 2D 30 30 36 30 39 // -11D3-88C6-00609
- 37 39 34 35 34 31 38 00 00 ) // 7945418..
- .method public hidebysig newslot abstract virtual
- instance void GetChain([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugChain& marshal( interface) ppChain) runtime managed internalcall
- {
- } // end of method ICorDebugILFrame::GetChain
-
- .method public hidebysig newslot abstract virtual
- instance void GetCode([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugCode& marshal( interface) ppCode) runtime managed internalcall
- {
- } // end of method ICorDebugILFrame::GetCode
-
- .method public hidebysig newslot abstract virtual
- instance void GetFunction([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFunction& marshal( interface) ppFunction) runtime managed internalcall
- {
- } // end of method ICorDebugILFrame::GetFunction
-
- .method public hidebysig newslot abstract virtual
- instance void GetFunctionToken([out] uint32& pToken) runtime managed internalcall
- {
- } // end of method ICorDebugILFrame::GetFunctionToken
-
- .method public hidebysig newslot abstract virtual
- instance void GetStackRange([out] uint64& pStart,
- [out] uint64& pEnd) runtime managed internalcall
- {
- } // end of method ICorDebugILFrame::GetStackRange
-
- .method public hidebysig newslot abstract virtual
- instance void GetCaller([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFrame& marshal( interface) ppFrame) runtime managed internalcall
- {
- } // end of method ICorDebugILFrame::GetCaller
-
- .method public hidebysig newslot abstract virtual
- instance void GetCallee([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFrame& marshal( interface) ppFrame) runtime managed internalcall
- {
- } // end of method ICorDebugILFrame::GetCallee
-
- .method public hidebysig newslot abstract virtual
- instance void CreateStepper([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugStepper& marshal( interface) ppStepper) runtime managed internalcall
- {
- } // end of method ICorDebugILFrame::CreateStepper
-
- .method public hidebysig newslot abstract virtual
- instance void GetIP([out] uint32& pnOffset,
- [out] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugMappingResult& pMappingResult) runtime managed internalcall
- {
- } // end of method ICorDebugILFrame::GetIP
-
- .method public hidebysig newslot abstract virtual
- instance void SetIP([in] uint32 nOffset) runtime managed internalcall
- {
- } // end of method ICorDebugILFrame::SetIP
-
- .method public hidebysig newslot abstract virtual
- instance void EnumerateLocalVariables([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValueEnum& marshal( interface) ppValueEnum) runtime managed internalcall
- {
- } // end of method ICorDebugILFrame::EnumerateLocalVariables
-
- .method public hidebysig newslot abstract virtual
- instance void GetLocalVariable([in] uint32 dwIndex,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValue& marshal( interface) ppValue) runtime managed internalcall
- {
- } // end of method ICorDebugILFrame::GetLocalVariable
-
- .method public hidebysig newslot abstract virtual
- instance void EnumerateArguments([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValueEnum& marshal( interface) ppValueEnum) runtime managed internalcall
- {
- } // end of method ICorDebugILFrame::EnumerateArguments
-
- .method public hidebysig newslot abstract virtual
- instance void GetArgument([in] uint32 dwIndex,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValue& marshal( interface) ppValue) runtime managed internalcall
- {
- } // end of method ICorDebugILFrame::GetArgument
-
- .method public hidebysig newslot abstract virtual
- instance void GetStackDepth([out] uint32& pDepth) runtime managed internalcall
- {
- } // end of method ICorDebugILFrame::GetStackDepth
-
- .method public hidebysig newslot abstract virtual
- instance void GetStackValue([in] uint32 dwIndex,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValue& marshal( interface) ppValue) runtime managed internalcall
- {
- } // end of method ICorDebugILFrame::GetStackValue
-
- .method public hidebysig newslot abstract virtual
- instance int32 CanSetIP([in] uint32 nOffset) runtime managed internalcall preservesig
- {
- } // end of method ICorDebugILFrame::CanSetIP
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugILFrame
-
-.class public auto ansi sealed Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugMappingResult
- extends [mscorlib]System.Enum
-{
- .field public specialname rtspecialname int32 value__
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugMappingResult MAPPING_PROLOG = int32(0x00000001)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugMappingResult MAPPING_EPILOG = int32(0x00000002)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugMappingResult MAPPING_NO_INFO = int32(0x00000004)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugMappingResult MAPPING_UNMAPPED_ADDRESS = int32(0x00000008)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugMappingResult MAPPING_EXACT = int32(0x00000010)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugMappingResult MAPPING_APPROXIMATE = int32(0x00000020)
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugMappingResult
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValueEnum
- implements Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugEnum
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.ComConversionLossAttribute::.ctor() = ( 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 43 43 37 42 43 42 30 41 2D 38 41 36 38 // ..$CC7BCB0A-8A68
- 2D 31 31 44 32 2D 39 38 33 43 2D 30 30 30 30 46 // -11D2-983C-0000F
- 38 30 38 33 34 32 44 00 00 ) // 808342D..
- .method public hidebysig newslot abstract virtual
- instance void Skip([in] uint32 celt) runtime managed internalcall
- {
- } // end of method ICorDebugValueEnum::Skip
-
- .method public hidebysig newslot abstract virtual
- instance void Reset() runtime managed internalcall
- {
- } // end of method ICorDebugValueEnum::Reset
-
- .method public hidebysig newslot abstract virtual
- instance void Clone([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugEnum& marshal( interface) ppEnum) runtime managed internalcall
- {
- } // end of method ICorDebugValueEnum::Clone
-
- .method public hidebysig newslot abstract virtual
- instance void GetCount([out] uint32& pcelt) runtime managed internalcall
- {
- } // end of method ICorDebugValueEnum::GetCount
-
- .method public hidebysig newslot abstract virtual
- instance int32 Next([in] uint32 celt,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValue[] marshal([ ]) values,
- [out] uint32& pceltFetched) runtime managed internalcall preservesig
- {
- } // end of method ICorDebugValueEnum::Next
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValueEnum
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugInternalFrame
- implements Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFrame
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 42 39 32 43 43 37 46 37 2D 39 44 32 44 // ..$B92CC7F7-9D2D
- 2D 34 35 43 34 2D 42 43 32 42 2D 36 32 31 46 43 // -45C4-BC2B-621FC
- 43 39 44 46 42 46 34 00 00 ) // C9DFBF4..
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .method public hidebysig newslot abstract virtual
- instance void GetChain([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugChain& marshal( interface) ppChain) runtime managed internalcall
- {
- } // end of method ICorDebugInternalFrame::GetChain
-
- .method public hidebysig newslot abstract virtual
- instance void GetCode([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugCode& marshal( interface) ppCode) runtime managed internalcall
- {
- } // end of method ICorDebugInternalFrame::GetCode
-
- .method public hidebysig newslot abstract virtual
- instance void GetFunction([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFunction& marshal( interface) ppFunction) runtime managed internalcall
- {
- } // end of method ICorDebugInternalFrame::GetFunction
-
- .method public hidebysig newslot abstract virtual
- instance void GetFunctionToken([out] uint32& pToken) runtime managed internalcall
- {
- } // end of method ICorDebugInternalFrame::GetFunctionToken
-
- .method public hidebysig newslot abstract virtual
- instance void GetStackRange([out] uint64& pStart,
- [out] uint64& pEnd) runtime managed internalcall
- {
- } // end of method ICorDebugInternalFrame::GetStackRange
-
- .method public hidebysig newslot abstract virtual
- instance void GetCaller([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFrame& marshal( interface) ppFrame) runtime managed internalcall
- {
- } // end of method ICorDebugInternalFrame::GetCaller
-
- .method public hidebysig newslot abstract virtual
- instance void GetCallee([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFrame& marshal( interface) ppFrame) runtime managed internalcall
- {
- } // end of method ICorDebugInternalFrame::GetCallee
-
- .method public hidebysig newslot abstract virtual
- instance void CreateStepper([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugStepper& marshal( interface) ppStepper) runtime managed internalcall
- {
- } // end of method ICorDebugInternalFrame::CreateStepper
-
- .method public hidebysig newslot abstract virtual
- instance void GetFrameType([out] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugInternalFrameType& pType) runtime managed internalcall
- {
- } // end of method ICorDebugInternalFrame::GetFrameType
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugInternalFrame
-
-.class public auto ansi sealed Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugInternalFrameType
- extends [mscorlib]System.Enum
-{
- .field public specialname rtspecialname int32 value__
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugInternalFrameType STUBFRAME_NONE = int32(0x00000000)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugInternalFrameType STUBFRAME_M2U = int32(0x00000001)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugInternalFrameType STUBFRAME_U2M = int32(0x00000002)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugInternalFrameType STUBFRAME_APPDOMAIN_TRANSITION = int32(0x00000003)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugInternalFrameType STUBFRAME_LIGHTWEIGHT_FUNCTION = int32(0x00000004)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugInternalFrameType STUBFRAME_FUNC_EVAL = int32(0x00000005)
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugInternalFrameType
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugNativeFrame
- implements Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFrame
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 30 33 45 32 36 33 31 34 2D 34 46 37 36 // ..$03E26314-4F76
- 2D 31 31 44 33 2D 38 38 43 36 2D 30 30 36 30 39 // -11D3-88C6-00609
- 37 39 34 35 34 31 38 00 00 ) // 7945418..
- .method public hidebysig newslot abstract virtual
- instance void GetChain([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugChain& marshal( interface) ppChain) runtime managed internalcall
- {
- } // end of method ICorDebugNativeFrame::GetChain
-
- .method public hidebysig newslot abstract virtual
- instance void GetCode([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugCode& marshal( interface) ppCode) runtime managed internalcall
- {
- } // end of method ICorDebugNativeFrame::GetCode
-
- .method public hidebysig newslot abstract virtual
- instance void GetFunction([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFunction& marshal( interface) ppFunction) runtime managed internalcall
- {
- } // end of method ICorDebugNativeFrame::GetFunction
-
- .method public hidebysig newslot abstract virtual
- instance void GetFunctionToken([out] uint32& pToken) runtime managed internalcall
- {
- } // end of method ICorDebugNativeFrame::GetFunctionToken
-
- .method public hidebysig newslot abstract virtual
- instance void GetStackRange([out] uint64& pStart,
- [out] uint64& pEnd) runtime managed internalcall
- {
- } // end of method ICorDebugNativeFrame::GetStackRange
-
- .method public hidebysig newslot abstract virtual
- instance void GetCaller([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFrame& marshal( interface) ppFrame) runtime managed internalcall
- {
- } // end of method ICorDebugNativeFrame::GetCaller
-
- .method public hidebysig newslot abstract virtual
- instance void GetCallee([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFrame& marshal( interface) ppFrame) runtime managed internalcall
- {
- } // end of method ICorDebugNativeFrame::GetCallee
-
- .method public hidebysig newslot abstract virtual
- instance void CreateStepper([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugStepper& marshal( interface) ppStepper) runtime managed internalcall
- {
- } // end of method ICorDebugNativeFrame::CreateStepper
-
- .method public hidebysig newslot abstract virtual
- instance void GetIP([out] uint32& pnOffset) runtime managed internalcall
- {
- } // end of method ICorDebugNativeFrame::GetIP
-
- .method public hidebysig newslot abstract virtual
- instance void SetIP([in] uint32 nOffset) runtime managed internalcall
- {
- } // end of method ICorDebugNativeFrame::SetIP
-
- .method public hidebysig newslot abstract virtual
- instance void GetRegisterSet([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugRegisterSet& marshal( interface) ppRegisters) runtime managed internalcall
- {
- } // end of method ICorDebugNativeFrame::GetRegisterSet
-
- .method public hidebysig newslot abstract virtual
- instance void GetLocalRegisterValue([in] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister reg,
- [in] uint32 cbSigBlob,
- [in] uint32 pvSigBlob,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValue& marshal( interface) ppValue) runtime managed internalcall
- {
- .param [3]
- .custom instance void [mscorlib]System.Runtime.InteropServices.ComAliasNameAttribute::.ctor(string) = ( 01 00 30 4D 69 63 72 6F 73 6F 66 74 2E 44 65 62 // ..0Microsoft.Deb
- 75 67 67 69 6E 67 2E 43 6F 72 44 65 62 75 67 2E // ugging.CorDebug.
- 4E 61 74 69 76 65 41 70 69 2E 55 4C 4F 4E 47 5F // NativeApi.ULONG_
- 50 54 52 00 00 ) // PTR..
- } // end of method ICorDebugNativeFrame::GetLocalRegisterValue
-
- .method public hidebysig newslot abstract virtual
- instance void GetLocalDoubleRegisterValue([in] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister highWordReg,
- [in] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister lowWordReg,
- [in] uint32 cbSigBlob,
- [in] uint32 pvSigBlob,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValue& marshal( interface) ppValue) runtime managed internalcall
- {
- .param [4]
- .custom instance void [mscorlib]System.Runtime.InteropServices.ComAliasNameAttribute::.ctor(string) = ( 01 00 30 4D 69 63 72 6F 73 6F 66 74 2E 44 65 62 // ..0Microsoft.Deb
- 75 67 67 69 6E 67 2E 43 6F 72 44 65 62 75 67 2E // ugging.CorDebug.
- 4E 61 74 69 76 65 41 70 69 2E 55 4C 4F 4E 47 5F // NativeApi.ULONG_
- 50 54 52 00 00 ) // PTR..
- } // end of method ICorDebugNativeFrame::GetLocalDoubleRegisterValue
-
- .method public hidebysig newslot abstract virtual
- instance void GetLocalMemoryValue([in] uint64 address,
- [in] uint32 cbSigBlob,
- [in] uint32 pvSigBlob,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValue& marshal( interface) ppValue) runtime managed internalcall
- {
- .param [3]
- .custom instance void [mscorlib]System.Runtime.InteropServices.ComAliasNameAttribute::.ctor(string) = ( 01 00 30 4D 69 63 72 6F 73 6F 66 74 2E 44 65 62 // ..0Microsoft.Deb
- 75 67 67 69 6E 67 2E 43 6F 72 44 65 62 75 67 2E // ugging.CorDebug.
- 4E 61 74 69 76 65 41 70 69 2E 55 4C 4F 4E 47 5F // NativeApi.ULONG_
- 50 54 52 00 00 ) // PTR..
- } // end of method ICorDebugNativeFrame::GetLocalMemoryValue
-
- .method public hidebysig newslot abstract virtual
- instance void GetLocalRegisterMemoryValue([in] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister highWordReg,
- [in] uint64 lowWordAddress,
- [in] uint32 cbSigBlob,
- [in] uint32 pvSigBlob,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValue& marshal( interface) ppValue) runtime managed internalcall
- {
- .param [4]
- .custom instance void [mscorlib]System.Runtime.InteropServices.ComAliasNameAttribute::.ctor(string) = ( 01 00 30 4D 69 63 72 6F 73 6F 66 74 2E 44 65 62 // ..0Microsoft.Deb
- 75 67 67 69 6E 67 2E 43 6F 72 44 65 62 75 67 2E // ugging.CorDebug.
- 4E 61 74 69 76 65 41 70 69 2E 55 4C 4F 4E 47 5F // NativeApi.ULONG_
- 50 54 52 00 00 ) // PTR..
- } // end of method ICorDebugNativeFrame::GetLocalRegisterMemoryValue
-
- .method public hidebysig newslot abstract virtual
- instance void GetLocalMemoryRegisterValue([in] uint64 highWordAddress,
- [in] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister lowWordRegister,
- [in] uint32 cbSigBlob,
- [in] uint32 pvSigBlob,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValue& marshal( interface) ppValue) runtime managed internalcall
- {
- .param [4]
- .custom instance void [mscorlib]System.Runtime.InteropServices.ComAliasNameAttribute::.ctor(string) = ( 01 00 30 4D 69 63 72 6F 73 6F 66 74 2E 44 65 62 // ..0Microsoft.Deb
- 75 67 67 69 6E 67 2E 43 6F 72 44 65 62 75 67 2E // ugging.CorDebug.
- 4E 61 74 69 76 65 41 70 69 2E 55 4C 4F 4E 47 5F // NativeApi.ULONG_
- 50 54 52 00 00 ) // PTR..
- } // end of method ICorDebugNativeFrame::GetLocalMemoryRegisterValue
-
- .method public hidebysig newslot abstract virtual
- instance int32 CanSetIP([in] uint32 nOffset) runtime managed internalcall preservesig
- {
- } // end of method ICorDebugNativeFrame::CanSetIP
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugNativeFrame
-
-.class public auto ansi sealed Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister
- extends [mscorlib]System.Enum
-{
- .field public specialname rtspecialname int32 value__
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_INSTRUCTION_POINTER = int32(0x00000000)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_STACK_POINTER = int32(0x00000001)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_FRAME_POINTER = int32(0x00000002)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_X86_EIP = int32(0x00000000)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_X86_ESP = int32(0x00000001)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_X86_EBP = int32(0x00000002)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_X86_EAX = int32(0x00000003)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_X86_ECX = int32(0x00000004)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_X86_EDX = int32(0x00000005)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_X86_EBX = int32(0x00000006)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_X86_ESI = int32(0x00000007)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_X86_EDI = int32(0x00000008)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_X86_FPSTACK_0 = int32(0x00000009)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_X86_FPSTACK_1 = int32(0x0000000A)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_X86_FPSTACK_2 = int32(0x0000000B)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_X86_FPSTACK_3 = int32(0x0000000C)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_X86_FPSTACK_4 = int32(0x0000000D)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_X86_FPSTACK_5 = int32(0x0000000E)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_X86_FPSTACK_6 = int32(0x0000000F)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_X86_FPSTACK_7 = int32(0x00000010)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_AMD64_RIP = int32(0x00000000)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_AMD64_RSP = int32(0x00000001)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_AMD64_RBP = int32(0x00000002)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_AMD64_RAX = int32(0x00000003)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_AMD64_RCX = int32(0x00000004)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_AMD64_RDX = int32(0x00000005)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_AMD64_RBX = int32(0x00000006)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_AMD64_RSI = int32(0x00000007)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_AMD64_RDI = int32(0x00000008)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_AMD64_R8 = int32(0x00000009)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_AMD64_R9 = int32(0x0000000A)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_AMD64_R10 = int32(0x0000000B)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_AMD64_R11 = int32(0x0000000C)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_AMD64_R12 = int32(0x0000000D)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_AMD64_R13 = int32(0x0000000E)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_AMD64_R14 = int32(0x0000000F)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_AMD64_R15 = int32(0x00000010)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_AMD64_XMM0 = int32(0x00000011)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_AMD64_XMM1 = int32(0x00000012)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_AMD64_XMM2 = int32(0x00000013)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_AMD64_XMM3 = int32(0x00000014)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_AMD64_XMM4 = int32(0x00000015)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_AMD64_XMM5 = int32(0x00000016)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_AMD64_XMM6 = int32(0x00000017)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_AMD64_XMM7 = int32(0x00000018)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_AMD64_XMM8 = int32(0x00000019)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_AMD64_XMM9 = int32(0x0000001A)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_AMD64_XMM10 = int32(0x0000001B)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_AMD64_XMM11 = int32(0x0000001C)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_AMD64_XMM12 = int32(0x0000001D)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_AMD64_XMM13 = int32(0x0000001E)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_AMD64_XMM14 = int32(0x0000001F)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_AMD64_XMM15 = int32(0x00000020)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_IA64_BSP = int32(0x00000002)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_IA64_R0 = int32(0x00000003)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister REGISTER_IA64_F0 = int32(0x00000083)
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugRegister
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugManagedCallback2
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 32 35 30 45 35 45 45 41 2D 44 42 35 43 // ..$250E5EEA-DB5C
- 2D 34 43 37 36 2D 42 36 46 33 2D 38 43 34 36 46 // -4C76-B6F3-8C46F
- 31 32 45 33 32 30 33 00 00 ) // 12E3203..
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .method public hidebysig newslot abstract virtual
- instance void FunctionRemapOpportunity([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAppDomain marshal( interface) pAppDomain,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugThread marshal( interface) pThread,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFunction marshal( interface) pOldFunction,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFunction marshal( interface) pNewFunction,
- [in] uint32 oldILOffset) runtime managed internalcall
- {
- } // end of method ICorDebugManagedCallback2::FunctionRemapOpportunity
-
- .method public hidebysig newslot abstract virtual
- instance void CreateConnection([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugProcess marshal( interface) pProcess,
- [in] uint32 dwConnectionId,
- [in] uint16& pConnName) runtime managed internalcall
- {
- } // end of method ICorDebugManagedCallback2::CreateConnection
-
- .method public hidebysig newslot abstract virtual
- instance void ChangeConnection([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugProcess marshal( interface) pProcess,
- [in] uint32 dwConnectionId) runtime managed internalcall
- {
- } // end of method ICorDebugManagedCallback2::ChangeConnection
-
- .method public hidebysig newslot abstract virtual
- instance void DestroyConnection([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugProcess marshal( interface) pProcess,
- [in] uint32 dwConnectionId) runtime managed internalcall
- {
- } // end of method ICorDebugManagedCallback2::DestroyConnection
-
- .method public hidebysig newslot abstract virtual
- instance void Exception([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAppDomain marshal( interface) pAppDomain,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugThread marshal( interface) pThread,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFrame marshal( interface) pFrame,
- [in] uint32 nOffset,
- [in] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugExceptionCallbackType dwEventType,
- [in] uint32 dwFlags) runtime managed internalcall
- {
- } // end of method ICorDebugManagedCallback2::Exception
-
- .method public hidebysig newslot abstract virtual
- instance void ExceptionUnwind([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAppDomain marshal( interface) pAppDomain,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugThread marshal( interface) pThread,
- [in] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugExceptionUnwindCallbackType dwEventType,
- [in] uint32 dwFlags) runtime managed internalcall
- {
- } // end of method ICorDebugManagedCallback2::ExceptionUnwind
-
- .method public hidebysig newslot abstract virtual
- instance void FunctionRemapComplete([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAppDomain marshal( interface) pAppDomain,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugThread marshal( interface) pThread,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFunction marshal( interface) pFunction) runtime managed internalcall
- {
- } // end of method ICorDebugManagedCallback2::FunctionRemapComplete
-
- .method public hidebysig newslot abstract virtual
- instance void MDANotification([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugController marshal( interface) pController,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugThread marshal( interface) pThread,
- //[in] object marshal( iunknown) pMDA
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugMDA marshal( interface) pMDA
- ) runtime managed internalcall
- {
- } // end of method ICorDebugManagedCallback2::MDANotification
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugManagedCallback2
-
-.class public auto ansi sealed Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugExceptionCallbackType
- extends [mscorlib]System.Enum
-{
- .field public specialname rtspecialname int32 value__
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugExceptionCallbackType DEBUG_EXCEPTION_FIRST_CHANCE = int32(0x00000001)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugExceptionCallbackType DEBUG_EXCEPTION_USER_FIRST_CHANCE = int32(0x00000002)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugExceptionCallbackType DEBUG_EXCEPTION_CATCH_HANDLER_FOUND = int32(0x00000003)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugExceptionCallbackType DEBUG_EXCEPTION_UNHANDLED = int32(0x00000004)
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugExceptionCallbackType
-
-.class public auto ansi sealed Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugExceptionUnwindCallbackType
- extends [mscorlib]System.Enum
-{
- .field public specialname rtspecialname int32 value__
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugExceptionUnwindCallbackType DEBUG_EXCEPTION_UNWIND_BEGIN = int32(0x00000001)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugExceptionUnwindCallbackType DEBUG_EXCEPTION_INTERCEPTED = int32(0x00000002)
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugExceptionUnwindCallbackType
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAppDomain2
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 30 39 36 45 38 31 44 35 2D 45 43 44 41 // ..$096E81D5-ECDA
- 2D 34 32 30 32 2D 38 33 46 35 2D 43 36 35 39 38 // -4202-83F5-C6598
- 30 41 39 45 46 37 35 00 00 ) // 0A9EF75..
- .method public hidebysig newslot abstract virtual
- instance void GetArrayOrPointerType([in] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType elementType,
- [in] uint32 nRank,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugType marshal( interface) pTypeArg,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugType& marshal( interface) ppType) runtime managed internalcall
- {
- } // end of method ICorDebugAppDomain2::GetArrayOrPointerType
-
- .method public hidebysig newslot abstract virtual
- instance void GetFunctionPointerType([in] uint32 nTypeArgs,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugType[] marshal( [ +0 ]) ppTypeArgs,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugType& marshal( interface) ppType) runtime managed internalcall
- {
- } // end of method ICorDebugAppDomain2::GetFunctionPointerType
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAppDomain2
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugType
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 44 36 31 33 46 30 42 42 2D 41 43 45 31 // ..$D613F0BB-ACE1
- 2D 34 43 31 39 2D 42 44 37 32 2D 45 34 43 30 38 // -4C19-BD72-E4C08
- 44 35 44 41 37 46 35 00 00 ) // D5DA7F5..
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .method public hidebysig newslot abstract virtual
- instance void GetType([out] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType& ty) runtime managed internalcall
- {
- } // end of method ICorDebugType::GetType
-
- .method public hidebysig newslot abstract virtual
- instance void GetClass([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugClass& marshal( interface) ppClass) runtime managed internalcall
- {
- } // end of method ICorDebugType::GetClass
-
- .method public hidebysig newslot abstract virtual
- instance void EnumerateTypeParameters([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugTypeEnum& marshal( interface) ppTyParEnum) runtime managed internalcall
- {
- } // end of method ICorDebugType::EnumerateTypeParameters
-
- .method public hidebysig newslot abstract virtual
- instance void GetFirstTypeParameter([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugType& marshal( interface) 'value') runtime managed internalcall
- {
- } // end of method ICorDebugType::GetFirstTypeParameter
-
- .method public hidebysig newslot abstract virtual
- instance void GetBase([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugType& marshal( interface) pBase) runtime managed internalcall
- {
- } // end of method ICorDebugType::GetBase
-
- .method public hidebysig newslot abstract virtual
- instance void GetStaticFieldValue([in] uint32 fieldDef,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFrame marshal( interface) pFrame,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValue& marshal( interface) ppValue) runtime managed internalcall
- {
- } // end of method ICorDebugType::GetStaticFieldValue
-
- .method public hidebysig newslot abstract virtual
- instance void GetRank([out] uint32& pnRank) runtime managed internalcall
- {
- } // end of method ICorDebugType::GetRank
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugType
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugTypeEnum
- implements Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugEnum
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.ComConversionLossAttribute::.ctor() = ( 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 31 30 46 32 37 34 39 39 2D 39 44 46 32 // ..$10F27499-9DF2
- 2D 34 33 43 45 2D 38 33 33 33 2D 41 33 32 31 44 // -43CE-8333-A321D
- 37 43 39 39 43 42 34 00 00 ) // 7C99CB4..
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .method public hidebysig newslot abstract virtual
- instance void Skip([in] uint32 celt) runtime managed internalcall
- {
- } // end of method ICorDebugTypeEnum::Skip
-
- .method public hidebysig newslot abstract virtual
- instance void Reset() runtime managed internalcall
- {
- } // end of method ICorDebugTypeEnum::Reset
-
- .method public hidebysig newslot abstract virtual
- instance void Clone([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugEnum& marshal( interface) ppEnum) runtime managed internalcall
- {
- } // end of method ICorDebugTypeEnum::Clone
-
- .method public hidebysig newslot abstract virtual
- instance void GetCount([out] uint32& pcelt) runtime managed internalcall
- {
- } // end of method ICorDebugTypeEnum::GetCount
-
-
- .method public hidebysig newslot abstract virtual
- instance int32 Next([in] uint32 celt,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugType[] marshal([ ]) values,
- [out] uint32& pceltFetched) runtime managed internalcall preservesig
- {
- } // end of method ICorDebugTypeEnum::Next
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugTypeEnum
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugProcess2
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.ComConversionLossAttribute::.ctor() = ( 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 41 44 31 42 33 35 38 38 2D 30 45 46 30 // ..$AD1B3588-0EF0
- 2D 34 37 34 34 2D 41 34 39 36 2D 41 41 30 39 41 // -4744-A496-AA09A
- 39 46 38 30 33 37 31 00 00 ) // 9F80371..
- .method public hidebysig newslot abstract virtual
- instance void GetThreadForTaskID([in] uint64 taskid,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugThread2& marshal( interface) ppThread) runtime managed internalcall
- {
- } // end of method ICorDebugProcess2::GetThreadForTaskID
-
- .method public hidebysig newslot abstract virtual
- instance void GetVersion([out] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi._COR_VERSION& version) runtime managed internalcall
- {
- } // end of method ICorDebugProcess2::GetVersion
-
- .method public hidebysig newslot abstract virtual
- instance void SetUnmanagedBreakpoint([in] uint64 address,
- [in] uint32 bufsize,
- [out] unsigned int8[] marshal([]) buffer,
- [out] uint32& bufLen) runtime managed internalcall
- {
- } // end of method ICorDebugProcess2::SetUnmanagedBreakpoint
-
- .method public hidebysig newslot abstract virtual
- instance void ClearUnmanagedBreakpoint([in] uint64 address) runtime managed internalcall
- {
- } // end of method ICorDebugProcess2::ClearUnmanagedBreakpoint
-
- .method public hidebysig newslot abstract virtual
- instance void SetDesiredNGENCompilerFlags([in] uint32 pdwFlags) runtime managed internalcall
- {
- } // end of method ICorDebugProcess2::SetDesiredNGENCompilerFlags
-
- .method public hidebysig newslot abstract virtual
- instance void GetDesiredNGENCompilerFlags([out] uint32& pdwFlags) runtime managed internalcall
- {
- } // end of method ICorDebugProcess2::GetDesiredNGENCompilerFlags
-
- .method public hidebysig newslot abstract virtual
-
- instance void GetReferenceValueFromGCHandle([in] native int handle,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugReferenceValue& marshal(interface) pOutValue) runtime managed internalcall
- {
-
- } // end of method ICorDebugProcess2::GetReferenceValueFromGCHandle
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugProcess2
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugThread2
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 32 42 44 39 35 36 44 39 2D 37 42 30 37 // ..$2BD956D9-7B07
- 2D 34 42 45 46 2D 38 41 39 38 2D 31 32 41 41 38 // -4BEF-8A98-12AA8
- 36 32 34 31 37 43 35 00 00 ) // 62417C5..
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.ComConversionLossAttribute::.ctor() = ( 01 00 00 00 )
- .method public hidebysig newslot abstract virtual
- instance void GetActiveFunctions([in] uint32 cFunctions,
- [out] uint32& pcFunctions,
- [out] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.COR_ACTIVE_FUNCTION[] marshal( [ +1 ] ) pFunctions) runtime managed internalcall
- {
- } // end of method ICorDebugThread2::GetActiveFunctions
-
- .method public hidebysig newslot abstract virtual
- instance void GetConnectionID([out] uint32& pdwConnectionId) runtime managed internalcall
- {
- } // end of method ICorDebugThread2::GetConnectionID
-
- .method public hidebysig newslot abstract virtual
- instance void GetTaskID([out] uint64& pTaskId) runtime managed internalcall
- {
- } // end of method ICorDebugThread2::GetTaskID
-
- .method public hidebysig newslot abstract virtual
- instance void GetVolatileOSThreadID([out] uint32& pdwTid) runtime managed internalcall
- {
- } // end of method ICorDebugThread2::GetVolatileOSThreadID
-
- .method public hidebysig newslot abstract virtual
- instance void InterceptCurrentException([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFrame marshal( interface) pFrame) runtime managed internalcall
- {
- } // end of method ICorDebugThread2::InterceptCurrentException
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugThread2
-
-.class public sequential ansi sealed beforefieldinit Microsoft.Samples.Debugging.CorDebug.NativeApi._COR_VERSION
- extends [mscorlib]System.ValueType
-{
- .pack 4
- .size 0
- .field public uint32 dwMajor
- .field public uint32 dwMinor
- .field public uint32 dwBuild
- .field public uint32 dwSubBuild
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi._COR_VERSION
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugStepper2
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 43 35 42 36 45 39 43 33 2D 45 37 44 31 // ..$C5B6E9C3-E7D1
- 2D 34 41 38 45 2D 38 37 33 42 2D 37 46 30 34 37 // -4A8E-873B-7F047
- 46 30 37 30 36 46 37 00 00 ) // F0706F7..
- .method public hidebysig newslot abstract virtual
- instance void SetJMC([in] int32 fIsJMCStepper) runtime managed internalcall
- {
- } // end of method ICorDebugStepper2::SetJMC
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugStepper2
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugILFrame2
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 35 44 38 38 41 39 39 34 2D 36 43 33 30 // ..$5D88A994-6C30
- 2D 34 37 39 42 2D 38 39 30 46 2D 42 43 45 46 38 // -479B-890F-BCEF8
- 38 42 31 32 39 41 35 00 00 ) // 8B129A5..
- .method public hidebysig newslot abstract virtual
- instance void RemapFunction([in] uint32 newILOffset) runtime managed internalcall
- {
- } // end of method ICorDebugILFrame2::RemapFunction
-
- .method public hidebysig newslot abstract virtual
- instance void EnumerateTypeParameters([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugTypeEnum& marshal( interface) ppTyParEnum) runtime managed internalcall
- {
- } // end of method ICorDebugILFrame2::EnumerateTypeParameters
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugILFrame2
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugModule2
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 37 46 43 43 35 46 42 35 2D 34 39 43 30 // ..$7FCC5FB5-49C0
- 2D 34 31 44 45 2D 39 39 33 38 2D 33 42 38 38 42 // -41DE-9938-3B88B
- 35 42 39 41 44 44 37 00 00 ) // 5B9ADD7..
- .method public hidebysig newslot abstract virtual
- instance void SetJMCStatus([in] int32 bIsJustMyCode,
- [in] uint32 cTokens,
- [in] uint32& pTokens) runtime managed internalcall
- {
- } // end of method ICorDebugModule2::SetJMCStatus
-
- .method public hidebysig newslot abstract virtual
- instance void ApplyChanges([in] uint32 cbMetadata,
- [in] uint8[] marshal([]) pbMetadata,
- [in] uint32 cbIL,
- [in] uint8[] marshal([]) pbIL) runtime managed internalcall
- {
- } // end of method ICorDebugModule2::ApplyChanges
-
- .method public hidebysig newslot abstract virtual
- instance int32 SetJITCompilerFlags([in] uint32 dwFlags) runtime managed internalcall preservesig
- {
- } // end of method ICorDebugModule2::SetJITCompilerFlags
-
- .method public hidebysig newslot abstract virtual
- instance void GetJITCompilerFlags([out] uint32& pdwFlags) runtime managed internalcall
- {
- } // end of method ICorDebugModule2::GetJITCompilerFlags
-
- .method public hidebysig newslot abstract virtual
- instance void ResolveAssembly([in] uint32 tkAssemblyRef,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugAssembly& marshal( interface) ppAssembly) runtime managed internalcall
- {
- } // end of method ICorDebugModule2::ResolveAssembly
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugModule2
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFunction2
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 45 46 30 43 34 39 30 42 2D 39 34 43 33 // ..$EF0C490B-94C3
- 2D 34 45 34 44 2D 42 36 32 39 2D 44 44 43 31 33 // -4E4D-B629-DDC13
- 34 43 35 33 32 44 38 00 00 ) // 4C532D8..
- .method public hidebysig newslot abstract virtual
- instance void SetJMCStatus([in] int32 bIsJustMyCode) runtime managed internalcall
- {
- } // end of method ICorDebugFunction2::SetJMCStatus
-
- .method public hidebysig newslot abstract virtual
- instance void GetJMCStatus([out] int32& pbIsJustMyCode) runtime managed internalcall
- {
- } // end of method ICorDebugFunction2::GetJMCStatus
-
-
- // This method was deprecated and actually removed, but we added it back in to preserve vtable layout.
- .method public hidebysig newslot abstract virtual
- instance void EnumerateNativeCode([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugCodeEnum& marshal( interface) ppCodeEnum) runtime managed internalcall
- {
- } // end of method ICorDebugFunction2::EnumerateNativeCode
-
- .method public hidebysig newslot abstract virtual
- instance void GetVersionNumber([out] uint32& pnVersion) runtime managed internalcall
- {
- } // end of method ICorDebugFunction2::GetVersionNumber
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFunction2
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugCodeEnum
- implements Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugEnum
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.ComConversionLossAttribute::.ctor() = ( 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 35 35 45 39 36 34 36 31 2D 39 36 34 35 // ..$55E96461-9645
- 2D 34 35 45 34 2D 41 32 46 46 2D 30 33 36 37 38 // -45E4-A2FF-03678
- 37 37 41 42 43 44 45 00 00 ) // 77ABCDE..
- .method public hidebysig newslot abstract virtual
- instance void Skip([in] uint32 celt) runtime managed internalcall
- {
- } // end of method ICorDebugCodeEnum::Skip
-
- .method public hidebysig newslot abstract virtual
- instance void Reset() runtime managed internalcall
- {
- } // end of method ICorDebugCodeEnum::Reset
-
- .method public hidebysig newslot abstract virtual
- instance void Clone([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugEnum& marshal( interface) ppEnum) runtime managed internalcall
- {
- } // end of method ICorDebugCodeEnum::Clone
-
- .method public hidebysig newslot abstract virtual
- instance void GetCount([out] uint32& pcelt) runtime managed internalcall
- {
- } // end of method ICorDebugCodeEnum::GetCount
-
- .method public hidebysig newslot abstract virtual
- instance int32 Next([in] uint32 celt,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugCode[] marshal([ ]) values,
- [out] uint32& pceltFetched) runtime managed internalcall preservesig
- {
- } // end of method ICorDebugCodeEnum::Next
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugCodeEnum
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugClass2
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 42 30 30 38 45 41 38 44 2D 37 41 42 31 // ..$B008EA8D-7AB1
- 2D 34 33 46 37 2D 42 42 32 30 2D 46 42 42 35 41 // -43F7-BB20-FBB5A
- 30 34 30 33 38 41 45 00 00 ) // 04038AE..
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .method public hidebysig newslot abstract virtual
- instance void GetParameterizedType([in] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType elementType,
- [in] uint32 nTypeArgs,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugType[] marshal( [ +1 ]) ppTypeArgs,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugType& marshal( interface) ppType) runtime managed internalcall
- {
- } // end of method ICorDebugClass2::GetParameterizedType
-
- .method public hidebysig newslot abstract virtual
- instance void SetJMCStatus([in] int32 bIsJustMyCode) runtime managed internalcall
- {
- } // end of method ICorDebugClass2::SetJMCStatus
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugClass2
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugEval2
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 46 42 30 44 39 43 45 37 2D 42 45 36 36 // ..$FB0D9CE7-BE66
- 2D 34 36 38 33 2D 39 44 33 32 2D 41 34 32 41 30 // -4683-9D32-A42A0
- 34 45 32 46 44 39 31 00 00 ) // 4E2FD91..
- .method public hidebysig newslot abstract virtual
- instance void CallParameterizedFunction([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFunction marshal( interface) pFunction,
- [in] uint32 nTypeArgs,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugType[] marshal( [ +1 ]) ppTypeArgs,
- [in] uint32 nArgs,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValue[] marshal( [ +3 ]) ppArgs) runtime managed internalcall
- {
- } // end of method ICorDebugEval2::CallParameterizedFunction
-
- .method public hidebysig newslot abstract virtual
- instance void CreateValueForType([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugType marshal( interface) pType,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValue& marshal( interface) ppValue) runtime managed internalcall
- {
- } // end of method ICorDebugEval2::CreateValueForType
-
- .method public hidebysig newslot abstract virtual
- instance void NewParameterizedObject([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFunction marshal( interface) pConstructor,
- [in] uint32 nTypeArgs,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugType[] marshal( [ +1 ]) ppTypeArgs,
- [in] uint32 nArgs,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValue[] marshal( [ +3 ]) ppArgs) runtime managed internalcall
- {
- } // end of method ICorDebugEval2::NewParameterizedObject
-
- .method public hidebysig newslot abstract virtual
- instance void NewParameterizedObjectNoConstructor([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugClass marshal( interface) pClass,
- [in] uint32 nTypeArgs,
- [in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugType[] marshal( [ +1 ]) ppTypeArgs) runtime managed internalcall
- {
- } // end of method ICorDebugEval2::NewParameterizedObjectNoConstructor
-
- .method public hidebysig newslot abstract virtual
- instance void NewParameterizedArray([in] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugType marshal( interface) pElementType,
- [in] uint32 rank,
- [in] uint32& dims,
- [in] uint32& lowBounds) runtime managed internalcall
- {
- } // end of method ICorDebugEval2::NewParameterizedArray
-
- .method public hidebysig newslot abstract virtual
- instance void NewStringWithLength([in] string marshal( lpwstr) 'string',
- [in] uint32 uiLength) runtime managed internalcall
- {
- } // end of method ICorDebugEval2::NewStringWithLength
-
- .method public hidebysig newslot abstract virtual
- instance void RudeAbort() runtime managed internalcall
- {
- } // end of method ICorDebugEval2::RudeAbort
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugEval2
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValue2
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 35 45 30 42 35 34 45 37 2D 44 38 38 41 // ..$5E0B54E7-D88A
- 2D 34 36 32 36 2D 39 34 32 30 2D 41 36 39 31 45 // -4626-9420-A691E
- 30 41 37 38 42 34 39 00 00 ) // 0A78B49..
- .method public hidebysig newslot abstract virtual
- instance void GetExactType([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugType& marshal( interface) ppType) runtime managed internalcall
- {
- } // end of method ICorDebugValue2::GetExactType
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValue2
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugObjectValue2
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 34 39 45 34 41 33 32 30 2D 34 41 39 42 // ..$49E4A320-4A9B
- 2D 34 45 43 41 2D 42 31 30 35 2D 32 32 39 46 42 // -4ECA-B105-229FB
- 37 44 35 30 30 39 46 00 00 ) // 7D5009F..
- .method public hidebysig newslot abstract virtual
- instance void GetVirtualMethodAndType([in] uint32 memberRef,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugFunction& marshal( interface) ppFunction,
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugType& marshal( interface) ppType) runtime managed internalcall
- {
- } // end of method ICorDebugObjectValue2::GetVirtualMethodAndType
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugObjectValue2
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugHandleValue
- implements Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugReferenceValue
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 30 32 39 35 39 36 45 38 2D 32 37 36 42 // ..$029596E8-276B
- 2D 34 36 41 31 2D 39 38 32 31 2D 37 33 32 45 39 // -46A1-9821-732E9
- 36 42 42 42 30 30 42 00 00 ) // 6BBB00B..
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .method public hidebysig newslot abstract virtual
- instance void GetType([out] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType& pType) runtime managed internalcall
- {
- } // end of method ICorDebugHandleValue::GetType
-
- .method public hidebysig newslot abstract virtual
- instance void GetSize([out] uint32& pSize) runtime managed internalcall
- {
- } // end of method ICorDebugHandleValue::GetSize
-
- .method public hidebysig newslot abstract virtual
- instance void GetAddress([out] uint64& pAddress) runtime managed internalcall
- {
- } // end of method ICorDebugHandleValue::GetAddress
-
- .method public hidebysig newslot abstract virtual
- instance void CreateBreakpoint([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValueBreakpoint& marshal( interface) ppBreakpoint) runtime managed internalcall
- {
- } // end of method ICorDebugHandleValue::CreateBreakpoint
-
- .method public hidebysig newslot abstract virtual
- instance void IsNull([out] int32& pbNull) runtime managed internalcall
- {
- } // end of method ICorDebugHandleValue::IsNull
-
- .method public hidebysig newslot abstract virtual
- instance void GetValue([out] uint64& pValue) runtime managed internalcall
- {
- } // end of method ICorDebugHandleValue::GetValue
-
- .method public hidebysig newslot abstract virtual
- instance void SetValue([in] uint64 'value') runtime managed internalcall
- {
- } // end of method ICorDebugHandleValue::SetValue
-
- .method public hidebysig newslot abstract virtual
- instance void Dereference([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValue& marshal( interface) ppValue) runtime managed internalcall
- {
- } // end of method ICorDebugHandleValue::Dereference
-
- .method public hidebysig newslot abstract virtual
- instance void DereferenceStrong([out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugValue& marshal( interface) ppValue) runtime managed internalcall
- {
- } // end of method ICorDebugHandleValue::DereferenceStrong
-
- .method public hidebysig newslot abstract virtual
- instance void GetHandleType([out] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugHandleType& pType) runtime managed internalcall
- {
- } // end of method ICorDebugHandleValue::GetHandleType
-
- .method public hidebysig newslot abstract virtual
- instance void Dispose() runtime managed internalcall
- {
- } // end of method ICorDebugHandleValue::Dispose
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugHandleValue
-
-.class public auto ansi sealed Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugHandleType
- extends [mscorlib]System.Enum
-{
- .field public specialname rtspecialname int32 value__
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugHandleType HANDLE_STRONG = int32(0x00000001)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugHandleType HANDLE_WEAK_TRACK_RESURRECTION = int32(0x00000002)
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugHandleType
-
-.class interface public abstract auto ansi import Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugHeapValue2
-{
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 45 33 41 43 34 44 36 43 2D 39 43 42 37 // ..$E3AC4D6C-9CB7
- 2D 34 33 45 36 2D 39 36 43 43 2D 42 32 31 35 34 // -43E6-96CC-B2154
- 30 45 35 30 38 33 43 00 00 ) // 0E5083C..
- .method public hidebysig newslot abstract virtual
- instance void CreateHandle([in] valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugHandleType 'type',
- [out] class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugHandleValue& marshal( interface) ppHandle) runtime managed internalcall
- {
- } // end of method ICorDebugHeapValue2::CreateHandle
-
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugHeapValue2
-
-// =============================================================
-
-// has to be kept in sync with clr/src/inc/CorHdr.h, see comments there
-.class public auto ansi sealed Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType
- extends [mscorlib]System.Enum
-{
- .custom instance void [mscorlib]System.FlagsAttribute::.ctor() = ( 01 00 00 00 )
- .custom instance void [mscorlib]System.CLSCompliantAttribute::.ctor(bool) = ( 01 00 01 00 00 )
- .field public specialname rtspecialname int32 value__
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType ELEMENT_TYPE_END = int32(0x00000000)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType ELEMENT_TYPE_VOID = int32(0x00000001)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType ELEMENT_TYPE_BOOLEAN = int32(0x00000002)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType ELEMENT_TYPE_CHAR = int32(0x00000003)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType ELEMENT_TYPE_I1 = int32(0x00000004)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType ELEMENT_TYPE_U1 = int32(0x00000005)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType ELEMENT_TYPE_I2 = int32(0x00000006)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType ELEMENT_TYPE_U2 = int32(0x00000007)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType ELEMENT_TYPE_I4 = int32(0x00000008)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType ELEMENT_TYPE_U4 = int32(0x00000009)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType ELEMENT_TYPE_I8 = int32(0x0000000A)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType ELEMENT_TYPE_U8 = int32(0x0000000B)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType ELEMENT_TYPE_R4 = int32(0x0000000C)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType ELEMENT_TYPE_R8 = int32(0x0000000D)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType ELEMENT_TYPE_STRING = int32(0x0000000E)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType ELEMENT_TYPE_PTR = int32(0x0000000F)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType ELEMENT_TYPE_BYREF = int32(0x00000010)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType ELEMENT_TYPE_VALUETYPE = int32(0x00000011)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType ELEMENT_TYPE_CLASS = int32(0x00000012)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType ELEMENT_TYPE_VAR = int32(0x00000013)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType ELEMENT_TYPE_ARRAY = int32(0x00000014)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType ELEMENT_TYPE_GENERICINST = int32(0x00000015)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType ELEMENT_TYPE_TYPEDBYREF = int32(0x00000016)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType ELEMENT_TYPE_I = int32(0x00000018)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType ELEMENT_TYPE_U = int32(0x00000019)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType ELEMENT_TYPE_FNPTR = int32(0x0000001B)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType ELEMENT_TYPE_OBJECT = int32(0x0000001C)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType ELEMENT_TYPE_SZARRAY = int32(0x0000001D)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType ELEMENT_TYPE_MVAR = int32(0x0000001E)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType ELEMENT_TYPE_CMOD_REQD = int32(0x0000001F)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType ELEMENT_TYPE_CMOD_OPT = int32(0x00000020)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType ELEMENT_TYPE_INTERNAL = int32(0x00000021)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType ELEMENT_TYPE_MAX = int32(0x00000022)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType ELEMENT_TYPE_MODIFIER = int32(0x00000040)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType ELEMENT_TYPE_SENTINEL = int32(0x00000041)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType ELEMENT_TYPE_PINNED = int32(0x00000045)
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.CorElementType
-
-// has to be kept in sync with cordebug.idl
-.class public auto ansi sealed Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugMDAFlags
- extends [mscorlib]System.Enum
-{
- .custom instance void [mscorlib]System.FlagsAttribute::.ctor() = ( 01 00 00 00 )
- .custom instance void [mscorlib]System.CLSCompliantAttribute::.ctor(bool) = ( 01 00 01 00 00 )
- .field public specialname rtspecialname int32 value__
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugMDAFlags MDA_FLAG_SEVERE = int32(0x00000001)
- .field public static literal valuetype Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugMDAFlags MDA_FLAG_SLIP = int32(0x00000002)
-} // end of class Microsoft.Samples.Debugging.CorDebug.NativeApi.CorDebugMDAFlags
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi/corpublib.il b/extras/MonoDevelop.Debugger.Win32/CorApi/corpublib.il
deleted file mode 100644
index 0a425a504e..0000000000
--- a/extras/MonoDevelop.Debugger.Win32/CorApi/corpublib.il
+++ /dev/null
@@ -1,327 +0,0 @@
-//---------------------------------------------------------------------
-// This file is part of the CLR Managed Debugger (mdbg) Sample.
-//
-// Copyright (C) Microsoft Corporation. All rights reserved.
-//---------------------------------------------------------------------
-
-// Microsoft (R) .NET Framework IL Disassembler. Version 1.0.3705.0
-// Copyright (C) Microsoft Corporation 1998-2001. All rights reserved.
-
-// ============== CLASS STRUCTURE DECLARATION ==================
-//
-.namespace Microsoft.Samples.Debugging.CorPublish.NativeApi
-{
- .class public auto ansi import CorpubPublishClass
- extends [mscorlib]System.Object
- implements Microsoft.Samples.Debugging.CorPublish.NativeApi.ICorPublish,
- Microsoft.Samples.Debugging.CorPublish.NativeApi.CorpubPublish
- {
- } // end of class CorpubPublishClass
-
- .class interface public abstract auto ansi import CorpubPublish
- implements Microsoft.Samples.Debugging.CorPublish.NativeApi.ICorPublish
- {
- } // end of class CorpubPublish
-
- .class interface public abstract auto ansi import ICorPublish
- {
- } // end of class ICorPublish
-
- .class public auto ansi sealed COR_PUB_ENUMPROCESS
- extends [mscorlib]System.Enum
- {
- } // end of class COR_PUB_ENUMPROCESS
-
- .class public auto ansi sealed __MIDL___MIDL_itf_corpub_0000_0001
- extends [mscorlib]System.Enum
- {
- } // end of class __MIDL___MIDL_itf_corpub_0000_0001
-
- .class interface public abstract auto ansi import ICorPublishProcessEnum
- implements Microsoft.Samples.Debugging.CorPublish.NativeApi.ICorPublishEnum
- {
- } // end of class ICorPublishProcessEnum
-
- .class interface public abstract auto ansi import ICorPublishEnum
- {
- } // end of class ICorPublishEnum
-
- .class interface public abstract auto ansi import ICorPublishProcess
- {
- } // end of class ICorPublishProcess
-
- .class interface public abstract auto ansi import ICorPublishAppDomainEnum
- implements Microsoft.Samples.Debugging.CorPublish.NativeApi.ICorPublishEnum
- {
- } // end of class ICorPublishAppDomainEnum
-
- .class interface public abstract auto ansi import ICorPublishAppDomain
- {
- } // end of class ICorPublishAppDomain
-
-} // end of namespace Microsoft.Samples.Debugging.CorPublish.NativeApi
-
-
-// =============================================================
-
-
-// =============== GLOBAL FIELDS AND METHODS ===================
-
-
-// =============================================================
-
-
-// =============== CLASS MEMBERS DECLARATION ===================
-// note that class flags, 'extends' and 'implements' clauses
-// are provided here for information only
-
-.namespace Microsoft.Samples.Debugging.CorPublish.NativeApi
-{
- .class public auto ansi import CorpubPublishClass
- extends [mscorlib]System.Object
- implements Microsoft.Samples.Debugging.CorPublish.NativeApi.ICorPublish,
- Microsoft.Samples.Debugging.CorPublish.NativeApi.CorpubPublish
- {
- .custom instance void [mscorlib]System.Runtime.InteropServices.ClassInterfaceAttribute::.ctor(int16) = ( 01 00 00 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 30 34 37 61 39 61 34 30 2D 36 35 37 65 // ..$047a9a40-657e
- 2D 31 31 64 33 2D 38 64 35 62 2D 30 30 31 30 34 // -11d3-8d5b-00104
- 62 33 35 65 37 65 66 00 00 ) // b35e7ef..
- .custom instance void [mscorlib]System.Runtime.InteropServices.TypeLibTypeAttribute::.ctor(int16) = ( 01 00 02 00 00 00 )
- .method public specialname rtspecialname
- instance void .ctor() runtime managed internalcall
- {
- } // end of method CorpubPublishClass::.ctor
-
- .method public hidebysig newslot virtual
- instance void EnumProcesses([in] valuetype Microsoft.Samples.Debugging.CorPublish.NativeApi.COR_PUB_ENUMPROCESS Type,
- [out] class Microsoft.Samples.Debugging.CorPublish.NativeApi.ICorPublishProcessEnum& marshal( interface) ppIEnum) runtime managed internalcall
- {
- .param [1]
- .custom instance void [mscorlib]System.Runtime.InteropServices.ComAliasNameAttribute::.ctor(string) = ( 01 00 24 43 6F 72 70 75 62 50 72 6F 63 65 73 73 // ..$CorpubProcess
- 4C 69 62 2E 43 4F 52 5F 50 55 42 5F 45 4E 55 4D // Lib.COR_PUB_ENUM
- 50 52 4F 43 45 53 53 00 00 ) // PROCESS..
- .override Microsoft.Samples.Debugging.CorPublish.NativeApi.ICorPublish::EnumProcesses
- } // end of method CorpubPublishClass::EnumProcesses
-
- .method public hidebysig newslot virtual
- instance void GetProcess([in] unsigned int32 pid,
- [out] class Microsoft.Samples.Debugging.CorPublish.NativeApi.ICorPublishProcess& marshal( interface) ppProcess) runtime managed internalcall
- {
- .override Microsoft.Samples.Debugging.CorPublish.NativeApi.ICorPublish::GetProcess
- } // end of method CorpubPublishClass::GetProcess
-
- } // end of class CorpubPublishClass
-
- .class interface public abstract auto ansi import CorpubPublish
- implements Microsoft.Samples.Debugging.CorPublish.NativeApi.ICorPublish
- {
- .custom instance void [mscorlib]System.Runtime.InteropServices.CoClassAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 43 4D 69 63 72 6F 73 6F 66 74 2E 53 61 6D // ..CMicrosoft.Sam
- 70 6C 65 73 2E 44 65 62 75 67 67 69 6E 67 2E 43 // ples.Debugging.C
- 6F 72 50 75 62 6C 69 73 68 2E 4E 61 74 69 76 65 // orPublish.Native
- 41 70 69 2E 43 6F 72 70 75 62 50 75 62 6C 69 73 // Api.CorpubPublis
- 68 43 6C 61 73 73 00 00 ) // hClass..
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 39 36 31 33 41 30 45 37 2D 35 41 36 38 // ..$9613A0E7-5A68
- 2D 31 31 44 33 2D 38 46 38 34 2D 30 30 41 30 43 // -11D3-8F84-00A0C
- 39 42 34 44 35 30 43 00 00 ) // 9B4D50C..
- } // end of class CorpubPublish
-
- .class interface public abstract auto ansi import ICorPublish
- {
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 39 36 31 33 41 30 45 37 2D 35 41 36 38 // ..$9613A0E7-5A68
- 2D 31 31 44 33 2D 38 46 38 34 2D 30 30 41 30 43 // -11D3-8F84-00A0C
- 39 42 34 44 35 30 43 00 00 ) // 9B4D50C..
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .method public hidebysig newslot virtual abstract
- instance void EnumProcesses([in] valuetype Microsoft.Samples.Debugging.CorPublish.NativeApi.COR_PUB_ENUMPROCESS Type,
- [out] class Microsoft.Samples.Debugging.CorPublish.NativeApi.ICorPublishProcessEnum& marshal( interface) ppIEnum) runtime managed internalcall
- {
- .param [1]
- .custom instance void [mscorlib]System.Runtime.InteropServices.ComAliasNameAttribute::.ctor(string) = ( 01 00 24 43 6F 72 70 75 62 50 72 6F 63 65 73 73 // ..$CorpubProcess
- 4C 69 62 2E 43 4F 52 5F 50 55 42 5F 45 4E 55 4D // Lib.COR_PUB_ENUM
- 50 52 4F 43 45 53 53 00 00 ) // PROCESS..
- } // end of method ICorPublish::EnumProcesses
-
- .method public hidebysig newslot virtual abstract
- instance void GetProcess([in] unsigned int32 pid,
- [out] class Microsoft.Samples.Debugging.CorPublish.NativeApi.ICorPublishProcess& marshal( interface) ppProcess) runtime managed internalcall
- {
- } // end of method ICorPublish::GetProcess
-
- } // end of class ICorPublish
-
- .class public auto ansi sealed COR_PUB_ENUMPROCESS
- extends [mscorlib]System.Enum
- {
- .field public specialname rtspecialname int32 value__
- .field public static literal valuetype Microsoft.Samples.Debugging.CorPublish.NativeApi.COR_PUB_ENUMPROCESS COR_PUB_MANAGEDONLY = int32(0x00000001)
- } // end of class COR_PUB_ENUMPROCESS
-
- .class public auto ansi sealed __MIDL___MIDL_itf_corpub_0000_0001
- extends [mscorlib]System.Enum
- {
- .field public specialname rtspecialname int32 value__
- .field public static literal valuetype Microsoft.Samples.Debugging.CorPublish.NativeApi.__MIDL___MIDL_itf_corpub_0000_0001 COR_PUB_MANAGEDONLY = int32(0x00000001)
- } // end of class __MIDL___MIDL_itf_corpub_0000_0001
-
- .class interface public abstract auto ansi import ICorPublishProcessEnum
- implements Microsoft.Samples.Debugging.CorPublish.NativeApi.ICorPublishEnum
- {
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 41 33 37 46 42 44 34 31 2D 35 41 36 39 // ..$A37FBD41-5A69
- 2D 31 31 44 33 2D 38 46 38 34 2D 30 30 41 30 43 // -11D3-8F84-00A0C
- 39 42 34 44 35 30 43 00 00 ) // 9B4D50C..
- .method public hidebysig newslot virtual abstract
- instance void Skip([in] unsigned int32 celt) runtime managed internalcall
- {
- } // end of method ICorPublishProcessEnum::Skip
-
- .method public hidebysig newslot virtual abstract
- instance void Reset() runtime managed internalcall
- {
- } // end of method ICorPublishProcessEnum::Reset
-
- .method public hidebysig newslot virtual abstract
- instance void Clone([out] class Microsoft.Samples.Debugging.CorPublish.NativeApi.ICorPublishEnum& marshal( interface) ppEnum) runtime managed internalcall
- {
- } // end of method ICorPublishProcessEnum::Clone
-
- .method public hidebysig newslot virtual abstract
- instance void GetCount([out] unsigned int32& pcelt) runtime managed internalcall
- {
- } // end of method ICorPublishProcessEnum::GetCount
-
- .method public hidebysig newslot virtual abstract
- instance int32 Next([in] unsigned int32 celt,
- [out] class Microsoft.Samples.Debugging.CorPublish.NativeApi.ICorPublishProcess& marshal( interface) objects,
- [out] unsigned int32& pceltFetched) runtime managed internalcall preservesig
- {
- } // end of method ICorPublishProcessEnum::Next
-
- } // end of class ICorPublishProcessEnum
-
- .class interface public abstract auto ansi import ICorPublishEnum
- {
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 43 30 42 32 32 39 36 37 2D 35 41 36 39 // ..$C0B22967-5A69
- 2D 31 31 44 33 2D 38 46 38 34 2D 30 30 41 30 43 // -11D3-8F84-00A0C
- 39 42 34 44 35 30 43 00 00 ) // 9B4D50C..
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .method public hidebysig newslot virtual abstract
- instance void Skip([in] unsigned int32 celt) runtime managed internalcall
- {
- } // end of method ICorPublishEnum::Skip
-
- .method public hidebysig newslot virtual abstract
- instance void Reset() runtime managed internalcall
- {
- } // end of method ICorPublishEnum::Reset
-
- .method public hidebysig newslot virtual abstract
- instance void Clone([out] class Microsoft.Samples.Debugging.CorPublish.NativeApi.ICorPublishEnum& marshal( interface) ppEnum) runtime managed internalcall
- {
- } // end of method ICorPublishEnum::Clone
-
- .method public hidebysig newslot virtual abstract
- instance void GetCount([out] unsigned int32& pcelt) runtime managed internalcall
- {
- } // end of method ICorPublishEnum::GetCount
-
- } // end of class ICorPublishEnum
-
- .class interface public abstract auto ansi import ICorPublishProcess
- {
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 31 38 44 38 37 41 46 31 2D 35 41 36 41 // ..$18D87AF1-5A6A
- 2D 31 31 44 33 2D 38 46 38 34 2D 30 30 41 30 43 // -11D3-8F84-00A0C
- 39 42 34 44 35 30 43 00 00 ) // 9B4D50C..
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .method public hidebysig newslot virtual abstract
- instance void IsManaged([out] int32& pbManaged) runtime managed internalcall
- {
- } // end of method ICorPublishProcess::IsManaged
-
- .method public hidebysig newslot virtual abstract
- instance void EnumAppDomains([out] class Microsoft.Samples.Debugging.CorPublish.NativeApi.ICorPublishAppDomainEnum& marshal( interface) ppEnum) runtime managed internalcall
- {
- } // end of method ICorPublishProcess::EnumAppDomains
-
- .method public hidebysig newslot virtual abstract
- instance void GetProcessID([out] unsigned int32& pid) runtime managed internalcall
- {
- } // end of method ICorPublishProcess::GetProcessID
-
- .method public hidebysig newslot virtual abstract
- instance void GetDisplayName([in] unsigned int32 cchName,
- [out] unsigned int32& pcchName,
- // REPLACED [out] unsigned int16& szName
- [out] class [mscorlib]System.Text.StringBuilder marshal( lpwstr) szName
-
- ) runtime managed internalcall
- {
- } // end of method ICorPublishProcess::GetDisplayName
-
- } // end of class ICorPublishProcess
-
- .class interface public abstract auto ansi import ICorPublishAppDomainEnum
- implements Microsoft.Samples.Debugging.CorPublish.NativeApi.ICorPublishEnum
- {
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 39 46 30 43 39 38 46 35 2D 35 41 36 41 // ..$9F0C98F5-5A6A
- 2D 31 31 44 33 2D 38 46 38 34 2D 30 30 41 30 43 // -11D3-8F84-00A0C
- 39 42 34 44 35 30 43 00 00 ) // 9B4D50C..
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .method public hidebysig newslot virtual abstract
- instance void Skip([in] unsigned int32 celt) runtime managed internalcall
- {
- } // end of method ICorPublishAppDomainEnum::Skip
-
- .method public hidebysig newslot virtual abstract
- instance void Reset() runtime managed internalcall
- {
- } // end of method ICorPublishAppDomainEnum::Reset
-
- .method public hidebysig newslot virtual abstract
- instance void Clone([out] class Microsoft.Samples.Debugging.CorPublish.NativeApi.ICorPublishEnum& marshal( interface) ppEnum) runtime managed internalcall
- {
- } // end of method ICorPublishAppDomainEnum::Clone
-
- .method public hidebysig newslot virtual abstract
- instance void GetCount([out] unsigned int32& pcelt) runtime managed internalcall
- {
- } // end of method ICorPublishAppDomainEnum::GetCount
-
- .method public hidebysig newslot virtual abstract
- instance int32 Next([in] unsigned int32 celt,
- [out] class Microsoft.Samples.Debugging.CorPublish.NativeApi.ICorPublishAppDomain& marshal( interface) objects,
- [out] unsigned int32& pceltFetched) runtime managed internalcall preservesig
- {
- } // end of method ICorPublishAppDomainEnum::Next
-
- } // end of class ICorPublishAppDomainEnum
-
- .class interface public abstract auto ansi import ICorPublishAppDomain
- {
- .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 44 36 33 31 35 43 38 46 2D 35 41 36 41 // ..$D6315C8F-5A6A
- 2D 31 31 44 33 2D 38 46 38 34 2D 30 30 41 30 43 // -11D3-8F84-00A0C
- 39 42 34 44 35 30 43 00 00 ) // 9B4D50C..
- .custom instance void [mscorlib]System.Runtime.InteropServices.InterfaceTypeAttribute::.ctor(int16) = ( 01 00 01 00 00 00 )
- .method public hidebysig newslot virtual abstract
- instance void GetID([out] unsigned int32& puId) runtime managed internalcall
- {
- } // end of method ICorPublishAppDomain::GetID
-
- .method public hidebysig newslot virtual abstract
- instance void GetName([in] unsigned int32 cchName,
- [out] unsigned int32& pcchName,
- // REPLACED [out] unsigned int16& szName
- [out] class [mscorlib]System.Text.StringBuilder marshal( lpwstr) szName
- ) runtime managed internalcall
- {
- } // end of method ICorPublishAppDomain::GetName
-
- } // end of class ICorPublishAppDomain
-
-
-// =============================================================
-
-} // end of namespace Microsoft.Samples.Debugging.CorPublish.NativeApi
-
-//*********** DISASSEMBLY COMPLETE ***********************
-// WARNING: Created Win32 resource file corpublib.res
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi/refs.il b/extras/MonoDevelop.Debugger.Win32/CorApi/refs.il
deleted file mode 100644
index 197d1d6705..0000000000
--- a/extras/MonoDevelop.Debugger.Win32/CorApi/refs.il
+++ /dev/null
@@ -1,29 +0,0 @@
-//---------------------------------------------------------------------
-// This file is part of the CLR Managed Debugger (mdbg) Sample.
-//
-// Copyright (C) Microsoft Corporation. All rights reserved.
-//---------------------------------------------------------------------
-
-//
-// Common assembly refs and declarations for the CorApi.netmodule
-// This is the IL portion of the raw API that imports the native interfaces.
-
-
-.assembly extern mscorlib
-{
- // This value should never change, even across versions.
- .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
-
- // @todo - it would be nice to cooperative with the build
- // to automate this value.
- .ver 2:0:0:0
-}
-
-.module CorApi.dll
-// [module:System.CLSCompliant(false)]
-.custom instance void [mscorlib]System.CLSCompliantAttribute::.ctor(bool) = ( 01 00 01 00 00 )
-// MVID: {668BBB50-6634-45E5-8256-7ECEEAEC577E}
-.imagebase 0x00400000
-.subsystem 0x00000003
-.file alignment 512
-.corflags 0x00000001
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi2/CorApi2.csproj b/extras/MonoDevelop.Debugger.Win32/CorApi2/CorApi2.csproj
index 2bccd52b5c..d8998cf04d 100644
--- a/extras/MonoDevelop.Debugger.Win32/CorApi2/CorApi2.csproj
+++ b/extras/MonoDevelop.Debugger.Win32/CorApi2/CorApi2.csproj
@@ -71,6 +71,7 @@
<Compile Include="debug\Class.cs" />
<Compile Include="debug\Constants.cs" />
<Compile Include="debug\Controller.cs" />
+ <Compile Include="debug\CorAPIAssemblyAttributes.cs" />
<Compile Include="debug\Debugger.cs" />
<Compile Include="debug\ErrorInfoEnumerator.cs" />
<Compile Include="debug\Eval.cs" />
@@ -92,7 +93,6 @@
<Compile Include="debug\Value.cs" />
<Compile Include="debug\ValueBreakpoint.cs" />
<Compile Include="debug\WrapperBase.cs" />
- <Compile Include="Metadata\Constants.cs" />
<Compile Include="Metadata\CorMetadata.cs" />
<Compile Include="Metadata\MetadataFieldInfo.cs" />
<Compile Include="Metadata\MetadataParameterInfo.cs" />
@@ -106,6 +106,7 @@
<Compile Include="SymStore\ISymScope2.cs" />
<Compile Include="SymStore\ISymSearchInfo.cs" />
<Compile Include="SymStore\ISymWriter2.cs" />
+ <Compile Include="SymStore\SymAccess.cs" />
<Compile Include="SymStore\symbinder.cs" />
<Compile Include="SymStore\SymConstant.cs" />
<Compile Include="SymStore\SymDocument.cs" />
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi2/Metadata/CorMetadata.cs b/extras/MonoDevelop.Debugger.Win32/CorApi2/Metadata/CorMetadata.cs
index 70e74ceea4..b4b2b9e083 100644
--- a/extras/MonoDevelop.Debugger.Win32/CorApi2/Metadata/CorMetadata.cs
+++ b/extras/MonoDevelop.Debugger.Win32/CorApi2/Metadata/CorMetadata.cs
@@ -21,9 +21,11 @@ namespace Microsoft.Samples.Debugging.CorMetadata
{
public sealed class CorMetadataImport
{
+ // [Xamarin] Expression evaluator.
public static Dictionary<CorElementType, Type> CoreTypes = new Dictionary<CorElementType, Type> ();
- static CorMetadataImport ( )
+ // [Xamarin] Expression evaluator.
+ static CorMetadataImport ()
{
CoreTypes.Add (CorElementType.ELEMENT_TYPE_BOOLEAN, typeof (bool));
CoreTypes.Add (CorElementType.ELEMENT_TYPE_CHAR, typeof (char));
@@ -44,9 +46,7 @@ namespace Microsoft.Samples.Debugging.CorMetadata
public CorMetadataImport(CorModule managedModule)
{
- // GUID Copied from Cor.h
- Guid IID_IMetadataImport = new Guid("7DAC8207-D3AE-4c75-9B67-92801A497D44");
- m_importer = (IMetadataImport) managedModule.GetMetaDataInterface(IID_IMetadataImport);
+ m_importer = managedModule.GetMetaDataInterface <IMetadataImport>();
Debug.Assert(m_importer != null);
}
@@ -73,11 +73,11 @@ namespace Microsoft.Samples.Debugging.CorMetadata
// for 'Foo', returns 0.
public int CountGenericParams(int typeToken)
{
- // <strip>@TODO resolve if GetMetaDataInterface should throw or return null.</strip>
+
// This may fail in pre V2.0 debuggees.
//Guid IID_IMetadataImport2 = new Guid("FCE5EFA0-8BBA-4f8e-A036-8F2022B08466");
if( ! (m_importer is IMetadataImport2) )
- return 0; // this means we're pre v2.0 debugees.
+ return 0; // this means we're pre v2.0 debuggees.
IMetadataImport2 importer2 = (m_importer as IMetadataImport2);
@@ -258,17 +258,6 @@ namespace Microsoft.Samples.Debugging.CorMetadata
}
}
-#if USEOLDSYMREADER
- public IntPtr GetRawInterface()
- {
-#if MDBG_FAKE_COM
- System.Guid iid = new System.Guid( "7DAC8207-D3AE-4c75-9B67-92801A497D44");
- return ((Microsoft.ClrTools.GenFakeCom.IFakeComWrapper)m_importer).GetIfacePtr( iid );
-#else
- return Marshal.GetComInterfaceForObject(m_importer,typeof(IMetadataImport));
-#endif
- }
-#else
public object RawCOMObject
{
get
@@ -276,7 +265,6 @@ namespace Microsoft.Samples.Debugging.CorMetadata
return m_importer;
}
}
-#endif
// properties
@@ -336,12 +324,14 @@ namespace Microsoft.Samples.Debugging.CorMetadata
out pulCodeRVA,
out pdwImplFlags);
+ // [Xamarin] Expression evaluator.
CorCallingConvention callingConv;
MetadataHelperFunctions.ReadMethodSignature (importer, ref ppvSigBlob, out callingConv, out m_retType, out m_argTypes);
m_name = szMethodName.ToString ();
m_methodAttributes = (MethodAttributes)pdwAttr;
}
+ // [Xamarin] Expression evaluator.
public override Type ReturnType
{
get
@@ -431,6 +421,7 @@ namespace Microsoft.Samples.Debugging.CorMetadata
throw new NotImplementedException();
}
+ // [Xamarin] Expression evaluator.
public override System.Reflection.ParameterInfo[] GetParameters()
{
ArrayList al = new ArrayList();
@@ -477,6 +468,7 @@ namespace Microsoft.Samples.Debugging.CorMetadata
private int m_classToken;
private int m_methodToken;
private MethodAttributes m_methodAttributes;
+ // [Xamarin] Expression evaluator.
private List<Type> m_argTypes;
private Type m_retType;
}
@@ -532,11 +524,9 @@ namespace Microsoft.Samples.Debugging.CorMetadata
- // <STRIP>
- // 11/6/04 JKeljo:
- // </STRIP>
+
// Struct isn't complete yet; just here for the IsTokenOfType method
- // TODO: Re-do metadata token usage throughout to use this class
+
public struct MetadataToken
{
public MetadataToken(int value)
@@ -604,6 +594,7 @@ namespace Microsoft.Samples.Debugging.CorMetadata
{
private static uint TokenFromRid(uint rid, uint tktype) {return (rid) | (tktype);}
+ // [Xamarin] Expression evaluator.
public static void ReadMethodSignature (IMetadataImport importer, ref IntPtr pData, out CorCallingConvention cconv, out Type retType, out List<Type> argTypes)
{
cconv = MetadataHelperFunctions.CorSigUncompressCallingConv (ref pData);
@@ -614,11 +605,13 @@ namespace Microsoft.Samples.Debugging.CorMetadata
argTypes.Add (MetadataHelperFunctions.ReadType (importer, ref pData));
}
+ // [Xamarin] Expression evaluator.
class GenericType
{
// Used as marker for generic method args
}
+ // [Xamarin] Expression evaluator.
static Type ReadType (IMetadataImport importer, ref IntPtr pData)
{
CorElementType et;
@@ -715,10 +708,7 @@ namespace Microsoft.Samples.Debugging.CorMetadata
}
// The below have been translated manually from the inline C++ helpers in cor.h
- // <STRIP>
- // JKeljo 11/11/04: The only ones that have been tested at this point are
- // CorSigUncompressCallingConv, CorSigUncompressToken, and CorSigUncompressElementType
- // </STRIP>
+
internal static uint CorSigUncompressBigData(
ref IntPtr pData) // [IN,OUT] compressed data
{
@@ -916,7 +906,7 @@ namespace Microsoft.Samples.Debugging.CorMetadata
{
IMetadataImport2 importer2 = (importer as IMetadataImport2);
if(importer2 == null)
- return new string[0]; // this means we're pre v2.0 debugees.
+ return new string[0]; // this means we're pre v2.0 debuggees.
Debug.Assert( importer2!=null );
@@ -977,6 +967,7 @@ namespace Microsoft.Samples.Debugging.CorMetadata
return genargs;
}
+ // [Xamarin] Expression evaluator.
static object[] emptyAttributes = new object[0];
static internal object[] GetDebugAttributes (IMetadataImport importer, int token)
@@ -1001,6 +992,7 @@ namespace Microsoft.Samples.Debugging.CorMetadata
return attributes.ToArray ();
}
+ // [Xamarin] Expression evaluator.
static internal object GetCustomAttribute (IMetadataImport importer, int token, Type type)
{
uint sigSize = 0;
@@ -1053,6 +1045,7 @@ namespace Microsoft.Samples.Debugging.CorMetadata
return ob;
}
+ // [Xamarin] Expression evaluator.
static object ReadValue (BinaryReader br, Type type)
{
if (type.IsEnum) {
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi2/Metadata/MetadataFieldInfo.cs b/extras/MonoDevelop.Debugger.Win32/CorApi2/Metadata/MetadataFieldInfo.cs
index 3e645c163a..262979bba2 100644
--- a/extras/MonoDevelop.Debugger.Win32/CorApi2/Metadata/MetadataFieldInfo.cs
+++ b/extras/MonoDevelop.Debugger.Win32/CorApi2/Metadata/MetadataFieldInfo.cs
@@ -65,10 +65,11 @@ namespace Microsoft.Samples.Debugging.CorMetadata
{
m_value = ParseDefaultValue(declaringType,ppvSigBlob,ppvRawValue);
}
+ // [Xamarin] Expression evaluator.
MetadataHelperFunctions.GetCustomAttribute (importer, m_fieldToken, typeof (System.Diagnostics.DebuggerBrowsableAttribute));
}
- internal static object ParseDefaultValue(MetadataType declaringType, IntPtr ppvSigBlob, IntPtr ppvRawValue)
+ private static object ParseDefaultValue(MetadataType declaringType, IntPtr ppvSigBlob, IntPtr ppvRawValue)
{
IntPtr ppvSigTemp = ppvSigBlob;
CorCallingConvention callingConv = MetadataHelperFunctions.CorSigUncompressCallingConv(ref ppvSigTemp);
@@ -146,11 +147,13 @@ namespace Microsoft.Samples.Debugging.CorMetadata
throw new NotImplementedException();
}
+ // [Xamarin] Expression evaluator.
public override bool IsDefined (Type attributeType, bool inherit)
{
return GetCustomAttributes (attributeType, inherit).Length > 0;
}
+ // [Xamarin] Expression evaluator.
public override object[] GetCustomAttributes (Type attributeType, bool inherit)
{
ArrayList list = new ArrayList ();
@@ -161,6 +164,7 @@ namespace Microsoft.Samples.Debugging.CorMetadata
return list.ToArray ();
}
+ // [Xamarin] Expression evaluator.
public override object[] GetCustomAttributes (bool inherit)
{
if (m_customAttributes == null)
@@ -168,6 +172,7 @@ namespace Microsoft.Samples.Debugging.CorMetadata
return m_customAttributes;
}
+
public override Type FieldType
{
get
@@ -239,6 +244,7 @@ namespace Microsoft.Samples.Debugging.CorMetadata
private string m_name;
private FieldAttributes m_fieldAttributes;
private Object m_value;
+ // [Xamarin] Expression evaluator.
private object[] m_customAttributes;
}
}
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi2/Metadata/MetadataParameterInfo.cs b/extras/MonoDevelop.Debugger.Win32/CorApi2/Metadata/MetadataParameterInfo.cs
index 0195bca483..0793fab1fc 100644
--- a/extras/MonoDevelop.Debugger.Win32/CorApi2/Metadata/MetadataParameterInfo.cs
+++ b/extras/MonoDevelop.Debugger.Win32/CorApi2/Metadata/MetadataParameterInfo.cs
@@ -19,8 +19,9 @@ namespace Microsoft.Samples.Debugging.CorMetadata
{
public sealed class MetadataParameterInfo : ParameterInfo
{
+ // [Xamarin] Expression evaluator.
internal MetadataParameterInfo(IMetadataImport importer,int paramToken,
- MemberInfo memberImpl,Type typeImpl, Type argType)
+ MemberInfo memberImpl,Type typeImpl, Type argType)
{
int parentToken;
uint pulSequence,pdwAttr,pdwCPlusTypeFlag,pcchValue,size;
@@ -50,16 +51,17 @@ namespace Microsoft.Samples.Debugging.CorMetadata
out pcchValue
);
NameImpl = szName.ToString();
+ // [Xamarin] Expression evaluator.
ClassImpl = argType;
PositionImpl = (int)pulSequence;
AttrsImpl = (ParameterAttributes)pdwAttr;
- //<strip>DefaultValueImpl=??; @TODO </strip>
+
MemberImpl=memberImpl;
}
private MetadataParameterInfo(SerializationInfo info, StreamingContext context)
{
- // <strip>@TODO (check why cannot call) : base (context,info)</strip>
+
}
public override String Name
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi2/Metadata/MetadataType.cs b/extras/MonoDevelop.Debugger.Win32/CorApi2/Metadata/MetadataType.cs
index 6c99424ecd..7ab4f88877 100644
--- a/extras/MonoDevelop.Debugger.Win32/CorApi2/Metadata/MetadataType.cs
+++ b/extras/MonoDevelop.Debugger.Win32/CorApi2/Metadata/MetadataType.cs
@@ -20,6 +20,7 @@ namespace Microsoft.Samples.Debugging.CorMetadata
{
public sealed class MetadataType : Type
{
+ // [Xamarin] Expression evaluator.
internal MetadataType(IMetadataImport importer,int classToken)
{
Debug.Assert(importer!=null);
@@ -58,7 +59,7 @@ namespace Microsoft.Samples.Debugging.CorMetadata
// Check whether the type is an enum
string baseTypeName = GetTypeName(importer, ptkExtends);
-
+
IntPtr ppvSig;
if (baseTypeName == "System.Enum") {
m_isEnum = true;
@@ -76,6 +77,7 @@ namespace Microsoft.Samples.Debugging.CorMetadata
}
}
+ // [Xamarin] Expression evaluator.
public override Type DeclaringType
{
get
@@ -189,6 +191,7 @@ namespace Microsoft.Samples.Debugging.CorMetadata
}
}
+ // [Xamarin] Expression evaluator.
public override string Name
{
get
@@ -232,6 +235,7 @@ namespace Microsoft.Samples.Debugging.CorMetadata
}
}
+ // [Xamarin] Expression evaluator.
public override String Namespace
{
get
@@ -244,9 +248,10 @@ namespace Microsoft.Samples.Debugging.CorMetadata
}
}
+ // [Xamarin] Expression evaluator.
public override String FullName
{
- get
+ get
{
StringBuilder sb = new StringBuilder (m_name);
if (m_typeArgs != null) {
@@ -303,19 +308,21 @@ namespace Microsoft.Samples.Debugging.CorMetadata
}
}
+ // [Xamarin] Expression evaluator.
public override Type[] GetGenericArguments ()
{
return m_typeArgs.ToArray ();
}
-
// methods
+ // [Xamarin] Expression evaluator.
public override bool IsDefined (Type attributeType, bool inherit)
{
return GetCustomAttributes (attributeType, inherit).Length > 0;
}
+ // [Xamarin] Expression evaluator.
public override object[] GetCustomAttributes(Type attributeType, bool inherit)
{
ArrayList list = new ArrayList ();
@@ -326,6 +333,7 @@ namespace Microsoft.Samples.Debugging.CorMetadata
return list.ToArray ();
}
+ // [Xamarin] Expression evaluator.
public override object[] GetCustomAttributes(bool inherit)
{
if (m_customAttributes == null)
@@ -353,16 +361,19 @@ namespace Microsoft.Samples.Debugging.CorMetadata
throw new NotImplementedException();
}
+ // [Xamarin] Expression evaluator.
protected override bool IsPointerImpl()
{
return m_isPtr;
}
+ // [Xamarin] Expression evaluator.
protected override bool IsByRefImpl()
{
return m_isByRef;
}
+ // [Xamarin] Expression evaluator.
protected override bool IsArrayImpl()
{
return m_arraySizes != null;
@@ -373,6 +384,7 @@ namespace Microsoft.Samples.Debugging.CorMetadata
throw new NotImplementedException();
}
+ // [Xamarin] Expression evaluator.
public override int GetArrayRank ()
{
if (m_arraySizes != null)
@@ -396,6 +408,7 @@ namespace Microsoft.Samples.Debugging.CorMetadata
throw new NotImplementedException();
}
+ // [Xamarin] Expression evaluator.
public override PropertyInfo[] GetProperties(BindingFlags bindingAttr)
{
ArrayList al = new ArrayList ();
@@ -459,6 +472,7 @@ namespace Microsoft.Samples.Debugging.CorMetadata
throw new NotImplementedException();
}
+ // [Xamarin] Expression evaluator.
bool FlagsMatch (bool ispublic, bool isstatic, BindingFlags flags)
{
if (ispublic && (flags & BindingFlags.Public) == 0)
@@ -472,6 +486,7 @@ namespace Microsoft.Samples.Debugging.CorMetadata
return true;
}
+ // [Xamarin] Expression evaluator.
public override FieldInfo[] GetFields(BindingFlags bindingAttr)
{
ArrayList al = new ArrayList();
@@ -483,7 +498,8 @@ namespace Microsoft.Samples.Debugging.CorMetadata
while(true)
{
uint size;
- ((IMetadataImport2) m_importer).EnumFields(ref hEnum,(int)m_typeToken,out fieldToken,1,out size);
+ // TODO: Check this. Was just m_importer.EnumFields.
+ ((IMetadataImport2) m_importer).EnumFields(ref hEnum,(int)m_typeToken,out fieldToken,1,out size);
if(size==0)
break;
MetadataFieldInfo field = new MetadataFieldInfo (m_importer, fieldToken, this);
@@ -498,6 +514,7 @@ namespace Microsoft.Samples.Debugging.CorMetadata
return (FieldInfo[]) al.ToArray(typeof(FieldInfo));
}
+ // [Xamarin] Expression evaluator.
public override MethodInfo[] GetMethods(BindingFlags bindingAttr)
{
ArrayList al = new ArrayList();
@@ -560,12 +577,7 @@ namespace Microsoft.Samples.Debugging.CorMetadata
return MetadataHelperFunctions.GetGenericArgumentNames(m_importer,m_typeToken);
}
- // TODO: The need to give this method a name that doesn't collide with
- // the non-virtual function Type.IsEnum is an example of why
- // inheriting from System.Type was a bad idea. The base implementation of
- // this method (and others like it) has no idea what's going on in this version
- // of "Type", but making this function "new IsEnum" would make it easier
- // for people to call the wrong one with seemingly correct code.
+
public bool ReallyIsEnum
{
get
@@ -590,7 +602,7 @@ namespace Microsoft.Samples.Debugging.CorMetadata
}
}
- // TODO: Once generics are CLS-compliant, fix this
+
[CLSCompliant(false)]
public IList<KeyValuePair<string,ulong>> EnumValues
{
@@ -620,6 +632,7 @@ namespace Microsoft.Samples.Debugging.CorMetadata
}
}
+ // [Xamarin] Expression evaluator.
// returns "" for normal classes, returns prefix for nested classes
private string GetNestedClassPrefix(IMetadataImport importer, int classToken, TypeAttributes attribs)
{
@@ -635,12 +648,14 @@ namespace Microsoft.Samples.Debugging.CorMetadata
return String.Empty;
}
+ // [Xamarin] Expression evaluator.
internal static Type MakeDelegate (Type retType, List<Type> argTypes)
{
throw new NotImplementedException ();
}
+ // [Xamarin] Expression evaluator.
public static Type MakeArray (Type t, List<int> sizes, List<int> loBounds)
{
MetadataType mt = t as MetadataType;
@@ -659,6 +674,7 @@ namespace Microsoft.Samples.Debugging.CorMetadata
return t.MakeArrayType (sizes.Count);
}
+ // [Xamarin] Expression evaluator.
public static Type MakeByRef (Type t)
{
MetadataType mt = t as MetadataType;
@@ -669,6 +685,7 @@ namespace Microsoft.Samples.Debugging.CorMetadata
return t.MakeByRefType ();
}
+ // [Xamarin] Expression evaluator.
public static Type MakePointer (Type t)
{
MetadataType mt = t as MetadataType;
@@ -679,6 +696,7 @@ namespace Microsoft.Samples.Debugging.CorMetadata
return t.MakeByRefType ();
}
+ // [Xamarin] Expression evaluator.
public static Type MakeGeneric (Type t, List<Type> typeArgs)
{
MetadataType mt = (MetadataType)t;
@@ -693,6 +711,7 @@ namespace Microsoft.Samples.Debugging.CorMetadata
private bool m_isEnum;
private bool m_isFlagsEnum;
private CorElementType m_enumUnderlyingType;
+ // [Xamarin] Expression evaluator.
private List<KeyValuePair<string, ulong>> m_enumValues;
private object[] m_customAttributes;
private Type m_declaringType;
@@ -792,7 +811,7 @@ namespace Microsoft.Samples.Debugging.CorMetadata
}
private CorMetadataImport m_corMeta;
- private IntPtr m_enum; // <strip>@TODO use Safehandle</strip>
+ private IntPtr m_enum;
private Type m_type;
}
}
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/ISymConstant.cs b/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/ISymConstant.cs
index c3263f8619..8fc33a5b0b 100644
--- a/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/ISymConstant.cs
+++ b/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/ISymConstant.cs
@@ -14,17 +14,18 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
using System;
using System.Text;
using System.Runtime.InteropServices;
-
- // Interface does not need to be marked with the serializable attribute
+
+ // Interface does not need to be marked with the serializable attribute
+ // Interface is returned by ISymbolScope2.GetConstants() so must be public
[
ComVisible(false)
]
- internal interface ISymbolConstant
+ public interface ISymbolConstant
{
String GetName();
-
+
Object GetValue();
-
+
byte[] GetSignature();
}
}
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/ISymEncMethod.cs b/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/ISymEncMethod.cs
index 01291c902e..9791127775 100644
--- a/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/ISymEncMethod.cs
+++ b/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/ISymEncMethod.cs
@@ -12,19 +12,22 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
using System.Runtime.InteropServices;
using System;
-
+
+ // This interface isn't directly returned or used by any of the classes,
+ // but the implementation of the ISymbolMethod also implements ISymEncMethod
+ // so you could explicitly cast it to that.
[
ComVisible(false)
]
- internal interface ISymbolEnCMethod: ISymbolMethod
+ public interface ISymbolEnCMethod: ISymbolMethod
{
String GetFileNameFromOffset(int dwOffset);
int GetLineFromOffset(int dwOffset,
- out int pcolumn,
- out int pendLine,
- out int pendColumn,
- out int pdwStartOffset);
+ out int column,
+ out int endLine,
+ out int endColumn,
+ out int startOffset);
}
}
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/ISymReader2.cs b/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/ISymReader2.cs
index b538acf0c5..99958606a0 100644
--- a/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/ISymReader2.cs
+++ b/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/ISymReader2.cs
@@ -76,10 +76,12 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
int GetMethodVersion(ISymbolMethod method);
}
+ // This interface is implemented by the internal SymReader
+ // so it could be converted to this and have it's methods called.
[
ComVisible(false)
]
- internal interface ISymbolReaderSymbolSearchInfo
+ public interface ISymbolReaderSymbolSearchInfo
{
int GetSymbolSearchInfoCount();
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/ISymScope2.cs b/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/ISymScope2.cs
index 322ffa756b..cbbe1cf0e6 100644
--- a/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/ISymScope2.cs
+++ b/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/ISymScope2.cs
@@ -16,10 +16,12 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
using System.Runtime.InteropServices;
+ // This interface isn't directly returned, but SymbolScope which implements ISymbolScope
+ // also implements ISymbolScope2 and thus you may want to explicitly cast it to use these methods.
[
ComVisible(false)
]
- internal interface ISymbolScope2 : ISymbolScope
+ public interface ISymbolScope2 : ISymbolScope
{
int LocalCount{ get; }
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/ISymSearchInfo.cs b/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/ISymSearchInfo.cs
index 604b0df2bb..076a2874f7 100644
--- a/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/ISymSearchInfo.cs
+++ b/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/ISymSearchInfo.cs
@@ -15,10 +15,12 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
using System.Text;
using System.Runtime.InteropServices;
+ // This interface is returned by ISymbolReaderSymbolSearchInfo
+ // and thus must be public
[
ComVisible(false)
]
- internal interface ISymbolSearchInfo
+ public interface ISymbolSearchInfo
{
int SearchPathLength{ get; }
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/ISymWriter2.cs b/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/ISymWriter2.cs
index eacd86d44a..f09d0e663f 100644
--- a/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/ISymWriter2.cs
+++ b/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/ISymWriter2.cs
@@ -27,35 +27,54 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
int SizeOfData;
int AddressOfRawData;
int PointerToRawData;
+
+ public override string ToString()
+ {
+ return String.Format( @"Characteristics: {0}
+TimeDateStamp: {1}
+MajorVersion: {2}
+MinorVersion: {3}
+Type: {4}
+SizeOfData: {5}
+AddressOfRawData: {6}
+PointerToRawData: {7}
+",
+ Characteristics,
+ TimeDateStamp,
+ MajorVersion,
+ MinorVersion,
+ Type,
+ SizeOfData,
+ AddressOfRawData,
+ PointerToRawData);
+ }
};
[
ComVisible(false)
]
- internal interface ISymbolWriter2 : ISymbolWriter
+ public interface ISymbolWriter2 : ISymbolWriter
{
-
void Initialize(Object emitter,
- String filename,
+ String fileName,
Boolean fullBuild);
-
+
void Initialize(Object emitter,
- String filename,
+ String fileName,
IStream stream,
Boolean fullBuild);
-
-
- byte[] GetDebugInfo(out ImageDebugDirectory iDD);
-
- void RemapToken(SymbolToken oldToken,
- SymbolToken newToken);
-
+
void Initialize(Object emitter,
- String tempfilename,
+ String temporaryFileName,
IStream stream,
Boolean fullBuild,
- String finalfilename);
+ String finalFileName);
+ byte[] GetDebugInfo(out ImageDebugDirectory imageDebugDirectory);
+
+ void RemapToken(SymbolToken oldToken,
+ SymbolToken newToken);
+
void DefineConstant(String name,
Object value,
byte[] signature);
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/SymAccess.cs b/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/SymAccess.cs
new file mode 100644
index 0000000000..85e339a469
--- /dev/null
+++ b/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/SymAccess.cs
@@ -0,0 +1,150 @@
+//---------------------------------------------------------------------
+// This file is part of the CLR Managed Debugger (mdbg) Sample.
+//
+// Copyright (C) Microsoft Corporation. All rights reserved.
+//---------------------------------------------------------------------
+
+/*
+ * This file contains a class that distributes Symbol Reader and Writer interfaces.
+ */
+
+namespace Microsoft.Samples.Debugging.CorSymbolStore
+{
+ using System.Diagnostics;
+ using System.Diagnostics.SymbolStore;
+ using System;
+ using System.Runtime.InteropServices;
+
+ /*
+ * This class includes methods for getting top-level access to symbol objects for reading and writing to PDB files
+ */
+ public static class SymbolAccess
+ {
+ // Guids for imported metadata interfaces.
+ private static Guid dispenserClassID = new Guid(0xe5cb7a31, 0x7512, 0x11d2, 0x89, 0xce, 0x00, 0x80, 0xc7, 0x92, 0xe5, 0xd8); // CLSID_CorMetaDataDispenser
+ private static Guid dispenserIID = new Guid(0x809c652e, 0x7396, 0x11d2, 0x97, 0x71, 0x00, 0xa0, 0xc9, 0xb4, 0xd5, 0x0c); // IID_IMetaDataDispenser
+ private static Guid importerIID = new Guid(0x7dac8207, 0xd3ae, 0x4c75, 0x9b, 0x67, 0x92, 0x80, 0x1a, 0x49, 0x7d, 0x44); // IID_IMetaDataImport
+ private static Guid emitterIID = new Guid(0xba3fee4c, 0xecb9, 0x4e41, 0x83, 0xb7, 0x18, 0x3f, 0xa4, 0x1c, 0xd8, 0x59); // IID_IMetaDataEmit
+
+ const int OPEN_READ = 0;
+ const int OPEN_WRITE = 1;
+
+ internal static class NativeMethods
+ {
+ [DllImport("ole32.dll")]
+ internal static extern int CoCreateInstance([In] ref Guid rclsid,
+ [In, MarshalAs(UnmanagedType.IUnknown)] Object pUnkOuter,
+ [In] uint dwClsContext,
+ [In] ref Guid riid,
+ [Out, MarshalAs(UnmanagedType.Interface)] out Object ppv);
+ }
+
+ // This function will either use a given IMetadataEmitter for the ISymbolWriter2
+ // or it will make a new one based on the path that you provide.
+ // In either case, you need to make sure that the metadata in the image file matches
+ // the metadata in the symbols.
+ public static ISymbolWriter2 GetWriterForFile(string pathModule, ref object emitter)
+ {
+ // If no emitter is provided, make one and return it.
+ if (emitter == null)
+ {
+ // First get a dispenser
+ object objDispenser;
+ NativeMethods.CoCreateInstance(ref dispenserClassID, null, 1, ref dispenserIID, out objDispenser);
+ Debug.Assert(objDispenser != null, "Dispenser is null.");
+
+ // Now get an emitter
+ IMetaDataDispenserPrivate dispenser = (IMetaDataDispenserPrivate)objDispenser;
+ dispenser.OpenScope(pathModule, OPEN_WRITE, ref emitterIID, out emitter);
+ }
+ Debug.Assert(emitter != null, "Emitter is null.");
+
+ // An emitter was provided, just use that one.
+ ISymbolWriter2 writer = new SymbolWriter();
+ writer.Initialize(emitter, pathModule, false);
+ return writer;
+ }
+
+ /*
+ * If you want a SymbolReader for a given exe, just use this function.
+ */
+ public static ISymbolReader GetReaderForFile(string pathModule)
+ {
+ return GetReaderForFile(pathModule, null);
+ }
+ /*
+ * If you know the name of the exe and a searchPath where the file may exist, use this one.
+ */
+ public static ISymbolReader GetReaderForFile(string pathModule, string searchPath)
+ {
+ return GetReaderForFile(new SymbolBinder(), pathModule, searchPath);
+ }
+ /*
+ * This private function provides implementation for the two public versions.
+ * searchPath is a simicolon-delimited list of paths on which to search for pathModule.
+ * If searchPath is null, pathModule must be a full path to the assembly.
+ */
+ private static ISymbolReader GetReaderForFile(SymbolBinder binder, string pathModule, string searchPath)
+ {
+ // First create the Metadata dispenser.
+ object objDispenser;
+ NativeMethods.CoCreateInstance(ref dispenserClassID, null, 1, ref dispenserIID, out objDispenser);
+
+ // Now open an Importer on the given filename. We'll end up passing this importer straight
+ // through to the Binder.
+ object objImporter;
+ IMetaDataDispenserPrivate dispenser = (IMetaDataDispenserPrivate)objDispenser;
+ dispenser.OpenScope(pathModule, OPEN_READ, ref importerIID, out objImporter);
+
+ IntPtr importerPtr = IntPtr.Zero;
+ ISymbolReader reader;
+ try
+ {
+ // This will manually AddRef the underlying object, so we need to be very careful to Release it.
+ importerPtr = Marshal.GetComInterfaceForObject(objImporter, typeof(IMetadataImportPrivateComVisible));
+
+ reader = binder.GetReader(importerPtr, pathModule, searchPath);
+ }
+ finally
+ {
+ if (importerPtr != IntPtr.Zero)
+ {
+ Marshal.Release(importerPtr);
+ }
+ }
+ return reader;
+ }
+ }
+
+ // We can use reflection-only load context to use reflection to query for metadata information rather
+ // than painfully import the com-classic metadata interfaces.
+ [Guid("809c652e-7396-11d2-9771-00a0c9b4d50c"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
+ [ComVisible(true)]
+ internal interface IMetaDataDispenserPrivate
+ {
+ // We need to be able to call OpenScope, which is the 2nd vtable slot.
+ // Thus we need this one placeholder here to occupy the first slot..
+ void DefineScope_Placeholder();
+
+ //STDMETHOD(OpenScope)( // Return code.
+ // LPCWSTR szScope, // [in] The scope to open.
+ // DWORD dwOpenFlags, // [in] Open mode flags.
+ // REFIID riid, // [in] The interface desired.
+ // IUnknown **ppIUnk) PURE; // [out] Return interface on success.
+ void OpenScope([In, MarshalAs(UnmanagedType.LPWStr)] String szScope, [In] Int32 dwOpenFlags, [In] ref Guid riid, [Out, MarshalAs(UnmanagedType.IUnknown)] out Object punk);
+
+ // There are more methods in this interface, but we don't need them.
+ }
+ // Since we're just blindly passing this interface through managed code to the Symbinder, we don't care about actually
+ // importing the specific methods.
+ // This needs to be public so that we can call Marshal.GetComInterfaceForObject() on it to get the
+ // underlying metadata pointer.
+ // That doesn't mean that you should actually use it though because the interface is basically empty.
+ [Guid("7DAC8207-D3AE-4c75-9B67-92801A497D44"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
+ [ComVisible(true)]
+ public interface IMetadataImportPrivateComVisible
+ {
+ // Just need a single placeholder method so that it doesn't complain about an empty interface.
+ void Placeholder();
+ }
+}
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/SymConstant.cs b/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/SymConstant.cs
index 8de5797f26..efc35235d1 100644
--- a/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/SymConstant.cs
+++ b/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/SymConstant.cs
@@ -33,10 +33,10 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
void GetSignature(int cSig,
out int pcSig,
- byte[] sig);
+ [In, Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=0)] byte[] sig);
}
- class SymConstant : ISymbolConstant
+ internal class SymConstant : ISymbolConstant
{
ISymUnmanagedConstant m_target;
@@ -46,7 +46,6 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
}
public String GetName()
-
{
int count;
m_target.GetName(0, out count, null);
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/SymDocument.cs b/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/SymDocument.cs
index b6599a8e2e..b180ebcfac 100644
--- a/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/SymDocument.cs
+++ b/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/SymDocument.cs
@@ -37,7 +37,7 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
void GetCheckSum(int cData,
out int pcData,
- byte[] date);
+ [In, Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=0)] byte[] data);
void FindClosestLine(int line,
out int pRetVal);
@@ -52,17 +52,21 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
int endColumn,
int cSourceBytes,
out int pcSourceBytes,
- byte[] source);
+ [In, Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=4)] byte[] source);
};
/// <include file='doc\SymDocument.uex' path='docs/doc[@for="SymDocument"]/*' />
- public class SymbolDocument : ISymbolDocument
+ internal class SymbolDocument : ISymbolDocument
{
ISymUnmanagedDocument m_unmanagedDocument;
internal SymbolDocument(ISymUnmanagedDocument document)
{
+ if (document == null)
+ {
+ throw new ArgumentNullException("document");
+ }
m_unmanagedDocument = document;
}
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/SymDocumentWriter.cs b/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/SymDocumentWriter.cs
index d6c1f765c6..e6165cd277 100644
--- a/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/SymDocumentWriter.cs
+++ b/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/SymDocumentWriter.cs
@@ -27,11 +27,11 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
internal interface ISymUnmanagedDocumentWriter
{
void SetSource(int sourceSize,
- byte[] source);
+ [MarshalAs(UnmanagedType.LPArray, SizeParamIndex=0)] byte[] source);
void SetCheckSum(Guid algorithmId,
int checkSumSize,
- byte[] checkSum);
+ [MarshalAs(UnmanagedType.LPArray, SizeParamIndex=1)] byte[] checkSum);
};
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/SymNamespace.cs b/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/SymNamespace.cs
index 07c24a1e93..9b9b0f2255 100644
--- a/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/SymNamespace.cs
+++ b/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/SymNamespace.cs
@@ -31,11 +31,11 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
void GetNamespaces(int cNameSpaces,
out int pcNameSpaces,
- ISymUnmanagedNamespace[] namespaces);
+ [In, Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=0)] ISymUnmanagedNamespace[] namespaces);
void GetVariables(int cVars,
out int pcVars,
- ISymUnmanagedVariable[] pVars);
+ [In, Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=0)] ISymUnmanagedVariable[] pVars);
}
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/SymReader.cs b/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/SymReader.cs
index 108eb88657..5f1d008cbf 100644
--- a/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/SymReader.cs
+++ b/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/SymReader.cs
@@ -9,10 +9,11 @@
namespace Microsoft.Samples.Debugging.CorSymbolStore
{
using System.Diagnostics.SymbolStore;
+ using Microsoft.Samples.Debugging.CorDebug;
// Interface does not need to be marked with the serializable attribute
using System;
- using System.Text;
+ using System.Text;
using System.Runtime.InteropServices;
using System.Runtime.InteropServices.ComTypes;
@@ -32,26 +33,33 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
void GetDocuments(int cDocs,
out int pcDocs,
- [In, Out, MarshalAs(UnmanagedType.LPArray)] ISymUnmanagedDocument[] pDocs);
+ [In, Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=0)] ISymUnmanagedDocument[] pDocs);
+
+ // These methods will often return error HRs in common cases.
+ // Using PreserveSig and manually handling error cases provides a big performance win.
+ // Far fewer exceptions will be thrown and caught.
+ // Exceptions should be reserved for truely "exceptional" cases.
+ [PreserveSig]
+ int GetUserEntryPoint(out SymbolToken EntryPoint);
- void GetUserEntryPoint(out SymbolToken EntryPoint);
-
- void GetMethod(SymbolToken methodToken,
+ [PreserveSig]
+ int GetMethod(SymbolToken methodToken,
[MarshalAs(UnmanagedType.Interface)] out ISymUnmanagedMethod retVal);
-
- void GetMethodByVersion(SymbolToken methodToken,
+
+ [PreserveSig]
+ int GetMethodByVersion(SymbolToken methodToken,
int version,
[MarshalAs(UnmanagedType.Interface)] out ISymUnmanagedMethod retVal);
void GetVariables(SymbolToken parent,
- int pVars,
+ int cVars,
out int pcVars,
- [In, Out, MarshalAs(UnmanagedType.LPArray)] ISymUnmanagedVariable[] vars);
+ [In, Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=1)] ISymUnmanagedVariable[] vars);
void GetGlobalVariables(int cVars,
out int pcVars,
- [In, Out, MarshalAs(UnmanagedType.LPArray)] ISymUnmanagedVariable[] vars);
+ [In, Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=0)] ISymUnmanagedVariable[] vars);
void GetMethodFromDocumentPosition(ISymUnmanagedDocument document,
@@ -63,11 +71,11 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
[MarshalAs(UnmanagedType.LPWStr)] String name,
int sizeBuffer,
out int lengthBuffer,
- byte[] buffer);
+ [In, Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=2)] byte[] buffer);
void GetNamespaces(int cNameSpaces,
out int pcNameSpaces,
- [In, Out, MarshalAs(UnmanagedType.LPArray)] ISymUnmanagedNamespace[] namespaces);
+ [In, Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=0)] ISymUnmanagedNamespace[] namespaces);
void Initialize(IntPtr importer,
[MarshalAs(UnmanagedType.LPWStr)] String filename,
@@ -89,7 +97,7 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
int column,
int cMethod,
out int pcMethod,
- [In, Out, MarshalAs(UnmanagedType.LPArray)] ISymUnmanagedMethod[] pRetVal);
+ [In, Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=3)] ISymUnmanagedMethod[] pRetVal);
void GetDocumentVersion(ISymUnmanagedDocument pDoc,
out int version,
@@ -109,7 +117,7 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
{
void UpdateSymbolStore2(IStream stream,
- [In, Out, MarshalAs(UnmanagedType.LPArray)] SymbolLineDelta[] iSymbolLineDeltas,
+ [MarshalAs(UnmanagedType.LPArray)] SymbolLineDelta[] iSymbolLineDeltas,
int cDeltaLines);
void GetLocalVariableCount(SymbolToken mdMethodToken,
@@ -117,7 +125,7 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
void GetLocalVariables(SymbolToken mdMethodToken,
int cLocals,
- [In, Out, MarshalAs(UnmanagedType.LPArray)] ISymUnmanagedVariable[] rgLocals,
+ [In, Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=1)] ISymUnmanagedVariable[] rgLocals,
out int pceltFetched);
}
@@ -134,7 +142,7 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
void GetSymbolSearchInfo(int cSearchInfo,
out int pcSearchInfo,
- [In, Out, MarshalAs(UnmanagedType.LPArray)] ISymUnmanagedSymbolSearchInfo[] searchInfo);
+ [In, Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=0)] ISymUnmanagedSymbolSearchInfo[] searchInfo);
}
@@ -161,6 +169,10 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
{
ISymUnmanagedDocument document = null;
m_reader.GetDocument(url, language, languageVendor, documentType, out document);
+ if (document == null)
+ {
+ return null;
+ }
return new SymbolDocument(document);
}
@@ -184,23 +196,53 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
{
get
{
- SymbolToken entryPoint;
- m_reader.GetUserEntryPoint(out entryPoint);
- return entryPoint;
- }
+ SymbolToken entryPoint;
+ int hr = m_reader.GetUserEntryPoint(out entryPoint);
+ if (hr == (int)HResult.E_FAIL)
+ {
+ // Not all assemblies have entry points
+ // dlls for example...
+ return new SymbolToken(0);
+ }
+ else
+ {
+ Marshal.ThrowExceptionForHR(hr);
+ }
+ return entryPoint;
+ }
}
public ISymbolMethod GetMethod(SymbolToken method)
{
ISymUnmanagedMethod unmanagedMethod = null;
- m_reader.GetMethod(method, out unmanagedMethod);
+ int hr = m_reader.GetMethod(method, out unmanagedMethod);
+ if (hr == (int)HResult.E_FAIL)
+ {
+ // This means that the method has no symbol info because it's probably empty
+ // This can happen for virtual methods with no IL
+ return null;
+ }
+ else
+ {
+ Marshal.ThrowExceptionForHR(hr);
+ }
return new SymMethod(unmanagedMethod);
}
public ISymbolMethod GetMethod(SymbolToken method, int version)
{
ISymUnmanagedMethod unmanagedMethod = null;
- m_reader.GetMethodByVersion(method, version, out unmanagedMethod);
+ int hr = m_reader.GetMethodByVersion(method, version, out unmanagedMethod);
+ if (hr == (int)HResult.E_FAIL)
+ {
+ // This means that the method has no symbol info because it's probably empty
+ // This can happen for virtual methods with no IL
+ return null;
+ }
+ else
+ {
+ Marshal.ThrowExceptionForHR(hr);
+ }
return new SymMethod(unmanagedMethod);
}
@@ -300,9 +342,9 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
StringBuilder fileName;
int count = 0;
- // @todo - there's a bug in Diasymreader where we can't query the size of the pdb filename.
- // So we'll just estimate large as a workaround. See VSWhidbey bug 321941.
- //m_reader.GetSymbolStoreFileName(0, out count, null);
+ // there's a known issue in Diasymreader where we can't query the size of the pdb filename.
+ // So we'll just estimate large as a workaround.
+
count = 300;
fileName = new StringBuilder(count);
m_reader.GetSymbolStoreFileName(count, out count, fileName);
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/SymScope.cs b/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/SymScope.cs
index 8d0372487b..c8cb9e5fcf 100644
--- a/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/SymScope.cs
+++ b/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/SymScope.cs
@@ -30,7 +30,7 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
void GetChildren(int cChildren,
out int pcChildren,
- [In, Out, MarshalAs(UnmanagedType.LPArray)] ISymUnmanagedScope[] children);
+ [In, Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=0)] ISymUnmanagedScope[] children);
void GetStartOffset(out int pRetVal);
@@ -40,11 +40,11 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
void GetLocals(int cLocals,
out int pcLocals,
- [In, Out, MarshalAs(UnmanagedType.LPArray)] ISymUnmanagedVariable[] locals);
+ [In, Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=0)] ISymUnmanagedVariable[] locals);
void GetNamespaces(int cNameSpaces,
out int pcNameSpaces,
- [In, Out, MarshalAs(UnmanagedType.LPArray)] ISymUnmanagedNamespace[] namespaces);
+ [In, Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=0)] ISymUnmanagedNamespace[] namespaces);
};
[
@@ -53,17 +53,41 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
InterfaceType(ComInterfaceType.InterfaceIsIUnknown),
ComVisible(false)
]
- internal interface ISymUnmanagedScope2
+ internal interface ISymUnmanagedScope2 : ISymUnmanagedScope
{
+ // ISymUnmanagedScope methods (need to define the base interface methods also, per COM interop requirements)
+ new void GetMethod([MarshalAs(UnmanagedType.Interface)] out ISymUnmanagedMethod pRetVal);
+
+ new void GetParent([MarshalAs(UnmanagedType.Interface)] out ISymUnmanagedScope pRetVal);
+
+ new void GetChildren(int cChildren,
+ out int pcChildren,
+ [In, Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 0)] ISymUnmanagedScope[] children);
+
+ new void GetStartOffset(out int pRetVal);
+
+ new void GetEndOffset(out int pRetVal);
+
+ new void GetLocalCount(out int pRetVal);
+
+ new void GetLocals(int cLocals,
+ out int pcLocals,
+ [In, Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 0)] ISymUnmanagedVariable[] locals);
+
+ new void GetNamespaces(int cNameSpaces,
+ out int pcNameSpaces,
+ [In, Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 0)] ISymUnmanagedNamespace[] namespaces);
+
+ // ISymUnmanagedScope2 methods
void GetConstantCount(out int pRetVal);
void GetConstants(int cConstants,
out int pcConstants,
- [In, Out, MarshalAs(UnmanagedType.LPArray)] ISymUnmanagedConstant[] constants);
+ [In, Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=0)] ISymUnmanagedConstant[] constants);
}
- class SymScope : ISymbolScope, ISymbolScope2
+ internal class SymScope : ISymbolScope, ISymbolScope2
{
ISymUnmanagedScope m_target;
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/SymWriter.cs b/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/SymWriter.cs
index cc0f95e57c..c7ea23578b 100644
--- a/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/SymWriter.cs
+++ b/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/SymWriter.cs
@@ -11,7 +11,7 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
using System.Diagnostics.SymbolStore;
- using System;
+ using System;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Runtime.InteropServices.ComTypes;
@@ -48,7 +48,7 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
void DefineLocalVariable([MarshalAs(UnmanagedType.LPWStr)] String name,
int attributes,
int cSig,
- byte[] signature,
+ [MarshalAs(UnmanagedType.LPArray, SizeParamIndex=2)] byte[] signature,
int addressKind,
int addr1,
int addr2,
@@ -68,7 +68,7 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
[MarshalAs(UnmanagedType.LPWStr)] String name,
int attributes,
int cSig,
- byte[] signature,
+ [MarshalAs(UnmanagedType.LPArray, SizeParamIndex=3)] byte[] signature,
int addressKind,
int addr1,
int addr2,
@@ -77,7 +77,7 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
void DefineGlobalVariable([MarshalAs(UnmanagedType.LPWStr)] String name,
int attributes,
int cSig,
- byte[] signature,
+ [MarshalAs(UnmanagedType.LPArray, SizeParamIndex=2)] byte[] signature,
int addressKind,
int addr1,
int addr2,
@@ -88,7 +88,7 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
void SetSymAttribute(SymbolToken parent,
[MarshalAs(UnmanagedType.LPWStr)] String name,
int cData,
- byte[] data);
+ [MarshalAs(UnmanagedType.LPArray, SizeParamIndex=2)] byte[] data);
void OpenNamespace([MarshalAs(UnmanagedType.LPWStr)] String name);
@@ -111,15 +111,15 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
void GetDebugInfo(out ImageDebugDirectory iDD,
int cData,
out int pcData,
- byte[] data);
+ [In, Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=1)] byte[] data);
void DefineSequencePoints(ISymUnmanagedDocumentWriter document,
int spCount,
- int[] offsets,
- int[] lines,
- int[] columns,
- int[] endLines,
- int[] endColumns);
+ [MarshalAs(UnmanagedType.LPArray, SizeParamIndex=1)] int[] offsets,
+ [MarshalAs(UnmanagedType.LPArray, SizeParamIndex=1)] int[] lines,
+ [MarshalAs(UnmanagedType.LPArray, SizeParamIndex=1)] int[] columns,
+ [MarshalAs(UnmanagedType.LPArray, SizeParamIndex=1)] int[] endLines,
+ [MarshalAs(UnmanagedType.LPArray, SizeParamIndex=1)] int[] endColumns);
void RemapToken(SymbolToken oldToken,
SymbolToken newToken);
@@ -133,7 +133,7 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
void DefineConstant( [MarshalAs(UnmanagedType.LPWStr)] String name,
Object value,
int cSig,
- byte[] signature);
+ [MarshalAs(UnmanagedType.LPArray, SizeParamIndex=2)] byte[] signature);
void Abort();
@@ -148,40 +148,39 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
]
internal interface ISymUnmanagedWriter2 : ISymUnmanagedWriter
{
-
- // ISymUnmanagedWriter interfaces
+ // ISymUnmanagedWriter interfaces (need to define the base interface methods also, per COM interop requirements)
new void DefineDocument([MarshalAs(UnmanagedType.LPWStr)] String url,
ref Guid language,
ref Guid languageVendor,
ref Guid documentType,
[MarshalAs(UnmanagedType.Interface)] out ISymUnmanagedDocumentWriter RetVal);
-
+
new void SetUserEntryPoint(SymbolToken entryMethod);
-
+
new void OpenMethod(SymbolToken method);
-
+
new void CloseMethod();
-
+
new void OpenScope(int startOffset,
out int pRetVal);
-
+
new void CloseScope(int endOffset);
-
+
new void SetScopeRange(int scopeID,
int startOffset,
int endOffset);
-
+
new void DefineLocalVariable([MarshalAs(UnmanagedType.LPWStr)] String name,
int attributes,
int cSig,
- byte[] signature,
+ [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)] byte[] signature,
int addressKind,
int addr1,
int addr2,
int addr3,
int startOffset,
int endOffset);
-
+
new void DefineParameter([MarshalAs(UnmanagedType.LPWStr)] String name,
int attributes,
int sequence,
@@ -189,80 +188,80 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
int addr1,
int addr2,
int addr3);
-
+
new void DefineField(SymbolToken parent,
[MarshalAs(UnmanagedType.LPWStr)] String name,
int attributes,
int cSig,
- byte[] signature,
+ [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 3)] byte[] signature,
int addressKind,
int addr1,
int addr2,
int addr3);
-
+
new void DefineGlobalVariable([MarshalAs(UnmanagedType.LPWStr)] String name,
int attributes,
int cSig,
- byte[] signature,
+ [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)] byte[] signature,
int addressKind,
int addr1,
int addr2,
int addr3);
-
+
new void Close();
-
+
new void SetSymAttribute(SymbolToken parent,
[MarshalAs(UnmanagedType.LPWStr)] String name,
int cData,
- byte[] data);
-
+ [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)] byte[] data);
+
new void OpenNamespace([MarshalAs(UnmanagedType.LPWStr)] String name);
-
+
new void CloseNamespace();
-
+
new void UsingNamespace([MarshalAs(UnmanagedType.LPWStr)] String fullName);
-
+
new void SetMethodSourceRange(ISymUnmanagedDocumentWriter startDoc,
int startLine,
int startColumn,
ISymUnmanagedDocumentWriter endDoc,
int endLine,
int endColumn);
-
+
new void Initialize(IntPtr emitter,
[MarshalAs(UnmanagedType.LPWStr)] String filename,
IStream stream,
Boolean fullBuild);
-
+
new void GetDebugInfo(out ImageDebugDirectory iDD,
int cData,
out int pcData,
- byte[] data);
-
+ [In, Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] byte[] data);
+
new void DefineSequencePoints(ISymUnmanagedDocumentWriter document,
int spCount,
- int[] offsets,
- int[] lines,
- int[] columns,
- int[] endLines,
- int[] endColumns);
-
+ [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] int[] offsets,
+ [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] int[] lines,
+ [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] int[] columns,
+ [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] int[] endLines,
+ [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] int[] endColumns);
+
new void RemapToken(SymbolToken oldToken,
SymbolToken newToken);
-
+
new void Initialize2(IntPtr emitter,
[MarshalAs(UnmanagedType.LPWStr)] String tempfilename,
IStream stream,
Boolean fullBuild,
[MarshalAs(UnmanagedType.LPWStr)] String finalfilename);
-
- new void DefineConstant( [MarshalAs(UnmanagedType.LPWStr)] String name,
- Object value,
- int cSig,
- byte[] signature);
-
+
+ new void DefineConstant([MarshalAs(UnmanagedType.LPWStr)] String name,
+ Object value,
+ int cSig,
+ [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)] byte[] signature);
+
new void Abort();
-
+
// ISymUnmanagedWriter2 interfaces
void DefineLocalVariable2([MarshalAs(UnmanagedType.LPWStr)] String name,
int attributes,
@@ -286,15 +285,163 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
void DefineConstant2([MarshalAs(UnmanagedType.LPWStr)] String name,
Object value,
SymbolToken sigToken);
-
+ };
+
+ [
+ ComImport,
+ Guid("12F1E02C-1E05-4B0E-9468-EBC9D1BB040F"),
+ InterfaceType(ComInterfaceType.InterfaceIsIUnknown),
+ ComVisible(false)
+ ]
+ internal interface ISymUnmanagedWriter3 : ISymUnmanagedWriter2
+ {
+ // ISymUnmanagedWriter interfaces (need to define the base interface methods also, per COM interop requirements)
+ new void DefineDocument([MarshalAs(UnmanagedType.LPWStr)] String url,
+ ref Guid language,
+ ref Guid languageVendor,
+ ref Guid documentType,
+ [MarshalAs(UnmanagedType.Interface)] out ISymUnmanagedDocumentWriter RetVal);
+
+ new void SetUserEntryPoint(SymbolToken entryMethod);
+
+ new void OpenMethod(SymbolToken method);
+
+ new void CloseMethod();
+
+ new void OpenScope(int startOffset,
+ out int pRetVal);
+
+ new void CloseScope(int endOffset);
+
+ new void SetScopeRange(int scopeID,
+ int startOffset,
+ int endOffset);
+
+ new void DefineLocalVariable([MarshalAs(UnmanagedType.LPWStr)] String name,
+ int attributes,
+ int cSig,
+ [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)] byte[] signature,
+ int addressKind,
+ int addr1,
+ int addr2,
+ int addr3,
+ int startOffset,
+ int endOffset);
+
+ new void DefineParameter([MarshalAs(UnmanagedType.LPWStr)] String name,
+ int attributes,
+ int sequence,
+ int addressKind,
+ int addr1,
+ int addr2,
+ int addr3);
+
+ new void DefineField(SymbolToken parent,
+ [MarshalAs(UnmanagedType.LPWStr)] String name,
+ int attributes,
+ int cSig,
+ [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 3)] byte[] signature,
+ int addressKind,
+ int addr1,
+ int addr2,
+ int addr3);
+
+ new void DefineGlobalVariable([MarshalAs(UnmanagedType.LPWStr)] String name,
+ int attributes,
+ int cSig,
+ [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)] byte[] signature,
+ int addressKind,
+ int addr1,
+ int addr2,
+ int addr3);
+
+ new void Close();
+
+ new void SetSymAttribute(SymbolToken parent,
+ [MarshalAs(UnmanagedType.LPWStr)] String name,
+ int cData,
+ [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)] byte[] data);
+
+ new void OpenNamespace([MarshalAs(UnmanagedType.LPWStr)] String name);
+
+ new void CloseNamespace();
+
+ new void UsingNamespace([MarshalAs(UnmanagedType.LPWStr)] String fullName);
+
+ new void SetMethodSourceRange(ISymUnmanagedDocumentWriter startDoc,
+ int startLine,
+ int startColumn,
+ ISymUnmanagedDocumentWriter endDoc,
+ int endLine,
+ int endColumn);
+
+ new void Initialize(IntPtr emitter,
+ [MarshalAs(UnmanagedType.LPWStr)] String filename,
+ IStream stream,
+ Boolean fullBuild);
+
+ new void GetDebugInfo(out ImageDebugDirectory iDD,
+ int cData,
+ out int pcData,
+ [In, Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] byte[] data);
+
+ new void DefineSequencePoints(ISymUnmanagedDocumentWriter document,
+ int spCount,
+ [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] int[] offsets,
+ [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] int[] lines,
+ [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] int[] columns,
+ [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] int[] endLines,
+ [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] int[] endColumns);
+
+ new void RemapToken(SymbolToken oldToken,
+ SymbolToken newToken);
+
+ new void Initialize2(IntPtr emitter,
+ [MarshalAs(UnmanagedType.LPWStr)] String tempfilename,
+ IStream stream,
+ Boolean fullBuild,
+ [MarshalAs(UnmanagedType.LPWStr)] String finalfilename);
+
+ new void DefineConstant([MarshalAs(UnmanagedType.LPWStr)] String name,
+ Object value,
+ int cSig,
+ [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)] byte[] signature);
+
+ new void Abort();
+
+ // ISymUnmanagedWriter2 interfaces (need to define the base interface methods also, per COM interop requirements)
+ new void DefineLocalVariable2([MarshalAs(UnmanagedType.LPWStr)] String name,
+ int attributes,
+ SymbolToken sigToken,
+ int addressKind,
+ int addr1,
+ int addr2,
+ int addr3,
+ int startOffset,
+ int endOffset);
+
+ new void DefineGlobalVariable2([MarshalAs(UnmanagedType.LPWStr)] String name,
+ int attributes,
+ SymbolToken sigToken,
+ int addressKind,
+ int addr1,
+ int addr2,
+ int addr3);
+
+
+ new void DefineConstant2([MarshalAs(UnmanagedType.LPWStr)] String name,
+ Object value,
+ SymbolToken sigToken);
+
+ // ISymUnmanagedWriter3 interfaces
void OpenMethod2(SymbolToken method,
int isect,
int offset);
- };
-
+ void Commit();
+ }
/// <include file='doc\SymWriter.uex' path='docs/doc[@for="SymbolWriter"]/*' />
- public class SymbolWriter: ISymbolWriter2
+ internal class SymbolWriter: ISymbolWriter2
{
ISymUnmanagedWriter m_target;
@@ -317,12 +464,6 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
m_target = GetWriter(ppUnderlyingWriter);
}
- /// <include file='doc\SymWriter.uex' path='docs/doc[@for="SymbolWriter.SetUnderlyingWriter"]/*' />
- public void SetUnderlyingWriter(Object ppUnderlyingWriter)
- {
- m_target = (ISymUnmanagedWriter)ppUnderlyingWriter;
- }
-
/// <include file='doc\SymWriter.uex' path='docs/doc[@for="SymbolWriter.Initialize"]/*' />
public void Initialize(IntPtr emitter, String filename, bool fullBuild)
{
@@ -539,6 +680,7 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
m_target.GetDebugInfo(out iDD, 0, out length, null);
byte[] data = new byte[length];
m_target.GetDebugInfo(out iDD, length, out length, data);
+ System.Diagnostics.Debug.Assert(data.Length == length);
return data;
}
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/symbinder.cs b/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/symbinder.cs
index ec7ecc6844..dfd4068813 100644
--- a/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/symbinder.cs
+++ b/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/symbinder.cs
@@ -15,7 +15,7 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
using System.Text;
using System.Runtime.InteropServices;
using System.Runtime.InteropServices.ComTypes;
-
+
[
ComImport,
Guid("AA544d42-28CB-11d3-bd22-0000f80849bd"),
@@ -24,12 +24,21 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
]
internal interface ISymUnmanagedBinder
{
- void GetReaderForFile(IntPtr importer,
+ // These methods will often return error HRs in common cases.
+ // If there are no symbols for the given target, a failing hr is returned.
+ // This is pretty common.
+ //
+ // Using PreserveSig and manually handling error cases provides a big performance win.
+ // Far fewer exceptions will be thrown and caught.
+ // Exceptions should be reserved for truely "exceptional" cases.
+ [PreserveSig]
+ int GetReaderForFile(IntPtr importer,
[MarshalAs(UnmanagedType.LPWStr)] String filename,
[MarshalAs(UnmanagedType.LPWStr)] String SearchPath,
[MarshalAs(UnmanagedType.Interface)] out ISymUnmanagedReader retVal);
-
- void GetReaderFromStream(IntPtr importer,
+
+ [PreserveSig]
+ int GetReaderFromStream(IntPtr importer,
IStream stream,
[MarshalAs(UnmanagedType.Interface)] out ISymUnmanagedReader retVal);
}
@@ -40,20 +49,23 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
InterfaceType(ComInterfaceType.InterfaceIsIUnknown),
ComVisible(false)
]
- internal interface ISymUnmanagedBinder2
+ internal interface ISymUnmanagedBinder2 : ISymUnmanagedBinder
{
// ISymUnmanagedBinder methods (need to define the base interface methods also, per COM interop requirements)
- void GetReaderForFile(IntPtr importer,
+ [PreserveSig]
+ new int GetReaderForFile(IntPtr importer,
[MarshalAs(UnmanagedType.LPWStr)] String filename,
[MarshalAs(UnmanagedType.LPWStr)] String SearchPath,
[MarshalAs(UnmanagedType.Interface)] out ISymUnmanagedReader retVal);
-
- void GetReaderFromStream(IntPtr importer,
+
+ [PreserveSig]
+ new int GetReaderFromStream(IntPtr importer,
IStream stream,
[MarshalAs(UnmanagedType.Interface)] out ISymUnmanagedReader retVal);
// ISymUnmanagedBinder2 methods
- void GetReaderForFile2(IntPtr importer,
+ [PreserveSig]
+ int GetReaderForFile2(IntPtr importer,
[MarshalAs(UnmanagedType.LPWStr)] String fileName,
[MarshalAs(UnmanagedType.LPWStr)] String searchPath,
int searchPolicy,
@@ -69,28 +81,32 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
internal interface ISymUnmanagedBinder3 : ISymUnmanagedBinder2
{
// ISymUnmanagedBinder methods (need to define the base interface methods also, per COM interop requirements)
- new void GetReaderForFile(IntPtr importer,
+ [PreserveSig]
+ new int GetReaderForFile(IntPtr importer,
[MarshalAs(UnmanagedType.LPWStr)] String filename,
[MarshalAs(UnmanagedType.LPWStr)] String SearchPath,
[MarshalAs(UnmanagedType.Interface)] out ISymUnmanagedReader retVal);
-
- new void GetReaderFromStream(IntPtr importer,
+
+ [PreserveSig]
+ new int GetReaderFromStream(IntPtr importer,
IStream stream,
[MarshalAs(UnmanagedType.Interface)] out ISymUnmanagedReader retVal);
- // ISymUnmanagedBinder2 methods
- new void GetReaderForFile2(IntPtr importer,
- [MarshalAs(UnmanagedType.LPWStr)] String fileName,
- [MarshalAs(UnmanagedType.LPWStr)] String searchPath,
- int searchPolicy,
- [MarshalAs(UnmanagedType.Interface)] out ISymUnmanagedReader pRetVal);
+ // ISymUnmanagedBinder2 methods (need to define the base interface methods also, per COM interop requirements)
+ [PreserveSig]
+ new int GetReaderForFile2(IntPtr importer,
+ [MarshalAs(UnmanagedType.LPWStr)] String fileName,
+ [MarshalAs(UnmanagedType.LPWStr)] String searchPath,
+ int searchPolicy,
+ [MarshalAs(UnmanagedType.Interface)] out ISymUnmanagedReader pRetVal);
// ISymUnmanagedBinder3 methods
- void GetReaderFromCallback(IntPtr importer,
+ [PreserveSig]
+ int GetReaderFromCallback(IntPtr importer,
[MarshalAs(UnmanagedType.LPWStr)] String fileName,
[MarshalAs(UnmanagedType.LPWStr)] String searchPath,
int searchPolicy,
- IntPtr callback,
+ IntPtr callback,
[MarshalAs(UnmanagedType.Interface)] out ISymUnmanagedReader pRetVal);
}
@@ -104,7 +120,7 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
public SymbolBinder()
{
Guid CLSID_CorSymBinder = new Guid("0A29FF9E-7F9C-4437-8B11-F424491E3931");
- m_binder = (ISymUnmanagedBinder)Activator.CreateInstance(Type.GetTypeFromCLSID(CLSID_CorSymBinder));
+ m_binder = (ISymUnmanagedBinder3)Activator.CreateInstance(Type.GetTypeFromCLSID(CLSID_CorSymBinder));
}
/// <include file='doc\symbinder.uex' path='docs/doc[@for="SymbolBinder.GetReader"]/*' />
@@ -112,7 +128,12 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
String searchPath)
{
ISymUnmanagedReader reader = null;
- m_binder.GetReaderForFile(importer, filename, searchPath, out reader);
+ int hr = m_binder.GetReaderForFile(importer, filename, searchPath, out reader);
+ if (IsFailingResultNormal(hr))
+ {
+ return null;
+ }
+ Marshal.ThrowExceptionForHR(hr);
return new SymReader(reader);
}
@@ -122,10 +143,18 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
{
ISymUnmanagedReader reader = null;
IntPtr uImporter = IntPtr.Zero;
- try {
+ try
+ {
uImporter = Marshal.GetIUnknownForObject(importer);
- m_binder.GetReaderForFile(uImporter, filename, searchPath, out reader);
- } finally {
+ int hr = m_binder.GetReaderForFile(uImporter, filename, searchPath, out reader);
+ if (IsFailingResultNormal(hr))
+ {
+ return null;
+ }
+ Marshal.ThrowExceptionForHR(hr);
+ }
+ finally
+ {
if (uImporter != IntPtr.Zero)
Marshal.Release(uImporter);
}
@@ -138,10 +167,18 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
{
ISymUnmanagedReader symReader = null;
IntPtr uImporter = IntPtr.Zero;
- try {
+ try
+ {
uImporter = Marshal.GetIUnknownForObject(importer);
- ((ISymUnmanagedBinder2)m_binder).GetReaderForFile2(uImporter, fileName, searchPath, (int)searchPolicy, out symReader);
- } finally {
+ int hr = ((ISymUnmanagedBinder2)m_binder).GetReaderForFile2(uImporter, fileName, searchPath, (int)searchPolicy, out symReader);
+ if (IsFailingResultNormal(hr))
+ {
+ return null;
+ }
+ Marshal.ThrowExceptionForHR(hr);
+ }
+ finally
+ {
if (uImporter != IntPtr.Zero)
Marshal.Release(uImporter);
}
@@ -155,10 +192,17 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
{
ISymUnmanagedReader reader = null;
IntPtr uImporter = IntPtr.Zero;
- try {
+ try
+ {
uImporter = Marshal.GetIUnknownForObject(importer);
- ((ISymUnmanagedBinder3)m_binder).GetReaderFromCallback(uImporter, fileName, searchPath, (int)searchPolicy, callback, out reader);
- } finally {
+ int hr = ((ISymUnmanagedBinder3)m_binder).GetReaderFromCallback(uImporter, fileName, searchPath, (int)searchPolicy, callback, out reader);
+ if (IsFailingResultNormal(hr))
+ {
+ return null;
+ }
+ Marshal.ThrowExceptionForHR(hr);
+ }
+ finally {
if (uImporter != IntPtr.Zero)
Marshal.Release(uImporter);
}
@@ -170,15 +214,38 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
{
ISymUnmanagedReader reader = null;
IntPtr uImporter = IntPtr.Zero;
- try {
+ try
+ {
uImporter = Marshal.GetIUnknownForObject(importer);
- ((ISymUnmanagedBinder2)m_binder).GetReaderFromStream(uImporter, stream, out reader);
- } finally {
+ int hr = ((ISymUnmanagedBinder2)m_binder).GetReaderFromStream(uImporter, stream, out reader);
+ if (IsFailingResultNormal(hr))
+ {
+ return null;
+ }
+ Marshal.ThrowExceptionForHR(hr);
+ }
+ finally
+ {
if (uImporter != IntPtr.Zero)
Marshal.Release(uImporter);
}
return new SymReader(reader);
}
+
+ private static bool IsFailingResultNormal(int hr)
+ {
+ // If a pdb is not found, that's a pretty common thing.
+ if (hr == unchecked((int)0x806D0005)) // E_PDB_NOT_FOUND
+ {
+ return true;
+ }
+ // Other fairly common things may happen here, but we don't want to hide
+ // this from the programmer.
+ // You may get 0x806D0014 if the pdb is there, but just old (mismatched)
+ // Or if you ask for the symbol information on something that's not an assembly.
+ // If that may happen for your application, wrap calls to GetReaderForFile in
+ // try-catch(COMException) blocks and use the error code in the COMException to report error.
+ return false;
+ }
}
-
}
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/symmethod.cs b/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/symmethod.cs
index fdf047f5a1..4d0693cf2a 100644
--- a/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/symmethod.cs
+++ b/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/symmethod.cs
@@ -35,10 +35,10 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
int column,
int cRanges,
out int pcRanges,
- [In, Out, MarshalAs(UnmanagedType.LPArray)] int[] ranges);
+ [In, Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=3)] int[] ranges);
void GetParameters(int cParams,
out int pcParams,
- [In, Out, MarshalAs(UnmanagedType.LPArray)] ISymUnmanagedVariable[] parms);
+ [In, Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=0)] ISymUnmanagedVariable[] parms);
void GetNamespace([MarshalAs(UnmanagedType.Interface)] out ISymUnmanagedNamespace retVal);
void GetSourceStartEnd(ISymUnmanagedDocument[] docs,
[In, Out, MarshalAs(UnmanagedType.LPArray)] int[] lines,
@@ -46,12 +46,12 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
out Boolean retVal);
void GetSequencePoints(int cPoints,
out int pcPoints,
- [In, Out, MarshalAs(UnmanagedType.LPArray)] int[] offsets,
- [In, Out, MarshalAs(UnmanagedType.LPArray)] ISymUnmanagedDocument[] documents,
- [In, Out, MarshalAs(UnmanagedType.LPArray)] int[] lines,
- [In, Out, MarshalAs(UnmanagedType.LPArray)] int[] columns,
- [In, Out, MarshalAs(UnmanagedType.LPArray)] int[] endLines,
- [In, Out, MarshalAs(UnmanagedType.LPArray)] int[] endColumns);
+ [In, Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=0)] int[] offsets,
+ [In, Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=0)] ISymUnmanagedDocument[] documents,
+ [In, Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=0)] int[] lines,
+ [In, Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=0)] int[] columns,
+ [In, Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=0)] int[] endLines,
+ [In, Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=0)] int[] endColumns);
}
[
@@ -76,7 +76,7 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
}
- class SymMethod : ISymbolMethod, ISymbolEnCMethod
+ internal class SymMethod : ISymbolMethod, ISymbolEnCMethod
{
ISymUnmanagedMethod m_unmanagedMethod;
@@ -106,7 +106,7 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
}
public void GetSequencePoints(int[] offsets,
- [In, Out, MarshalAs(UnmanagedType.LPArray)] ISymbolDocument[] documents,
+ ISymbolDocument[] documents,
int[] lines,
int[] columns,
int[] endLines,
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/symvariable.cs b/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/symvariable.cs
index d0c6a36eb6..93cb1df701 100644
--- a/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/symvariable.cs
+++ b/extras/MonoDevelop.Debugger.Win32/CorApi2/SymStore/symvariable.cs
@@ -32,7 +32,7 @@ namespace Microsoft.Samples.Debugging.CorSymbolStore
void GetSignature(int cSig,
out int pcSig,
- byte[] sig);
+ [In, Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=0)] byte[] sig);
void GetAddressKind(out int pRetVal);
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/AppDomain.cs b/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/AppDomain.cs
index b0bb6a5500..a082856816 100644
--- a/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/AppDomain.cs
+++ b/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/AppDomain.cs
@@ -19,16 +19,6 @@ namespace Microsoft.Samples.Debugging.CorDebug
{
}
-#if CORAPI_EXPOSE_RAW_INTERFACES
- [CLSCompliant(false)]
- public ICorDebugAppDomain Raw
- {
- get
- {
- return _ad();
- }
- }
-#endif
/** Get the ICorDebugAppDomain interface back from the Controller. */
private ICorDebugAppDomain _ad ()
{
@@ -57,15 +47,6 @@ namespace Microsoft.Samples.Debugging.CorDebug
}
}
-#if CORAPI_SKIP
- /* Get the module for the given metadata interface */
- public CorModule GetModuleFromMetaDataInterface (IUnknown metadataInterface)
- {
- ICorDebugModule module = null;
- _ad().GetModuleFromMetaDataInterface (metadataInterface, out module);
- return new CorModule (module);
- }
-#endif
/** All active breakpoints in the CorAppDomain */
public IEnumerable Breakpoints
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Assembly.cs b/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Assembly.cs
index 3e7d520615..bdb3d18559 100644
--- a/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Assembly.cs
+++ b/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Assembly.cs
@@ -23,16 +23,6 @@ namespace Microsoft.Samples.Debugging.CorDebug
m_asm = managedAssembly;
}
-#if CORAPI_EXPOSE_RAW_INTERFACES
- [CLSCompliant(false)]
- public ICorDebugAssembly Raw
- {
- get
- {
- return m_asm;
- }
- }
-#endif
/** Get the process containing the Assembly. */
public CorProcess Process
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Breakpoint.cs b/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Breakpoint.cs
index 1f7a669cb6..61994747eb 100644
--- a/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Breakpoint.cs
+++ b/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Breakpoint.cs
@@ -19,16 +19,6 @@ namespace Microsoft.Samples.Debugging.CorDebug
m_corBreakpoint = managedBreakpoint;
}
-#if CORAPI_EXPOSE_RAW_INTERFACES
- [CLSCompliant(false)]
- public ICorDebugBreakpoint Raw
- {
- get
- {
- return m_corBreakpoint;
- }
- }
-#endif
public virtual void Activate(bool active)
{
m_corBreakpoint.Activate (active ? 1 : 0);
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Class.cs b/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Class.cs
index 86925e3b38..d764d6d889 100644
--- a/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Class.cs
+++ b/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Class.cs
@@ -20,16 +20,6 @@ namespace Microsoft.Samples.Debugging.CorDebug
}
-#if CORAPI_EXPOSE_RAW_INTERFACES
- [CLSCompliant(false)]
- public ICorDebugClass Raw
- {
- get
- {
- return m_class;
- }
- }
-#endif
/** The module containing the class */
public CorModule Module
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Constants.cs b/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Constants.cs
index a9ab0c8be6..d2b5502197 100644
--- a/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Constants.cs
+++ b/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Constants.cs
@@ -91,194 +91,17 @@ namespace Microsoft.Samples.Debugging.CorDebug
}
}
-#if MDBG_FEATURE_INTEROP
- // Native debug event Codes that are returned through NativeStop event
- public enum NativeDebugEventCode
- {
- EXCEPTION_DEBUG_EVENT =1,
- CREATE_THREAD_DEBUG_EVENT =2,
- CREATE_PROCESS_DEBUG_EVENT =3,
- EXIT_THREAD_DEBUG_EVENT =4,
- EXIT_PROCESS_DEBUG_EVENT =5,
- LOAD_DLL_DEBUG_EVENT =6,
- UNLOAD_DLL_DEBUG_EVENT =7,
- OUTPUT_DEBUG_STRING_EVENT =8,
- RIP_EVENT =9,
- }
- public static class NativeDebugEvent
+ abstract class HRUtils
{
- /// <summary>
- /// Given a LoadModule debug event (and the process), get the ImageName
- /// </summary>
- /// <param name="corProcess"> The CorProcess where this image is loaded.</param>
- /// <param name="eventLoadDll"> The LOAD_DLL_DEBUG_INFO event.</param>
- /// <returns> The image name or null if it couldn't be determined from the event</returns>
- private static string GetImageNameFromDebugEvent(CorProcess corProcess, LOAD_DLL_DEBUG_INFO eventLoadDll)
+ public static bool IsFailingHR(int hr)
{
- string moduleName;
- bool bUnicode = eventLoadDll.fUnicode!=0;
-
- if(eventLoadDll.lpImageName == IntPtr.Zero)
- {
- return null;
- }
- else
- {
- byte[] buffer = new byte[4];
- int bytesRead = corProcess.ReadMemory(eventLoadDll.lpImageName.ToInt64(),buffer);
- Debug.Assert(bytesRead==buffer.Length);
-
- IntPtr newptr=new IntPtr((int)buffer[0]+((int)buffer[1]<<8)+((int)buffer[2]<<16)+((int)buffer[3]<<24));
-
- if(newptr == IntPtr.Zero)
- {
- return null;
- }
- else
- {
- System.Text.StringBuilder sb = new System.Text.StringBuilder();
- if(bUnicode)
- buffer = new byte[2];
- else
- buffer = new byte[1];
- do
- {
- bytesRead = corProcess.ReadMemory(newptr.ToInt64(),buffer);
- Debug.Assert(bytesRead==buffer.Length);
- if(bytesRead<buffer.Length)
- break;
- int b;
- if(bUnicode)
- b=(int)buffer[0]+((int)buffer[1]<<8);
- else
- b=(int)buffer[0];
-
- if(b==0)
- break;
- sb.Append((char)b);
- newptr=new IntPtr(newptr.ToInt32()+2);
- }
- while(true);
- moduleName = sb.ToString();
- }
- }
-
- return moduleName;
+ return hr<0;
}
- // returns a message from the event
- static string GetMessageFromDebugEvent(CorProcess corProcess, OUTPUT_DEBUG_STRING_INFO eventOds)
+ public static bool IsSOK(int hr)
{
- bool isUnicode = eventOds.fUnicode!=0;
-
- byte[] buffer = new byte[isUnicode?eventOds.nDebugStringLenght*2:eventOds.nDebugStringLenght];
- int bytesRead = corProcess.ReadMemory(eventOds.lpDebugStringData.ToInt64(),buffer);
- Debug.Assert(buffer.Length==bytesRead);
- System.Text.StringBuilder sb = new System.Text.StringBuilder();
- for(int i=0;i<buffer.Length;i++)
- {
- int val;
- if(isUnicode)
- {
- val =(int)buffer[i]+((int)buffer[i+1]<<8);
- i++;
- }
- else
- val = buffer[i];
- sb.Append((char)val);
- }
- return sb.ToString();
+ return hr==0;
}
-
- // returns string that contains a human-readable content of DEBUG_EVENT passed in
- internal static string DebugEventToString(CorProcess corProcess,DEBUG_EVENT debugEvent)
- {
- string callArgs;// = new StringBuilder();
- switch((NativeDebugEventCode)debugEvent.dwDebugEventCode)
- {
- case NativeDebugEventCode.EXCEPTION_DEBUG_EVENT:
- callArgs = String.Format(CultureInfo.InvariantCulture, @"
-EXCEPTION_DEBUG_EVENT:
- FirstChance: {0}
- ExceptionCode: 0x{1:x}
- ExceptionFlags: 0x{2:x}
- Address: 0x{3:x}
-", new Object[]{
- (debugEvent.Exception.dwFirstChance!=0?true:false),
- debugEvent.Exception.ExceptionRecord.ExceptionCode,
- debugEvent.Exception.ExceptionRecord.ExceptionFlags,
- (int)debugEvent.Exception.ExceptionRecord.ExceptionAddress});
- //<strip>@TODO For AV add written from /to</strip>
- break;
- case NativeDebugEventCode.CREATE_THREAD_DEBUG_EVENT:
- callArgs = String.Format(CultureInfo.InvariantCulture, @"
-CREATE_THREAD_DEBUG_EVENT:
- ThreadLocalBase: 0x{0:x}
- StartAddress: 0x{1:x}
-", new Object[]{
- (int)debugEvent.CreateThread.lpThreadLocalBase,
- (int)debugEvent.CreateThread.lpStartAddress});
- break;
-
- case NativeDebugEventCode.EXIT_THREAD_DEBUG_EVENT:
- callArgs = String.Format(CultureInfo.InvariantCulture, @"
-EXIT_THREAD_DEBUG_EVENT:
- ExitCode: 0x{0:x}
-", new Object[]{
- debugEvent.ExitThread.dwExitCode});
- break;
-
- case NativeDebugEventCode.EXIT_PROCESS_DEBUG_EVENT:
- callArgs = String.Format(CultureInfo.InvariantCulture, @"
-EXIT_PROCESS_DEBUG_EVENT:
- ExitCode: 0x{0:x}
-", new Object[]{
- debugEvent.ExitProcess.dwExitCode});
- break;
-
- case NativeDebugEventCode.LOAD_DLL_DEBUG_EVENT: {
- string moduleName = GetImageNameFromDebugEvent(corProcess, debugEvent.LoadDll);
-
- if(moduleName == null)
- {
- if (debugEvent.LoadDll.lpImageName == IntPtr.Zero)
- moduleName = "N/A (lpImageName==null)";
- else
- moduleName = "N/A (in process)";
- }
-
- callArgs = String.Format(CultureInfo.InvariantCulture, @"
-LOAD_DLL_DEBUG_EVENT:
- BaseAddress: 0x{0:x}
- ModuleName: {1}
-", new Object[]{
- (int)debugEvent.LoadDll.lpBaseOfDll, moduleName});
- break;
-
- }
-
- case NativeDebugEventCode.OUTPUT_DEBUG_STRING_EVENT: {
- string message = GetMessageFromDebugEvent(corProcess,debugEvent.OutputDebugString);
- callArgs = String.Format(CultureInfo.InvariantCulture, @"
-OUTPUT_DEBUG_STRING_EVENT:
- text: {0}
-", new Object[]{
- message});
- break;
- }
-
- default:
- callArgs = String.Format(CultureInfo.InvariantCulture, @"
-{0}:
-", new Object[]{
- ((NativeDebugEventCode)debugEvent.dwDebugEventCode)
- });
- break;
- }
- return callArgs;
- }
-
}
-#endif // MDBG_FEATURE_INTEROP
}
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/CorAPIAssemblyAttributes.cs b/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/CorAPIAssemblyAttributes.cs
new file mode 100644
index 0000000000..3da9b7c4ec
--- /dev/null
+++ b/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/CorAPIAssemblyAttributes.cs
@@ -0,0 +1,13 @@
+
+// Attributes for the CorApiAssembly
+using System;
+using System.Runtime.InteropServices;
+using System.Runtime.InteropServices.ComTypes;
+using System.Security.Permissions;
+
+
+
+// Expose non-CLS-compliant types, so we can't be CLS-compliant
+[assembly:CLSCompliant(true)]
+// [Xamarin] Bump version to .NET 4.0.
+[assembly:System.Runtime.InteropServices.ComVisible(false)] \ No newline at end of file
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Debugger.cs b/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Debugger.cs
index e1e9a96862..ddbc5f186d 100644
--- a/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Debugger.cs
+++ b/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Debugger.cs
@@ -5,24 +5,21 @@
//---------------------------------------------------------------------
using System;
using System.Collections;
+using System.Collections.Generic;
using System.Diagnostics;
-using System.Runtime.InteropServices;
#if !MDBG_FAKE_COM
-using System.Runtime.InteropServices.ComTypes;
+using System.Runtime.InteropServices;
#endif
+using System.Runtime.InteropServices.ComTypes;
using System.Threading;
using System.Text;
using System.Security.Permissions;
using System.Globalization;
-using System.Collections.Generic;
using Microsoft.Samples.Debugging.CorDebug.NativeApi;
using Microsoft.Win32.SafeHandles;
-[assembly:CLSCompliant(true)]
-[assembly:System.Runtime.InteropServices.ComVisible(false)]
-[assembly:SecurityPermission(SecurityAction.RequestMinimum, Unrestricted=true)]
namespace Microsoft.Samples.Debugging.CorDebug
{
@@ -34,6 +31,7 @@ namespace Microsoft.Samples.Debugging.CorDebug
public sealed class CorDebugger : MarshalByRefObject
{
private const int MaxVersionStringLength = 256; // == MAX_PATH
+ // [Xamarin] Output redirection.
public const int CREATE_REDIRECT_STD = 0x40000000;
public static string GetDebuggerVersionFromFile(string pathToExe)
@@ -109,21 +107,10 @@ namespace Microsoft.Samples.Debugging.CorDebug
// sometimes we cannot terminate because GC collects object in wrong
// order. But since the whole process is shutting down, we really
// don't care.
- // TODO: we need to define IDisposable pattern to CorDebug so that we are able to
- // dispose stuff in correct order.
+
}
}
-#if CORAPI_EXPOSE_RAW_INTERFACES
- [CLSCompliant(false)]
- public ICorDebug Raw
- {
- get
- {
- return m_debugger;
- }
- }
-#endif
/**
* Closes the debugger. After this method is called, it is an error
@@ -166,6 +153,7 @@ namespace Microsoft.Samples.Debugging.CorDebug
return CreateProcess (applicationName, commandLine, ".");
}
+ // [Xamarin] ASP.NET Debugging.
/**
* Launch a process under the control of the debugger.
*
@@ -177,9 +165,10 @@ namespace Microsoft.Samples.Debugging.CorDebug
String currentDirectory
)
{
- return CreateProcess (applicationName, commandLine, currentDirectory, null, 0);
+ return CreateProcess (applicationName, commandLine, currentDirectory, null, 0);
}
+ // [Xamarin] ASP.NET Debugging.
/**
* Launch a process under the control of the debugger.
*
@@ -195,6 +184,7 @@ namespace Microsoft.Samples.Debugging.CorDebug
return CreateProcess (applicationName, commandLine, currentDirectory, environment, 0);
}
+ // [Xamarin] ASP.NET Debugging and output redirection.
/**
* Launch a process under the control of the debugger.
*
@@ -213,7 +203,7 @@ namespace Microsoft.Samples.Debugging.CorDebug
STARTUPINFO si = new STARTUPINFO ();
si.cb = Marshal.SizeOf(si);
- // initialize safe handles
+ // initialize safe handles
SafeFileHandle outReadPipe = null, errorReadPipe = null;
if ((flags & CREATE_REDIRECT_STD) != 0) {
CreateHandles (si, out outReadPipe, out errorReadPipe);
@@ -280,6 +270,7 @@ namespace Microsoft.Samples.Debugging.CorDebug
return ret;
}
+ // [Xamarin] Output redirection.
void CreateHandles (STARTUPINFO si, out SafeFileHandle outReadPipe, out SafeFileHandle errorReadPipe)
{
si.dwFlags |= 0x00000100; /*STARTF_USESTDHANDLES*/
@@ -337,7 +328,7 @@ namespace Microsoft.Samples.Debugging.CorDebug
SECURITY_ATTRIBUTES threadAttributes,
bool inheritHandles,
int creationFlags,
- IntPtr environment, // <strip>@TODO fix the environment</strip>
+ IntPtr environment,
String currentDirectory,
STARTUPINFO startupInfo,
ref PROCESS_INFORMATION processInformation,
@@ -408,12 +399,24 @@ namespace Microsoft.Samples.Debugging.CorDebug
return CorProcess.GetCorProcess(proc);
}
+ /**
+ * Warn us of potentional problems in using debugging (eg. whether a kernel debugger is
+ * attached). This API should probably be renamed or the warnings turned into errors
+ * in CreateProcess/DebugActiveProcess
+ */
+ public void CanLaunchOrAttach(int processId, bool win32DebuggingEnabled)
+ {
+ m_debugger.CanLaunchOrAttach((uint) processId,
+ win32DebuggingEnabled?1:0);
+ }
+
////////////////////////////////////////////////////////////////////////////////
//
// CorDebugger private implement part
//
////////////////////////////////////////////////////////////////////////////////
+ // [Xamarin] .NET 4 API Version.
// called by constructors during initialization
private void InitFromVersion(string debuggerVersion)
{
@@ -425,12 +428,12 @@ namespace Microsoft.Samples.Debugging.CorDebug
ICorDebug rawDebuggingAPI;
#if MDBG_FAKE_COM
- // TODO: Ideally, there wouldn't be any difference in the corapi code for MDBG_FAKE_COM.
- // This would require puting this initialization logic into the wrapper and interop assembly, which doesn't seem right.
- // We should also release this pUnk, but doing that here would be difficult and we aren't done with it until
- // we shutdown anyway.
- IntPtr pUnk = NativeMethods.CreateDebuggingInterfaceFromVersion((int)CorDebuggerVersion.Whidbey, debuggerVersion);
- rawDebuggingAPI = new NativeApi.CorDebugClass(pUnk);
+ // TODO: Ideally, there wouldn't be any difference in the corapi code for MDBG_FAKE_COM.
+ // This would require puting this initialization logic into the wrapper and interop assembly, which doesn't seem right.
+ // We should also release this pUnk, but doing that here would be difficult and we aren't done with it until
+ // we shutdown anyway.
+ IntPtr pUnk = NativeMethods.CreateDebuggingInterfaceFromVersion((int)CorDebuggerVersion.Whidbey, debuggerVersion);
+ rawDebuggingAPI = new NativeApi.CorDebugClass(pUnk);
#else
int apiVersion = debuggerVersion.StartsWith ("v4") ? 4 : 3;
rawDebuggingAPI = NativeMethods.CreateDebuggingInterfaceFromVersion (apiVersion, debuggerVersion);
@@ -447,15 +450,6 @@ namespace Microsoft.Samples.Debugging.CorDebug
m_debugger = rawDebuggingAPI;
m_debugger.Initialize ();
m_debugger.SetManagedHandler (new ManagedCallback(this));
-#if MDBG_FEATURE_INTEROP
- try
- {
- m_debugger.SetUnmanagedHandler(new UnmanagedCallback(this));
- }
- catch(NotImplementedException)
- {
- }
-#endif
}
/**
@@ -470,6 +464,7 @@ namespace Microsoft.Samples.Debugging.CorDebug
* Consequently, if an exception is thrown and the process is stopped,
* the process is continued automatically.
*/
+
void InternalFireEvent(ManagedCallbackType callbackType,CorEventArgs e)
{
CorProcess owner;
@@ -491,15 +486,6 @@ namespace Microsoft.Samples.Debugging.CorDebug
{
if(e.Continue)
{
-#if MDBG_FEATURE_INTEROP
- // this is special case for interop debugging
- // where we continue from OOB native event in which
- // case we have to call Continue with true (OOBound).
- if( (e is CorNativeStopEventArgs)
- && (e as CorNativeStopEventArgs).IsOutOfBand )
- e.Controller.Continue(true);
- else
-#endif
e.Controller.Continue(false);
}
}
@@ -517,571 +503,21 @@ namespace Microsoft.Samples.Debugging.CorDebug
* the event arguments into a more approprate form and forwards
* the call to the appropriate function.
*/
- private class ManagedCallback : ICorDebugManagedCallback, ICorDebugManagedCallback2
+ private class ManagedCallback : ManagedCallbackBase
{
public ManagedCallback (CorDebugger outer)
{
m_outer = outer;
}
-
- void ICorDebugManagedCallback.Breakpoint (ICorDebugAppDomain appDomain,
- ICorDebugThread thread,
- ICorDebugBreakpoint breakpoint)
- {
- m_outer.InternalFireEvent(ManagedCallbackType.OnBreakpoint,
- new CorBreakpointEventArgs (appDomain==null?null:new CorAppDomain(appDomain),
- thread==null?null:new CorThread (thread),
- breakpoint==null?null:new CorFunctionBreakpoint ((ICorDebugFunctionBreakpoint)breakpoint)
- ));
- }
-
- void ICorDebugManagedCallback.StepComplete ( ICorDebugAppDomain appDomain,
- ICorDebugThread thread,
- ICorDebugStepper stepper,
- CorDebugStepReason stepReason)
- {
- m_outer.InternalFireEvent(ManagedCallbackType.OnStepComplete,
- new CorStepCompleteEventArgs (appDomain==null?null:new CorAppDomain (appDomain),
- thread==null?null:new CorThread (thread),
- stepper==null?null:new CorStepper(stepper),
- stepReason));
- }
-
- void ICorDebugManagedCallback.Break (
- ICorDebugAppDomain appDomain,
- ICorDebugThread thread)
- {
- m_outer.InternalFireEvent(ManagedCallbackType.OnBreak,
- new CorThreadEventArgs (
- appDomain==null?null:new CorAppDomain (appDomain),
- thread==null?null:new CorThread (thread)));
- }
-
- void ICorDebugManagedCallback.Exception (
- ICorDebugAppDomain appDomain,
- ICorDebugThread thread,
- int unhandled)
- {
- m_outer.InternalFireEvent(ManagedCallbackType.OnException,
- new CorExceptionEventArgs (
- appDomain==null?null:new CorAppDomain (appDomain),
- thread==null?null:new CorThread (thread),
- !(unhandled == 0)));
- }
- /* pass false if ``unhandled'' is 0 -- mapping TRUE to true, etc. */
-
- void ICorDebugManagedCallback.EvalComplete (
- ICorDebugAppDomain appDomain,
- ICorDebugThread thread,
- ICorDebugEval eval)
- {
- m_outer.InternalFireEvent(ManagedCallbackType.OnEvalComplete,
- new CorEvalEventArgs (
- appDomain==null?null:new CorAppDomain(appDomain),
- thread==null?null:new CorThread (thread),
- eval==null?null:new CorEval(eval)));
- }
-
- void ICorDebugManagedCallback.EvalException (
- ICorDebugAppDomain appDomain,
- ICorDebugThread thread,
- ICorDebugEval eval)
- {
- m_outer.InternalFireEvent(ManagedCallbackType.OnEvalException,
- new CorEvalEventArgs (
- appDomain==null?null:new CorAppDomain (appDomain),
- thread==null?null:new CorThread (thread),
- eval==null?null:new CorEval (eval)));
- }
-
- void ICorDebugManagedCallback.CreateProcess (
- ICorDebugProcess process)
- {
- m_outer.InternalFireEvent(ManagedCallbackType.OnCreateProcess,
- new CorProcessEventArgs (
- process==null?null:CorProcess.GetCorProcess(process)));
- }
-
- void ICorDebugManagedCallback.ExitProcess (
- ICorDebugProcess process)
- {
- m_outer.InternalFireEvent(ManagedCallbackType.OnProcessExit,
- new CorProcessEventArgs (
- process==null?null:CorProcess.GetCorProcess(process)));
- }
-
- void ICorDebugManagedCallback.CreateThread (
- ICorDebugAppDomain appDomain,
- ICorDebugThread thread)
- {
- m_outer.InternalFireEvent(ManagedCallbackType.OnCreateThread,
- new CorThreadEventArgs (
- appDomain==null?null:new CorAppDomain(appDomain),
- thread==null?null:new CorThread (thread)));
- }
-
- void ICorDebugManagedCallback.ExitThread (
- ICorDebugAppDomain appDomain,
- ICorDebugThread thread)
- {
- m_outer.InternalFireEvent(ManagedCallbackType.OnThreadExit,
- new CorThreadEventArgs (
- appDomain==null?null:new CorAppDomain(appDomain),
- thread==null?null:new CorThread (thread)));
- }
-
- void ICorDebugManagedCallback.LoadModule (
- ICorDebugAppDomain appDomain,
- ICorDebugModule managedModule)
- {
- m_outer.InternalFireEvent(ManagedCallbackType.OnModuleLoad,
- new CorModuleEventArgs (
- appDomain==null?null:new CorAppDomain(appDomain),
- managedModule==null?null:new CorModule (managedModule)));
- }
-
- void ICorDebugManagedCallback.UnloadModule (
- ICorDebugAppDomain appDomain,
- ICorDebugModule managedModule)
- {
- m_outer.InternalFireEvent(ManagedCallbackType.OnModuleUnload,
- new CorModuleEventArgs (
- appDomain==null?null:new CorAppDomain (appDomain),
- managedModule==null?null:new CorModule (managedModule)));
- }
-
- void ICorDebugManagedCallback.LoadClass (
- ICorDebugAppDomain appDomain,
- ICorDebugClass c)
- {
- m_outer.InternalFireEvent(ManagedCallbackType.OnClassLoad,
- new CorClassEventArgs (
- appDomain==null?null:new CorAppDomain(appDomain),
- c==null?null:new CorClass (c)));
- }
-
- void ICorDebugManagedCallback.UnloadClass (
- ICorDebugAppDomain appDomain,
- ICorDebugClass c)
- {
- m_outer.InternalFireEvent(ManagedCallbackType.OnClassUnload,
- new CorClassEventArgs (
- appDomain==null?null:new CorAppDomain(appDomain),
- c==null?null:new CorClass (c)));
- }
-
- void ICorDebugManagedCallback.DebuggerError (
- ICorDebugProcess process,
- int errorHR,
- uint errorCode)
- {
- m_outer.InternalFireEvent(ManagedCallbackType.OnDebuggerError,
- new CorDebuggerErrorEventArgs (
- process==null?null:CorProcess.GetCorProcess (process),
- errorHR,
- (int) errorCode));
- }
-
- void ICorDebugManagedCallback.LogMessage (
- ICorDebugAppDomain appDomain,
- ICorDebugThread thread,
- int level,
- string logSwitchName,
- string message)
- {
- m_outer.InternalFireEvent(ManagedCallbackType.OnLogMessage,
- new CorLogMessageEventArgs (
- appDomain==null?null:new CorAppDomain(appDomain),
- thread==null?null:new CorThread (thread),
- level, logSwitchName, message));
- }
-
- void ICorDebugManagedCallback.LogSwitch (
- ICorDebugAppDomain appDomain,
- ICorDebugThread thread,
- int level,
- uint reason,
- string logSwitchName,
- string parentName)
- {
- m_outer.InternalFireEvent(ManagedCallbackType.OnLogSwitch,
- new CorLogSwitchEventArgs (
- appDomain==null?null:new CorAppDomain(appDomain),
- thread==null?null:new CorThread (thread),
- level, (int) reason, logSwitchName, parentName));
- }
-
- void ICorDebugManagedCallback.CreateAppDomain (
- ICorDebugProcess process,
- ICorDebugAppDomain appDomain)
- {
- m_outer.InternalFireEvent(ManagedCallbackType.OnCreateAppDomain,
- new CorAppDomainEventArgs (
- process==null?null:CorProcess.GetCorProcess(process),
- appDomain==null?null:new CorAppDomain(appDomain)));
- }
-
- void ICorDebugManagedCallback.ExitAppDomain (
- ICorDebugProcess process,
- ICorDebugAppDomain appDomain)
- {
- m_outer.InternalFireEvent(ManagedCallbackType.OnAppDomainExit,
- new CorAppDomainEventArgs (
- process==null?null:CorProcess.GetCorProcess(process),
- appDomain==null?null:new CorAppDomain (appDomain)));
- }
-
- void ICorDebugManagedCallback.LoadAssembly (
- ICorDebugAppDomain appDomain,
- ICorDebugAssembly assembly)
- {
- m_outer.InternalFireEvent(ManagedCallbackType.OnAssemblyLoad,
- new CorAssemblyEventArgs (
- appDomain==null?null:new CorAppDomain (appDomain),
- assembly==null?null:new CorAssembly (assembly)));
- }
-
- void ICorDebugManagedCallback.UnloadAssembly (
- ICorDebugAppDomain appDomain,
- ICorDebugAssembly assembly)
- {
- m_outer.InternalFireEvent(ManagedCallbackType.OnAssemblyUnload,
- new CorAssemblyEventArgs (
- appDomain==null?null:new CorAppDomain(appDomain),
- assembly==null?null:new CorAssembly (assembly)));
- }
-
- void ICorDebugManagedCallback.ControlCTrap (ICorDebugProcess process)
- {
- m_outer.InternalFireEvent(ManagedCallbackType.OnControlCTrap,
- new CorProcessEventArgs (
- process==null?null:CorProcess.GetCorProcess(process)
- ));
- }
-
- void ICorDebugManagedCallback.NameChange (
- ICorDebugAppDomain appDomain,
- ICorDebugThread thread)
- {
- m_outer.InternalFireEvent(ManagedCallbackType.OnNameChange,
- new CorThreadEventArgs (
- appDomain==null?null:new CorAppDomain(appDomain),
- thread==null?null:new CorThread (thread)));
- }
-
- // TODO: Enable support for dynamic modules (reflection emit) with FAKE_COM?
- // Rotor doesn't have ISymbolBinder2 or IStream, so we may have to add them
- void ICorDebugManagedCallback.UpdateModuleSymbols (
- ICorDebugAppDomain appDomain,
- ICorDebugModule managedModule,
-#if MDBG_FAKE_COM
- IntPtr stream)
-#else
- IStream stream)
-#endif
- {
- m_outer.InternalFireEvent(ManagedCallbackType.OnUpdateModuleSymbols,
- new CorUpdateModuleSymbolsEventArgs(
- appDomain==null?null:new CorAppDomain(appDomain),
- managedModule==null?null:new CorModule (managedModule),
- stream));
- }
-
- void ICorDebugManagedCallback.EditAndContinueRemap(
- ICorDebugAppDomain appDomain,
- ICorDebugThread thread,
- ICorDebugFunction managedFunction,
- int isAccurate)
- {
- Debug.Assert(false); //OBSOLETE callback
- }
-
-
- void ICorDebugManagedCallback.BreakpointSetError(
- ICorDebugAppDomain appDomain,
- ICorDebugThread thread,
- ICorDebugBreakpoint breakpoint,
- UInt32 errorCode)
- {
- m_outer.InternalFireEvent(ManagedCallbackType.OnBreakpointSetError,
- new CorBreakpointSetErrorEventArgs(
- appDomain==null?null:new CorAppDomain(appDomain),
- thread==null?null:new CorThread(thread),
- null, // <strip>@TODO breakpoint==null?null:new CorBreakpoint(breakpoint),</strip>
- (int)errorCode));
- }
-
- void ICorDebugManagedCallback2.FunctionRemapOpportunity(ICorDebugAppDomain appDomain,
- ICorDebugThread thread,
- ICorDebugFunction oldFunction,
- ICorDebugFunction newFunction,
- uint oldILoffset)
- {
- m_outer.InternalFireEvent(ManagedCallbackType.OnFunctionRemapOpportunity,
- new CorFunctionRemapOpportunityEventArgs(
- appDomain==null?null:new CorAppDomain(appDomain),
- thread==null?null:new CorThread (thread),
- oldFunction==null?null:new CorFunction(oldFunction),
- newFunction==null?null:new CorFunction(newFunction),
- (int)oldILoffset
- ));
- }
-
- void ICorDebugManagedCallback2.FunctionRemapComplete(ICorDebugAppDomain appDomain,
- ICorDebugThread thread,
- ICorDebugFunction managedFunction)
- {
- m_outer.InternalFireEvent(ManagedCallbackType.OnFunctionRemapComplete,
- new CorFunctionRemapCompleteEventArgs(
- appDomain==null?null:new CorAppDomain(appDomain),
- thread==null?null:new CorThread (thread),
- managedFunction==null?null:new CorFunction(managedFunction)
- ));
- }
-
- void ICorDebugManagedCallback2.CreateConnection(ICorDebugProcess process,uint connectionId, ref ushort connectionName)
- {
- // <strip>@TODO - </strip>Not Implemented
- Debug.Assert(false);
- }
-
- void ICorDebugManagedCallback2.ChangeConnection(ICorDebugProcess process,uint connectionId)
- {
- // <strip>@TODO -</strip> Not Implemented
- Debug.Assert(false);
- }
-
- void ICorDebugManagedCallback2.DestroyConnection(ICorDebugProcess process,uint connectionId)
+ protected override void HandleEvent(ManagedCallbackType eventId, CorEventArgs args)
{
- // <strip>@TODO - </strip>Not Implemented
- Debug.Assert(false);
+ m_outer.InternalFireEvent(eventId, args);
}
-
- void ICorDebugManagedCallback2.Exception(ICorDebugAppDomain ad, ICorDebugThread thread,
- ICorDebugFrame frame, uint offset,
- CorDebugExceptionCallbackType eventType, uint flags) //@TODO flags should not be UINT
- {
- m_outer.InternalFireEvent(ManagedCallbackType.OnException2,
- new CorException2EventArgs(
- ad==null?null:new CorAppDomain(ad),
- thread==null?null:new CorThread (thread),
- frame==null?null:new CorFrame(frame),
- (int)offset,
- eventType,
- (int)flags
- ));
- }
-
- void ICorDebugManagedCallback2.ExceptionUnwind(ICorDebugAppDomain ad, ICorDebugThread thread,
- CorDebugExceptionUnwindCallbackType eventType, uint flags)
- {
- m_outer.InternalFireEvent(ManagedCallbackType.OnExceptionUnwind2,
- new CorExceptionUnwind2EventArgs(
- ad==null?null:new CorAppDomain(ad),
- thread==null?null:new CorThread (thread),
- eventType,
- (int)flags
- ));
- }
-
- // Get process from controller
- private CorProcess GetProcessFromController(ICorDebugController pController)
- {
- CorProcess p;
- ICorDebugProcess p2 = pController as ICorDebugProcess;
- if (p2 != null)
- {
- p = CorProcess.GetCorProcess(p2);
- }
- else
- {
- ICorDebugAppDomain a2 = (ICorDebugAppDomain) pController;
- p = new CorAppDomain(a2).Process;
- }
- return p;
- }
-
- void ICorDebugManagedCallback2.MDANotification(ICorDebugController pController,
- ICorDebugThread thread,
- ICorDebugMDA pMDA)
- {
- CorMDA c = new CorMDA(pMDA);
- string szName = c.Name;
- CorDebugMDAFlags f = c.Flags;
- CorProcess p = GetProcessFromController(pController);
-
-
- m_outer.InternalFireEvent(ManagedCallbackType.OnMDANotification,
- new CorMDAEventArgs (c,
- thread==null?null:new CorThread (thread),
- p));
- }
-
private CorDebugger m_outer;
}
+
-
-#if MDBG_FEATURE_INTEROP
- private class UnmanagedCallback : ICorDebugUnmanagedCallback
- {
- public UnmanagedCallback (CorDebugger outer)
- {
- Debug.Assert(outer!=null);
- m_outer = outer;
- }
-
-#if !FIXED_BUG21115 //<strip>@TODO remove once we'll be able to call Continue from Win32 callbakck.</strip>
- private struct Win32NativeEvent
- {
- public Win32NativeEvent(CorProcess process,CorDebugger outer,int threadId,DEBUG_EVENT debugEvent)
- {
- Debug.Assert(process!=null);
- Debug.Assert(outer!=null);
- m_process = process;
- m_outer = outer;
- m_threadId = threadId;
- m_debugEvent = debugEvent;
- }
- private CorProcess m_process;
- private CorDebugger m_outer;
- private int m_threadId;
- private DEBUG_EVENT m_debugEvent;
-
- // This is always dispatched on the W32ET. That thread can't do anything useful so we
- // hand off to another thread.
- static public void DispatchEvent(Win32NativeEvent event_)
- {
- // If Mdbg has mutliple debuggees, they'll share this.
- lock(g_lock)
- {
- if( g_workToDo == null )
- {
- g_workToDo = new AutoResetEvent(false);
- g_callWorkDone = new AutoResetEvent(true);
- Thread t = new System.Threading.Thread(new System.Threading.ThreadStart(Win32NativeEvent.Dispatch));
- t.IsBackground = true;
- t.Start();
- }
- }
-
- g_callWorkDone.WaitOne();
- g_event = event_;
- g_workToDo.Set();
-
- // We now return without waiting for the DispatchThread to finish
- }
-
- // Statics
- static private object g_lock = new object();
- static private AutoResetEvent g_callWorkDone=null;
- static private AutoResetEvent g_workToDo = null;
- static private Win32NativeEvent g_event;
-
- // This is called on a separate thread from the W32ET. MDbg shares this thread across all debuggees
- // (in the same way ICorDebug shares the RCET)
- public static void Dispatch()
- {
- while(true)
- {
- try
- {
- g_workToDo.WaitOne();
-
- g_event.m_outer.InternalFireEvent(ManagedCallbackType.OnNativeStop,
- new CorNativeStopEventArgs (g_event.m_process,
- g_event.m_threadId,
- g_event.m_debugEvent,
- false /*not OOB event*/));
- }
- finally
- {
- g_callWorkDone.Set();
- }
- }
- }
- }
-#endif
- void Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugUnmanagedCallback.DebugEvent(DEBUG_EVENT debugEvent, int isOutOfBand)
- {
- try
- {
- CorProcess corProcess = m_outer.GetProcess((int)debugEvent.dwProcessId);
- string callArgs = NativeDebugEvent.DebugEventToString(corProcess,debugEvent);
- Trace.WriteLine("UnmanagedCallback::DebugEvent(fOutOfBand="+isOutOfBand+")" + callArgs);
-
- // Should never get Out-Of-Band Native BPs. <strip>(@TODO could happen in interop debugging scenarios)</strip>
- if( ((NativeDebugEventCode)debugEvent.dwDebugEventCode == NativeDebugEventCode.EXCEPTION_DEBUG_EVENT) &&
- (debugEvent.Exception.ExceptionRecord.ExceptionCode == 0x80000003) && (isOutOfBand != 0) )
- {
- Debug.Assert(false,"ERROR: Out-Of-Band native breakpoint recieved!");
- }
-
- // Should never get In-Of-Band ExitThread Event (for Whidbey, not true in Everett)
- if( ((NativeDebugEventCode)debugEvent.dwDebugEventCode == NativeDebugEventCode.EXIT_THREAD_DEBUG_EVENT) &&
- (isOutOfBand == 0) )
- {
- Debug.Assert(false,"ERROR: In-Band ExitThread unamanged event received!");
- }
-
- // dispatch the event
- if(isOutOfBand!=0)
- {
- /* note that in this event debugger cannot use any managed debuggger API,
- * therefore it in effect cannot stop.
- * The CorNativeStopEventArgs class has a check that Continue cannot be set to false
- * in this case.
- */
- m_outer.InternalFireEvent(ManagedCallbackType.OnNativeStop,
- new CorNativeStopEventArgs (corProcess,
- (int)debugEvent.dwThreadId,
- debugEvent,
- true /*is OOB event*/));
- // since the user cannot signal that we want to stop on OOB event, InternalFireEvent will always call
- // continue for us.
- }
- else
- {
- // we need to dispatch handling and managing Win32 events
- // received to other thread (Need documentation).
- //
- Win32NativeEvent.DispatchEvent(new Win32NativeEvent(corProcess,m_outer,(int)debugEvent.dwThreadId,debugEvent));
- }
-
-
- // We need to take care of closing *SOME* handles.
- // following sample give us some clues....
- // ms-help://MS.MSDNQTR.2002OCT.1033/debug/base/writing_the_debugger_s_main_loop.htm
- // some handles are closed by ContinueDebugEvent as described in
- // ms-help://MS.MSDNQTR.2002OCT.1033/debug/base/continuedebugevent.htm
- //
- switch((NativeDebugEventCode)debugEvent.dwDebugEventCode)
- {
- case NativeDebugEventCode.CREATE_PROCESS_DEBUG_EVENT:
- NativeMethods.CloseHandle(debugEvent.CreateProcess.hFile);
- break;
- case NativeDebugEventCode.LOAD_DLL_DEBUG_EVENT:
- NativeMethods.CloseHandle(debugEvent.LoadDll.hFile);
- break;
-
- // this special case is for debugging on Win2k, where
- // OUTPUT_DEBUG_STRING_EVENT requires clrearing exception
- case NativeDebugEventCode.OUTPUT_DEBUG_STRING_EVENT:
- corProcess.ClearCurrentException((int)debugEvent.dwThreadId);
- break;
- }
- }
- catch(Exception e)
- {
- Debug.Assert(false,"Exception in Win32 callback "+e.ToString());
- throw;
- }
- }
- private CorDebugger m_outer = null;
-
- }
-
-#endif // MDBG_FEATURE_INTEROP
private ICorDebug m_debugger = null;
} /* class Debugger */
@@ -1108,11 +544,7 @@ namespace Microsoft.Samples.Debugging.CorDebug
{
private const string Kernel32LibraryName = "kernel32.dll";
private const string Ole32LibraryName = "ole32.dll";
-#if FEATURE_PAL
- private const string ShimLibraryName = "sscoree.dll";
-#else
private const string ShimLibraryName = "mscoree.dll";
-#endif
[
System.Runtime.ConstrainedExecution.ReliabilityContract(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.Success),
@@ -1124,13 +556,8 @@ namespace Microsoft.Samples.Debugging.CorDebug
[
DllImport(ShimLibraryName, CharSet=CharSet.Unicode, PreserveSig=false)
]
-#if MDBG_FAKE_COM
- public static extern IntPtr CreateDebuggingInterfaceFromVersion(int iDebuggerVersion
- ,string szDebuggeeVersion);
-#else
public static extern ICorDebug CreateDebuggingInterfaceFromVersion(int iDebuggerVersion
,string szDebuggeeVersion);
-#endif
[
DllImport(ShimLibraryName, CharSet=CharSet.Unicode)
@@ -1184,47 +611,54 @@ namespace Microsoft.Samples.Debugging.CorDebug
[MarshalAs(UnmanagedType.Interface)]out ICorDebug debuggingInterface
);
- [
+ // [Xamarin] Output redirection.
+ [
DllImport (Kernel32LibraryName, CharSet = CharSet.Auto, SetLastError = true)
- ]
+ ]
public static extern bool CreatePipe (out SafeFileHandle hReadPipe, out SafeFileHandle hWritePipe, SECURITY_ATTRIBUTES lpPipeAttributes, int nSize);
+ // [Xamarin] Output redirection.
[
DllImport (Kernel32LibraryName)
]
public static extern bool DuplicateHandle (
- IntPtr hSourceProcessHandle,
- SafeFileHandle hSourceHandle,
- IntPtr hTargetProcessHandle,
- out SafeFileHandle lpTargetHandle,
- uint dwDesiredAccess,
- bool bInheritHandle,
- uint dwOptions
+ IntPtr hSourceProcessHandle,
+ SafeFileHandle hSourceHandle,
+ IntPtr hTargetProcessHandle,
+ out SafeFileHandle lpTargetHandle,
+ uint dwDesiredAccess,
+ bool bInheritHandle,
+ uint dwOptions
);
+ // [Xamarin] Output redirection.
public static uint DUPLICATE_CLOSE_SOURCE = 0x00000001;
public static uint DUPLICATE_SAME_ACCESS = 0x00000002;
+ // [Xamarin] Output redirection.
[
DllImport (Kernel32LibraryName)
]
public static extern SafeFileHandle GetStdHandle (uint nStdHandle);
+ // [Xamarin] Output redirection.
public const uint STD_INPUT_HANDLE = unchecked ((uint)-10);
public const uint STD_OUTPUT_HANDLE = unchecked ((uint)-11);
public const uint STD_ERROR_HANDLE = unchecked ((uint)-12);
+ // [Xamarin] Output redirection.
[
DllImport (Kernel32LibraryName)
]
public static extern bool ReadFile (
- SafeFileHandle hFile,
- byte[] lpBuffer,
- int nNumberOfBytesToRead,
- out int lpNumberOfBytesRead,
- IntPtr lpOverlapped
+ SafeFileHandle hFile,
+ byte[] lpBuffer,
+ int nNumberOfBytesToRead,
+ out int lpNumberOfBytesRead,
+ IntPtr lpOverlapped
);
+ // [Xamarin] Output redirection.
[
DllImport (Kernel32LibraryName, CharSet = CharSet.Auto, SetLastError = true)
]
@@ -1236,7 +670,7 @@ namespace Microsoft.Samples.Debugging.CorDebug
// CorEvent Classes & Corresponding delegates
//
////////////////////////////////////////////////////////////////////////////////
-
+
/**
* All of the Debugger events make a Controller available (to specify
* whether or not to continue the program, or to stop, etc.).
@@ -1248,22 +682,33 @@ namespace Microsoft.Samples.Debugging.CorDebug
* <b>Continue</b> property to <b>false</b>.
*/
- public class CorEventArgs : EventArgs
+ public class CorEventArgs : EventArgs
{
private CorController m_controller;
private bool m_continue;
- public CorEventArgs (CorController controller)
+ private ManagedCallbackType m_callbackType;
+
+ private CorThread m_thread;
+
+ public CorEventArgs(CorController controller)
{
m_controller = controller;
m_continue = true;
}
+ public CorEventArgs(CorController controller, ManagedCallbackType callbackType)
+ {
+ m_controller = controller;
+ m_continue = true;
+ m_callbackType = callbackType;
+ }
+
/** The Controller of the current event. */
- public CorController Controller
+ public CorController Controller
{
- get
+ get
{
return m_controller;
}
@@ -1276,15 +721,43 @@ namespace Microsoft.Samples.Debugging.CorDebug
*/
public virtual bool Continue
{
- get
+ get
{
return m_continue;
}
- set
+ set
{
m_continue = value;
}
}
+
+ /// <summary>
+ /// The type of callback that returned this CorEventArgs object.
+ /// </summary>
+ public ManagedCallbackType CallbackType
+ {
+ get
+ {
+ return m_callbackType;
+ }
+ }
+
+ /// <summary>
+ /// The CorThread associated with the callback event that returned
+ /// this CorEventArgs object. If here is no such thread, Thread is null.
+ /// </summary>
+ public CorThread Thread
+ {
+ get
+ {
+ return m_thread;
+ }
+ protected set
+ {
+ m_thread = value;
+ }
+ }
+
}
@@ -1294,22 +767,41 @@ namespace Microsoft.Samples.Debugging.CorDebug
*/
public class CorProcessEventArgs : CorEventArgs
{
- public CorProcessEventArgs (CorProcess process)
- : base (process)
+ public CorProcessEventArgs(CorProcess process)
+ : base(process)
+ {
+ }
+
+ public CorProcessEventArgs(CorProcess process, ManagedCallbackType callbackType)
+ : base(process, callbackType)
{
}
/** The process that generated the event. */
public CorProcess Process
{
- get
+ get
{
- return (CorProcess) Controller;
+ return (CorProcess)Controller;
}
}
+
+ public override string ToString()
+ {
+ switch (CallbackType)
+ {
+ case ManagedCallbackType.OnCreateProcess:
+ return "Process Created";
+ case ManagedCallbackType.OnProcessExit:
+ return "Process Exited";
+ case ManagedCallbackType.OnControlCTrap:
+ break;
+ }
+ return base.ToString();
+ }
}
- public delegate void CorProcessEventHandler (Object sender,
+ public delegate void CorProcessEventHandler(Object sender,
CorProcessEventArgs e);
@@ -1321,8 +813,15 @@ namespace Microsoft.Samples.Debugging.CorDebug
{
private CorAppDomain m_ad;
- public CorAppDomainEventArgs (CorProcess process, CorAppDomain ad)
- : base (process)
+ public CorAppDomainEventArgs(CorProcess process, CorAppDomain ad)
+ : base(process)
+ {
+ m_ad = ad;
+ }
+
+ public CorAppDomainEventArgs(CorProcess process, CorAppDomain ad,
+ ManagedCallbackType callbackType)
+ : base(process, callbackType)
{
m_ad = ad;
}
@@ -1330,33 +829,50 @@ namespace Microsoft.Samples.Debugging.CorDebug
/** The AppDomain that generated the event. */
public CorAppDomain AppDomain
{
- get
+ get
{
return m_ad;
}
}
+
+ public override string ToString()
+ {
+ switch (CallbackType)
+ {
+ case ManagedCallbackType.OnCreateAppDomain:
+ return "AppDomain Created: " + m_ad.Name;
+ case ManagedCallbackType.OnAppDomainExit:
+ return "AppDomain Exited: " + m_ad.Name;
+ }
+ return base.ToString();
+ }
}
- public delegate void CorAppDomainEventHandler (Object sender,
+ public delegate void CorAppDomainEventHandler(Object sender,
CorAppDomainEventArgs e);
-
+
/**
* The base class for events which take an CorAppDomain as their
* source, but not a CorProcess.
*/
public class CorAppDomainBaseEventArgs : CorEventArgs
{
- public CorAppDomainBaseEventArgs (CorAppDomain ad)
- : base (ad)
+ public CorAppDomainBaseEventArgs(CorAppDomain ad)
+ : base(ad)
+ {
+ }
+
+ public CorAppDomainBaseEventArgs(CorAppDomain ad, ManagedCallbackType callbackType)
+ : base(ad, callbackType)
{
}
public CorAppDomain AppDomain
{
- get
+ get
{
- return (CorAppDomain) Controller;
+ return (CorAppDomain)Controller;
}
}
}
@@ -1367,25 +883,37 @@ namespace Microsoft.Samples.Debugging.CorDebug
*/
public class CorThreadEventArgs : CorAppDomainBaseEventArgs
{
- private CorThread m_thread;
+ public CorThreadEventArgs(CorAppDomain appDomain, CorThread thread)
+ : base(appDomain != null ? appDomain : thread.AppDomain)
+ {
+ Thread = thread;
+ }
- public CorThreadEventArgs (CorAppDomain appDomain, CorThread thread)
- : base (appDomain!=null?appDomain:thread.AppDomain)
+ public CorThreadEventArgs(CorAppDomain appDomain, CorThread thread,
+ ManagedCallbackType callbackType)
+ : base(appDomain != null ? appDomain : thread.AppDomain, callbackType)
{
- m_thread = thread;
+ Thread = thread;
}
- /** The CorThread of interest. */
- public CorThread Thread
+ public override string ToString()
{
- get
+ switch (CallbackType)
{
- return m_thread;
+ case ManagedCallbackType.OnBreak:
+ return "Break";
+ case ManagedCallbackType.OnCreateThread:
+ return "Thread Created";
+ case ManagedCallbackType.OnThreadExit:
+ return "Thread Exited";
+ case ManagedCallbackType.OnNameChange:
+ return "Name Changed";
}
+ return base.ToString();
}
}
- public delegate void CorThreadEventHandler (Object sender,
+ public delegate void CorThreadEventHandler(Object sender,
CorThreadEventArgs e);
@@ -1396,10 +924,19 @@ namespace Microsoft.Samples.Debugging.CorDebug
{
private CorBreakpoint m_break;
- public CorBreakpointEventArgs (CorAppDomain appDomain,
- CorThread thread,
+ public CorBreakpointEventArgs(CorAppDomain appDomain,
+ CorThread thread,
CorBreakpoint managedBreakpoint)
- : base (appDomain, thread)
+ : base(appDomain, thread)
+ {
+ m_break = managedBreakpoint;
+ }
+
+ public CorBreakpointEventArgs(CorAppDomain appDomain,
+ CorThread thread,
+ CorBreakpoint managedBreakpoint,
+ ManagedCallbackType callbackType)
+ : base(appDomain, thread, callbackType)
{
m_break = managedBreakpoint;
}
@@ -1407,14 +944,23 @@ namespace Microsoft.Samples.Debugging.CorDebug
/** The breakpoint involved. */
public CorBreakpoint Breakpoint
{
- get
+ get
{
return m_break;
}
}
+
+ public override string ToString()
+ {
+ if (CallbackType == ManagedCallbackType.OnBreakpoint)
+ {
+ return "Breakpoint Hit";
+ }
+ return base.ToString();
+ }
}
- public delegate void BreakpointEventHandler (Object sender,
+ public delegate void BreakpointEventHandler(Object sender,
CorBreakpointEventArgs e);
@@ -1423,13 +969,23 @@ namespace Microsoft.Samples.Debugging.CorDebug
*/
public class CorStepCompleteEventArgs : CorThreadEventArgs
{
- private CorStepper m_stepper;
- private CorDebugStepReason m_stepReason;
+ private CorStepper m_stepper;
+ private CorDebugStepReason m_stepReason;
[CLSCompliant(false)]
- public CorStepCompleteEventArgs (CorAppDomain appDomain, CorThread thread,
+ public CorStepCompleteEventArgs(CorAppDomain appDomain, CorThread thread,
CorStepper stepper, CorDebugStepReason stepReason)
- : base (appDomain, thread)
+ : base(appDomain, thread)
+ {
+ m_stepper = stepper;
+ m_stepReason = stepReason;
+ }
+
+ [CLSCompliant(false)]
+ public CorStepCompleteEventArgs(CorAppDomain appDomain, CorThread thread,
+ CorStepper stepper, CorDebugStepReason stepReason,
+ ManagedCallbackType callbackType)
+ : base(appDomain, thread, callbackType)
{
m_stepper = stepper;
m_stepReason = stepReason;
@@ -1437,7 +993,7 @@ namespace Microsoft.Samples.Debugging.CorDebug
public CorStepper Stepper
{
- get
+ get
{
return m_stepper;
}
@@ -1446,14 +1002,23 @@ namespace Microsoft.Samples.Debugging.CorDebug
[CLSCompliant(false)]
public CorDebugStepReason StepReason
{
- get
+ get
{
return m_stepReason;
}
}
+
+ public override string ToString()
+ {
+ if (CallbackType == ManagedCallbackType.OnStepComplete)
+ {
+ return "Step Complete";
+ }
+ return base.ToString();
+ }
}
- public delegate void StepCompleteEventHandler (Object sender,
+ public delegate void StepCompleteEventHandler(Object sender,
CorStepCompleteEventArgs e);
@@ -1462,12 +1027,21 @@ namespace Microsoft.Samples.Debugging.CorDebug
*/
public class CorExceptionEventArgs : CorThreadEventArgs
{
- bool m_unhandled;
+ bool m_unhandled;
- public CorExceptionEventArgs (CorAppDomain appDomain,
- CorThread thread,
+ public CorExceptionEventArgs(CorAppDomain appDomain,
+ CorThread thread,
bool unhandled)
- : base (appDomain, thread)
+ : base(appDomain, thread)
+ {
+ m_unhandled = unhandled;
+ }
+
+ public CorExceptionEventArgs(CorAppDomain appDomain,
+ CorThread thread,
+ bool unhandled,
+ ManagedCallbackType callbackType)
+ : base(appDomain, thread, callbackType)
{
m_unhandled = unhandled;
}
@@ -1475,14 +1049,14 @@ namespace Microsoft.Samples.Debugging.CorDebug
/** Has the exception been handled yet? */
public bool Unhandled
{
- get
+ get
{
return m_unhandled;
}
}
}
- public delegate void CorExceptionEventHandler (Object sender,
+ public delegate void CorExceptionEventHandler(Object sender,
CorExceptionEventArgs e);
@@ -1493,24 +1067,43 @@ namespace Microsoft.Samples.Debugging.CorDebug
{
CorEval m_eval;
- public CorEvalEventArgs (CorAppDomain appDomain, CorThread thread,
+ public CorEvalEventArgs(CorAppDomain appDomain, CorThread thread,
CorEval eval)
- : base (appDomain, thread)
+ : base(appDomain, thread)
+ {
+ m_eval = eval;
+ }
+
+ public CorEvalEventArgs(CorAppDomain appDomain, CorThread thread,
+ CorEval eval, ManagedCallbackType callbackType)
+ : base(appDomain, thread, callbackType)
{
m_eval = eval;
}
/** The object being evaluated. */
- public CorEval Eval
+ public CorEval Eval
{
- get
+ get
{
return m_eval;
}
}
+
+ public override string ToString()
+ {
+ switch (CallbackType)
+ {
+ case ManagedCallbackType.OnEvalComplete:
+ return "Eval Complete";
+ case ManagedCallbackType.OnEvalException:
+ return "Eval Exception";
+ }
+ return base.ToString();
+ }
}
- public delegate void EvalEventHandler (Object sender, CorEvalEventArgs e);
+ public delegate void EvalEventHandler(Object sender, CorEvalEventArgs e);
/**
@@ -1520,22 +1113,41 @@ namespace Microsoft.Samples.Debugging.CorDebug
{
CorModule m_managedModule;
- public CorModuleEventArgs (CorAppDomain appDomain, CorModule managedModule)
- : base (appDomain)
+ public CorModuleEventArgs(CorAppDomain appDomain, CorModule managedModule)
+ : base(appDomain)
{
m_managedModule = managedModule;
}
- public CorModule Module
+ public CorModuleEventArgs(CorAppDomain appDomain, CorModule managedModule,
+ ManagedCallbackType callbackType)
+ : base(appDomain, callbackType)
{
- get
+ m_managedModule = managedModule;
+ }
+
+ public CorModule Module
+ {
+ get
{
return m_managedModule;
}
}
+
+ public override string ToString()
+ {
+ switch (CallbackType)
+ {
+ case ManagedCallbackType.OnModuleLoad:
+ return "Module loaded: " + m_managedModule.Name;
+ case ManagedCallbackType.OnModuleUnload:
+ return "Module unloaded: " + m_managedModule.Name;
+ }
+ return base.ToString();
+ }
}
- public delegate void CorModuleEventHandler (Object sender,
+ public delegate void CorModuleEventHandler(Object sender,
CorModuleEventArgs e);
@@ -1546,44 +1158,71 @@ namespace Microsoft.Samples.Debugging.CorDebug
{
CorClass m_class;
- public CorClassEventArgs (CorAppDomain appDomain, CorClass managedClass)
- : base (appDomain)
+ public CorClassEventArgs(CorAppDomain appDomain, CorClass managedClass)
+ : base(appDomain)
{
m_class = managedClass;
}
- public CorClass Class
+ public CorClassEventArgs(CorAppDomain appDomain, CorClass managedClass,
+ ManagedCallbackType callbackType)
+ : base(appDomain, callbackType)
{
- get
+ m_class = managedClass;
+ }
+
+ public CorClass Class
+ {
+ get
{
return m_class;
}
}
+
+ public override string ToString()
+ {
+ switch (CallbackType)
+ {
+ case ManagedCallbackType.OnClassLoad:
+ return "Class loaded: " + m_class;
+ case ManagedCallbackType.OnClassUnload:
+ return "Class unloaded: " + m_class;
+ }
+ return base.ToString();
+ }
}
- public delegate void CorClassEventHandler (Object sender,
+ public delegate void CorClassEventHandler(Object sender,
CorClassEventArgs e);
-
+
/**
* For events dealing with debugger errors.
*/
public class CorDebuggerErrorEventArgs : CorProcessEventArgs
{
- int m_hresult;
- int m_errorCode;
+ int m_hresult;
+ int m_errorCode;
- public CorDebuggerErrorEventArgs (CorProcess process, int hresult,
+ public CorDebuggerErrorEventArgs(CorProcess process, int hresult,
int errorCode)
- : base (process)
+ : base(process)
{
m_hresult = hresult;
m_errorCode = errorCode;
}
-
- public int HResult
+
+ public CorDebuggerErrorEventArgs(CorProcess process, int hresult,
+ int errorCode, ManagedCallbackType callbackType)
+ : base(process, callbackType)
+ {
+ m_hresult = hresult;
+ m_errorCode = errorCode;
+ }
+
+ public int HResult
{
- get
+ get
{
return m_hresult;
}
@@ -1591,14 +1230,23 @@ namespace Microsoft.Samples.Debugging.CorDebug
public int ErrorCode
{
- get
+ get
{
return m_errorCode;
}
}
+
+ public override string ToString()
+ {
+ if (CallbackType == ManagedCallbackType.OnDebuggerError)
+ {
+ return "Debugger Error";
+ }
+ return base.ToString();
+ }
}
- public delegate void DebuggerErrorEventHandler (Object sender,
+ public delegate void DebuggerErrorEventHandler(Object sender,
CorDebuggerErrorEventArgs e);
@@ -1608,9 +1256,16 @@ namespace Microsoft.Samples.Debugging.CorDebug
public class CorAssemblyEventArgs : CorAppDomainBaseEventArgs
{
private CorAssembly m_assembly;
- public CorAssemblyEventArgs (CorAppDomain appDomain,
+ public CorAssemblyEventArgs(CorAppDomain appDomain,
CorAssembly assembly)
- : base (appDomain)
+ : base(appDomain)
+ {
+ m_assembly = assembly;
+ }
+
+ public CorAssemblyEventArgs(CorAppDomain appDomain,
+ CorAssembly assembly, ManagedCallbackType callbackType)
+ : base(appDomain, callbackType)
{
m_assembly = assembly;
}
@@ -1618,14 +1273,26 @@ namespace Microsoft.Samples.Debugging.CorDebug
/** The Assembly of interest. */
public CorAssembly Assembly
{
- get
+ get
{
return m_assembly;
}
}
+
+ public override string ToString()
+ {
+ switch (CallbackType)
+ {
+ case ManagedCallbackType.OnAssemblyLoad:
+ return "Assembly loaded: " + m_assembly.Name;
+ case ManagedCallbackType.OnAssemblyUnload:
+ return "Assembly unloaded: " + m_assembly.Name;
+ }
+ return base.ToString();
+ }
}
- public delegate void CorAssemblyEventHandler (Object sender,
+ public delegate void CorAssemblyEventHandler(Object sender,
CorAssemblyEventArgs e);
@@ -1638,26 +1305,36 @@ namespace Microsoft.Samples.Debugging.CorDebug
string m_logSwitchName;
string m_message;
- public CorLogMessageEventArgs (CorAppDomain appDomain, CorThread thread,
+ public CorLogMessageEventArgs(CorAppDomain appDomain, CorThread thread,
int level, string logSwitchName, string message)
- : base (appDomain, thread)
+ : base(appDomain, thread)
+ {
+ m_level = level;
+ m_logSwitchName = logSwitchName;
+ m_message = message;
+ }
+
+ public CorLogMessageEventArgs(CorAppDomain appDomain, CorThread thread,
+ int level, string logSwitchName, string message,
+ ManagedCallbackType callbackType)
+ : base(appDomain, thread, callbackType)
{
m_level = level;
m_logSwitchName = logSwitchName;
m_message = message;
}
- public int Level
+ public int Level
{
- get
+ get
{
return m_level;
}
}
- public string LogSwitchName
+ public string LogSwitchName
{
- get
+ get
{
return m_logSwitchName;
}
@@ -1665,14 +1342,23 @@ namespace Microsoft.Samples.Debugging.CorDebug
public string Message
{
- get
+ get
{
- return m_message;
+ return m_message;
}
}
+
+ public override string ToString()
+ {
+ if (CallbackType == ManagedCallbackType.OnLogMessage)
+ {
+ return "Log message(" + m_logSwitchName + ")";
+ }
+ return base.ToString();
+ }
}
- public delegate void LogMessageEventHandler (Object sender,
+ public delegate void LogMessageEventHandler(Object sender,
CorLogMessageEventArgs e);
@@ -1689,9 +1375,9 @@ namespace Microsoft.Samples.Debugging.CorDebug
string m_parentName;
- public CorLogSwitchEventArgs (CorAppDomain appDomain, CorThread thread,
+ public CorLogSwitchEventArgs(CorAppDomain appDomain, CorThread thread,
int level, int reason, string logSwitchName, string parentName)
- : base (appDomain, thread)
+ : base(appDomain, thread)
{
m_level = level;
m_reason = reason;
@@ -1699,9 +1385,20 @@ namespace Microsoft.Samples.Debugging.CorDebug
m_parentName = parentName;
}
- public int Level
+ public CorLogSwitchEventArgs(CorAppDomain appDomain, CorThread thread,
+ int level, int reason, string logSwitchName, string parentName,
+ ManagedCallbackType callbackType)
+ : base(appDomain, thread, callbackType)
{
- get
+ m_level = level;
+ m_reason = reason;
+ m_logSwitchName = logSwitchName;
+ m_parentName = parentName;
+ }
+
+ public int Level
+ {
+ get
{
return m_level;
}
@@ -1709,15 +1406,15 @@ namespace Microsoft.Samples.Debugging.CorDebug
public int Reason
{
- get
+ get
{
return m_reason;
}
}
- public string LogSwitchName
+ public string LogSwitchName
{
- get
+ get
{
return m_logSwitchName;
}
@@ -1725,43 +1422,70 @@ namespace Microsoft.Samples.Debugging.CorDebug
public string ParentName
{
- get
+ get
+ {
+ return m_parentName;
+ }
+ }
+
+ public override string ToString()
+ {
+ if (CallbackType == ManagedCallbackType.OnLogSwitch)
{
- return m_parentName;
+ return "Log Switch" + "\n" +
+ "Level: " + m_level + "\n" +
+ "Log Switch Name: " + m_logSwitchName;
}
+ return base.ToString();
}
}
- public delegate void LogSwitchEventHandler (Object sender,
+ public delegate void LogSwitchEventHandler(Object sender,
CorLogSwitchEventArgs e);
- /**
- * For events dealing with MDA messages.
- */
- public class CorMDAEventArgs : CorProcessEventArgs
+ /**
+ * For events dealing with MDA messages.
+ */
+ public class CorMDAEventArgs : CorProcessEventArgs
{
// Thread may be null.
- public CorMDAEventArgs (CorMDA mda, CorThread thread, CorProcess proc)
- : base (proc)
- {
- m_mda = mda;
- m_thread = thread;
- //m_proc = proc;
- }
+ public CorMDAEventArgs(CorMDA mda, CorThread thread, CorProcess proc)
+ : base(proc)
+ {
+ m_mda = mda;
+ Thread = thread;
+ //m_proc = proc;
+ }
+
+ public CorMDAEventArgs(CorMDA mda, CorThread thread, CorProcess proc,
+ ManagedCallbackType callbackType)
+ : base(proc, callbackType)
+ {
+ m_mda = mda;
+ Thread = thread;
+ //m_proc = proc;
+ }
CorMDA m_mda;
public CorMDA MDA { get { return m_mda; } }
-
- CorThread m_thread;
- public CorThread Thread { get {return m_thread; } }
-
+
+ public override string ToString()
+ {
+ if (CallbackType == ManagedCallbackType.OnMDANotification)
+ {
+ return "MDANotification" + "\n" +
+ "Name=" + m_mda.Name + "\n" +
+ "XML=" + m_mda.XML;
+ }
+ return base.ToString();
+ }
+
//CorProcess m_proc;
//CorProcess Process { get { return m_proc; } }
}
- public delegate void MDANotificationEventHandler (Object sender,
- CorMDAEventArgs e);
+ public delegate void MDANotificationEventHandler(Object sender, CorMDAEventArgs e);
@@ -1770,68 +1494,79 @@ namespace Microsoft.Samples.Debugging.CorDebug
*/
public class CorUpdateModuleSymbolsEventArgs : CorModuleEventArgs
{
-#if MDBG_FAKE_COM
- IntPtr m_stream;
+ IStream m_stream;
[CLSCompliant(false)]
- public CorUpdateModuleSymbolsEventArgs (CorAppDomain appDomain,
- CorModule managedModule,
- IntPtr stream)
- : base (appDomain, managedModule)
+ public CorUpdateModuleSymbolsEventArgs(CorAppDomain appDomain,
+ CorModule managedModule,
+ IStream stream)
+ : base(appDomain, managedModule)
{
- m_stream = stream ;
+ m_stream = stream;
}
[CLSCompliant(false)]
- public IntPtr Stream
+ public CorUpdateModuleSymbolsEventArgs(CorAppDomain appDomain,
+ CorModule managedModule,
+ IStream stream,
+ ManagedCallbackType callbackType)
+ : base(appDomain, managedModule, callbackType)
{
- get
- {
- return m_stream;
- }
+ m_stream = stream;
}
-
-#else
- IStream m_stream;
-
[CLSCompliant(false)]
- public CorUpdateModuleSymbolsEventArgs (CorAppDomain appDomain,
- CorModule managedModule,
- IStream stream)
- : base (appDomain, managedModule)
+ public IStream Stream
{
- m_stream = stream ;
+ get
+ {
+ return m_stream;
+ }
}
- [CLSCompliant(false)]
- public IStream Stream
+ public override string ToString()
{
- get
+ if (CallbackType == ManagedCallbackType.OnUpdateModuleSymbols)
{
- return m_stream;
+ return "Module Symbols Updated";
}
+ return base.ToString();
}
-#endif
}
- public delegate void UpdateModuleSymbolsEventHandler (Object sender,
+ public delegate void UpdateModuleSymbolsEventHandler(Object sender,
CorUpdateModuleSymbolsEventArgs e);
- public sealed class CorExceptionInCallbackEventArgs: CorEventArgs
+ public sealed class CorExceptionInCallbackEventArgs : CorEventArgs
{
- public CorExceptionInCallbackEventArgs(CorController controller,Exception exceptionThrown)
+ public CorExceptionInCallbackEventArgs(CorController controller, Exception exceptionThrown)
: base(controller)
{
m_exceptionThrown = exceptionThrown;
}
+ public CorExceptionInCallbackEventArgs(CorController controller, Exception exceptionThrown,
+ ManagedCallbackType callbackType)
+ : base(controller, callbackType)
+ {
+ m_exceptionThrown = exceptionThrown;
+ }
+
public Exception ExceptionThrown
- {
- get
- {
- return m_exceptionThrown;
- }
+ {
+ get
+ {
+ return m_exceptionThrown;
+ }
+ }
+
+ public override string ToString()
+ {
+ if (CallbackType == ManagedCallbackType.OnExceptionInCallback)
+ {
+ return "Callback Exception: " + m_exceptionThrown.Message;
+ }
+ return base.ToString();
}
private Exception m_exceptionThrown;
@@ -1846,19 +1581,30 @@ namespace Microsoft.Samples.Debugging.CorDebug
*/
public class CorEditAndContinueRemapEventArgs : CorThreadEventArgs
{
- public CorEditAndContinueRemapEventArgs (CorAppDomain appDomain,
+ public CorEditAndContinueRemapEventArgs(CorAppDomain appDomain,
+ CorThread thread,
+ CorFunction managedFunction,
+ int accurate)
+ : base(appDomain, thread)
+ {
+ m_managedFunction = managedFunction;
+ m_accurate = accurate;
+ }
+
+ public CorEditAndContinueRemapEventArgs(CorAppDomain appDomain,
CorThread thread,
CorFunction managedFunction,
- int acccurate)
- : base (appDomain, thread)
+ int accurate,
+ ManagedCallbackType callbackType)
+ : base(appDomain, thread, callbackType)
{
- m_managedFunction = managedFunction ;
- m_accurate = acccurate;
+ m_managedFunction = managedFunction;
+ m_accurate = accurate;
}
public CorFunction Function
{
- get
+ get
{
return m_managedFunction;
}
@@ -1866,34 +1612,45 @@ namespace Microsoft.Samples.Debugging.CorDebug
public bool IsAccurate
{
- get
+ get
{
- return m_accurate!=0;
+ return m_accurate != 0;
}
}
private CorFunction m_managedFunction;
private int m_accurate;
}
- public delegate void CorEditAndContinueRemapEventHandler (Object sender,
+ public delegate void CorEditAndContinueRemapEventHandler(Object sender,
CorEditAndContinueRemapEventArgs e);
-
+
public class CorBreakpointSetErrorEventArgs : CorThreadEventArgs
{
- public CorBreakpointSetErrorEventArgs (CorAppDomain appDomain,
+ public CorBreakpointSetErrorEventArgs(CorAppDomain appDomain,
CorThread thread,
CorBreakpoint breakpoint,
int errorCode)
- : base (appDomain, thread)
+ : base(appDomain, thread)
{
- m_breakpoint = breakpoint ;
- m_errorCode = errorCode ;
+ m_breakpoint = breakpoint;
+ m_errorCode = errorCode;
+ }
+
+ public CorBreakpointSetErrorEventArgs(CorAppDomain appDomain,
+ CorThread thread,
+ CorBreakpoint breakpoint,
+ int errorCode,
+ ManagedCallbackType callbackType)
+ : base(appDomain, thread, callbackType)
+ {
+ m_breakpoint = breakpoint;
+ m_errorCode = errorCode;
}
public CorBreakpoint Breakpoint
{
- get
+ get
{
return m_breakpoint;
}
@@ -1901,28 +1658,51 @@ namespace Microsoft.Samples.Debugging.CorDebug
public int ErrorCode
{
- get
+ get
{
return m_errorCode;
}
}
+ public override string ToString()
+ {
+ if (CallbackType == ManagedCallbackType.OnBreakpointSetError)
+ {
+ return "Error Setting Breakpoint";
+ }
+ return base.ToString();
+ }
+
private CorBreakpoint m_breakpoint;
private int m_errorCode;
}
- public delegate void CorBreakpointSetErrorEventHandler(Object sender,
+ public delegate void CorBreakpointSetErrorEventHandler(Object sender,
CorBreakpointSetErrorEventArgs e);
- public sealed class CorFunctionRemapOpportunityEventArgs: CorThreadEventArgs
+ public sealed class CorFunctionRemapOpportunityEventArgs : CorThreadEventArgs
{
- public CorFunctionRemapOpportunityEventArgs(CorAppDomain appDomain,
+ public CorFunctionRemapOpportunityEventArgs(CorAppDomain appDomain,
CorThread thread,
CorFunction oldFunction,
CorFunction newFunction,
int oldILoffset
)
- : base (appDomain, thread)
+ : base(appDomain, thread)
+ {
+ m_oldFunction = oldFunction;
+ m_newFunction = newFunction;
+ m_oldILoffset = oldILoffset;
+ }
+
+ public CorFunctionRemapOpportunityEventArgs(CorAppDomain appDomain,
+ CorThread thread,
+ CorFunction oldFunction,
+ CorFunction newFunction,
+ int oldILoffset,
+ ManagedCallbackType callbackType
+ )
+ : base(appDomain, thread, callbackType)
{
m_oldFunction = oldFunction;
m_newFunction = newFunction;
@@ -1931,7 +1711,7 @@ namespace Microsoft.Samples.Debugging.CorDebug
public CorFunction OldFunction
{
- get
+ get
{
return m_oldFunction;
}
@@ -1939,7 +1719,7 @@ namespace Microsoft.Samples.Debugging.CorDebug
public CorFunction NewFunction
{
- get
+ get
{
return m_newFunction;
}
@@ -1947,33 +1727,52 @@ namespace Microsoft.Samples.Debugging.CorDebug
public int OldILOffset
{
- get
+ get
{
return m_oldILoffset;
}
}
-
- private CorFunction m_oldFunction,m_newFunction;
+
+ public override string ToString()
+ {
+ if (CallbackType == ManagedCallbackType.OnFunctionRemapOpportunity)
+ {
+ return "Function Remap Opportunity";
+ }
+ return base.ToString();
+ }
+
+ private CorFunction m_oldFunction, m_newFunction;
private int m_oldILoffset;
}
public delegate void CorFunctionRemapOpportunityEventHandler(Object sender,
CorFunctionRemapOpportunityEventArgs e);
- public sealed class CorFunctionRemapCompleteEventArgs: CorThreadEventArgs
+ public sealed class CorFunctionRemapCompleteEventArgs : CorThreadEventArgs
{
- public CorFunctionRemapCompleteEventArgs(CorAppDomain appDomain,
+ public CorFunctionRemapCompleteEventArgs(CorAppDomain appDomain,
CorThread thread,
CorFunction managedFunction
)
- : base (appDomain, thread)
+ : base(appDomain, thread)
+ {
+ m_managedFunction = managedFunction;
+ }
+
+ public CorFunctionRemapCompleteEventArgs(CorAppDomain appDomain,
+ CorThread thread,
+ CorFunction managedFunction,
+ ManagedCallbackType callbackType
+ )
+ : base(appDomain, thread, callbackType)
{
m_managedFunction = managedFunction;
}
public CorFunction Function
{
- get
+ get
{
return m_managedFunction;
}
@@ -1988,53 +1787,90 @@ namespace Microsoft.Samples.Debugging.CorDebug
public class CorExceptionUnwind2EventArgs : CorThreadEventArgs
{
-
+
[CLSCompliant(false)]
public CorExceptionUnwind2EventArgs(CorAppDomain appDomain, CorThread thread,
CorDebugExceptionUnwindCallbackType eventType,
int flags)
- : base (appDomain, thread)
+ : base(appDomain, thread)
{
m_eventType = eventType;
m_flags = flags;
}
-
+
+ [CLSCompliant(false)]
+ public CorExceptionUnwind2EventArgs(CorAppDomain appDomain, CorThread thread,
+ CorDebugExceptionUnwindCallbackType eventType,
+ int flags,
+ ManagedCallbackType callbackType)
+ : base(appDomain, thread, callbackType)
+ {
+ m_eventType = eventType;
+ m_flags = flags;
+ }
+
[CLSCompliant(false)]
public CorDebugExceptionUnwindCallbackType EventType
- {
- get
- {
- return m_eventType;
+ {
+ get
+ {
+ return m_eventType;
}
}
public int Flags
- {
- get
- {
- return m_flags;
- }
+ {
+ get
+ {
+ return m_flags;
+ }
+ }
+
+ public override string ToString()
+ {
+ if (CallbackType == ManagedCallbackType.OnExceptionUnwind2)
+ {
+ return "Exception unwind\n" +
+ "EventType: " + m_eventType;
+ }
+ return base.ToString();
}
CorDebugExceptionUnwindCallbackType m_eventType;
int m_flags;
}
- public delegate void CorExceptionUnwind2EventHandler (Object sender,
+ public delegate void CorExceptionUnwind2EventHandler(Object sender,
CorExceptionUnwind2EventArgs e);
public class CorException2EventArgs : CorThreadEventArgs
{
-
+
[CLSCompliant(false)]
- public CorException2EventArgs(CorAppDomain appDomain,
+ public CorException2EventArgs(CorAppDomain appDomain,
CorThread thread,
- CorFrame frame,
+ CorFrame frame,
int offset,
CorDebugExceptionCallbackType eventType,
int flags)
- : base (appDomain, thread)
+ : base(appDomain, thread)
+ {
+ m_frame = frame;
+ m_offset = offset;
+ m_eventType = eventType;
+ m_flags = flags;
+ }
+
+ [CLSCompliant(false)]
+ public CorException2EventArgs(CorAppDomain appDomain,
+ CorThread thread,
+ CorFrame frame,
+ int offset,
+ CorDebugExceptionCallbackType eventType,
+ int flags,
+ ManagedCallbackType callbackType)
+ : base(appDomain, thread, callbackType)
{
m_frame = frame;
m_offset = offset;
@@ -2044,35 +1880,44 @@ namespace Microsoft.Samples.Debugging.CorDebug
public CorFrame Frame
{
- get
+ get
{
return m_frame;
}
}
public int Offset
- {
- get
- {
- return m_offset;
- }
+ {
+ get
+ {
+ return m_offset;
+ }
}
[CLSCompliant(false)]
public CorDebugExceptionCallbackType EventType
- {
- get
- {
- return m_eventType;
- }
+ {
+ get
+ {
+ return m_eventType;
+ }
}
public int Flags
- {
- get
- {
- return m_flags;
- }
+ {
+ get
+ {
+ return m_flags;
+ }
+ }
+
+ public override string ToString()
+ {
+ if (CallbackType == ManagedCallbackType.OnException2)
+ {
+ return "Exception Thrown";
+ }
+ return base.ToString();
}
CorFrame m_frame;
@@ -2081,75 +1926,9 @@ namespace Microsoft.Samples.Debugging.CorDebug
int m_flags;
}
- public delegate void CorException2EventHandler (Object sender,
+ public delegate void CorException2EventHandler(Object sender,
CorException2EventArgs e);
-#if MDBG_FEATURE_INTEROP
- public class CorNativeStopEventArgs : CorProcessEventArgs
- {
- [CLSCompliant(false)]
- public CorNativeStopEventArgs(CorProcess process,
- int threadId,
- DEBUG_EVENT debugEvent,
- bool isOutOfBand)
- : base (process)
- {
- m_threadId = threadId;
- m_debugEvent = debugEvent;
- m_isOutOfBand = isOutOfBand;
- }
-
- public int ThreadId
- {
- get
- {
- return m_threadId;
- }
- }
-
- public bool IsOutOfBand
- {
- get
- {
- return m_isOutOfBand;
- }
- }
-
- [CLSCompliant(false)]
- public DEBUG_EVENT DebugEvent
- {
- get
- {
- return m_debugEvent;
- }
- }
-
- public override bool Continue
- {
- get
- {
- // we should not be able to change default for OOB events
- return base.Continue;
- }
- set
- {
- if(m_isOutOfBand && (value == false))
- {
- Debug.Assert(false,"Cannot stop on OOB events");
- throw new InvalidOperationException("Cannot stop on OOB events");
- }
- base.Continue = value;
- }
- }
-
- private int m_threadId;
- private DEBUG_EVENT m_debugEvent;
- private bool m_isOutOfBand;
- }
-
- public delegate void CorNativeStopEventHandler (Object sender,
- CorNativeStopEventArgs e);
-#endif
public enum ManagedCallbackType
{
@@ -2182,9 +1961,6 @@ namespace Microsoft.Samples.Debugging.CorDebug
OnBreakpointSetError,
OnException2,
OnExceptionUnwind2,
-#if MDBG_FEATURE_INTEROP
- OnNativeStop,
-#endif
OnMDANotification,
OnExceptionInCallback,
}
@@ -2193,6 +1969,7 @@ namespace Microsoft.Samples.Debugging.CorDebug
Last = ManagedCallbackType.OnExceptionInCallback,
}
+ // [Xamarin] Output redirection.
public class CorTargetOutputEventArgs: EventArgs
{
public CorTargetOutputEventArgs (string text, bool isStdError)
@@ -2205,6 +1982,402 @@ namespace Microsoft.Samples.Debugging.CorDebug
public bool IsStdError { get; set; }
}
+ // [Xamarin] Output redirection.
public delegate void CorTargetOutputEventHandler (Object sender, CorTargetOutputEventArgs e);
+ // Helper class to convert from COM-classic callback interface into managed args.
+ // Derived classes can overide the HandleEvent method to define the handling.
+ abstract public class ManagedCallbackBase : ICorDebugManagedCallback, ICorDebugManagedCallback2
+ {
+ // Derived class overrides this methdos
+ protected abstract void HandleEvent(ManagedCallbackType eventId, CorEventArgs args);
+
+ void ICorDebugManagedCallback.Breakpoint(ICorDebugAppDomain appDomain,
+ ICorDebugThread thread,
+ ICorDebugBreakpoint breakpoint)
+ {
+ HandleEvent(ManagedCallbackType.OnBreakpoint,
+ new CorBreakpointEventArgs(appDomain == null ? null : new CorAppDomain(appDomain),
+ thread == null ? null : new CorThread(thread),
+ breakpoint == null ? null : new CorFunctionBreakpoint((ICorDebugFunctionBreakpoint)breakpoint),
+ ManagedCallbackType.OnBreakpoint
+ ));
+ }
+
+ void ICorDebugManagedCallback.StepComplete(ICorDebugAppDomain appDomain,
+ ICorDebugThread thread,
+ ICorDebugStepper stepper,
+ CorDebugStepReason stepReason)
+ {
+ HandleEvent(ManagedCallbackType.OnStepComplete,
+ new CorStepCompleteEventArgs(appDomain == null ? null : new CorAppDomain(appDomain),
+ thread == null ? null : new CorThread(thread),
+ stepper == null ? null : new CorStepper(stepper),
+ stepReason,
+ ManagedCallbackType.OnStepComplete));
+ }
+
+ void ICorDebugManagedCallback.Break(
+ ICorDebugAppDomain appDomain,
+ ICorDebugThread thread)
+ {
+ HandleEvent(ManagedCallbackType.OnBreak,
+ new CorThreadEventArgs(appDomain == null ? null : new CorAppDomain(appDomain),
+ thread == null ? null : new CorThread(thread),
+ ManagedCallbackType.OnBreak));
+ }
+
+ void ICorDebugManagedCallback.Exception(
+ ICorDebugAppDomain appDomain,
+ ICorDebugThread thread,
+ int unhandled)
+ {
+ HandleEvent(ManagedCallbackType.OnException,
+ new CorExceptionEventArgs(appDomain == null ? null : new CorAppDomain(appDomain),
+ thread == null ? null : new CorThread(thread),
+ !(unhandled == 0),
+ ManagedCallbackType.OnException));
+ }
+ /* pass false if ``unhandled'' is 0 -- mapping TRUE to true, etc. */
+
+ void ICorDebugManagedCallback.EvalComplete(
+ ICorDebugAppDomain appDomain,
+ ICorDebugThread thread,
+ ICorDebugEval eval)
+ {
+ HandleEvent(ManagedCallbackType.OnEvalComplete,
+ new CorEvalEventArgs( appDomain == null ? null : new CorAppDomain(appDomain),
+ thread == null ? null : new CorThread(thread),
+ eval == null ? null : new CorEval(eval),
+ ManagedCallbackType.OnEvalComplete));
+ }
+
+ void ICorDebugManagedCallback.EvalException(
+ ICorDebugAppDomain appDomain,
+ ICorDebugThread thread,
+ ICorDebugEval eval)
+ {
+ HandleEvent(ManagedCallbackType.OnEvalException,
+ new CorEvalEventArgs( appDomain == null ? null : new CorAppDomain(appDomain),
+ thread == null ? null : new CorThread(thread),
+ eval == null ? null : new CorEval(eval),
+ ManagedCallbackType.OnEvalException));
+ }
+
+ void ICorDebugManagedCallback.CreateProcess(
+ ICorDebugProcess process)
+ {
+ HandleEvent(ManagedCallbackType.OnCreateProcess,
+ new CorProcessEventArgs( process == null ? null : CorProcess.GetCorProcess(process),
+ ManagedCallbackType.OnCreateProcess));
+ }
+
+ void ICorDebugManagedCallback.ExitProcess(
+ ICorDebugProcess process)
+ {
+ HandleEvent(ManagedCallbackType.OnProcessExit,
+ new CorProcessEventArgs(process == null ? null : CorProcess.GetCorProcess(process),
+ ManagedCallbackType.OnProcessExit));
+ }
+
+ void ICorDebugManagedCallback.CreateThread(
+ ICorDebugAppDomain appDomain,
+ ICorDebugThread thread)
+ {
+ HandleEvent(ManagedCallbackType.OnCreateThread,
+ new CorThreadEventArgs( appDomain == null ? null : new CorAppDomain(appDomain),
+ thread == null ? null : new CorThread(thread),
+ ManagedCallbackType.OnCreateThread));
+ }
+
+ void ICorDebugManagedCallback.ExitThread(
+ ICorDebugAppDomain appDomain,
+ ICorDebugThread thread)
+ {
+ HandleEvent(ManagedCallbackType.OnThreadExit,
+ new CorThreadEventArgs( appDomain == null ? null : new CorAppDomain(appDomain),
+ thread == null ? null : new CorThread(thread),
+ ManagedCallbackType.OnThreadExit));
+ }
+
+ void ICorDebugManagedCallback.LoadModule(
+ ICorDebugAppDomain appDomain,
+ ICorDebugModule managedModule)
+ {
+ HandleEvent(ManagedCallbackType.OnModuleLoad,
+ new CorModuleEventArgs( appDomain == null ? null : new CorAppDomain(appDomain),
+ managedModule == null ? null : new CorModule(managedModule),
+ ManagedCallbackType.OnModuleLoad));
+ }
+
+ void ICorDebugManagedCallback.UnloadModule(
+ ICorDebugAppDomain appDomain,
+ ICorDebugModule managedModule)
+ {
+ HandleEvent(ManagedCallbackType.OnModuleUnload,
+ new CorModuleEventArgs( appDomain == null ? null : new CorAppDomain(appDomain),
+ managedModule == null ? null : new CorModule(managedModule),
+ ManagedCallbackType.OnModuleUnload));
+ }
+
+ void ICorDebugManagedCallback.LoadClass(
+ ICorDebugAppDomain appDomain,
+ ICorDebugClass c)
+ {
+ HandleEvent(ManagedCallbackType.OnClassLoad,
+ new CorClassEventArgs(appDomain == null ? null : new CorAppDomain(appDomain),
+ c == null ? null : new CorClass(c),
+ ManagedCallbackType.OnClassLoad));
+ }
+
+ void ICorDebugManagedCallback.UnloadClass(
+ ICorDebugAppDomain appDomain,
+ ICorDebugClass c)
+ {
+ HandleEvent(ManagedCallbackType.OnClassUnload,
+ new CorClassEventArgs( appDomain == null ? null : new CorAppDomain(appDomain),
+ c == null ? null : new CorClass(c),
+ ManagedCallbackType.OnClassUnload));
+ }
+
+ void ICorDebugManagedCallback.DebuggerError(
+ ICorDebugProcess process,
+ int errorHR,
+ uint errorCode)
+ {
+ HandleEvent(ManagedCallbackType.OnDebuggerError,
+ new CorDebuggerErrorEventArgs( process == null ? null : CorProcess.GetCorProcess(process),
+ errorHR,
+ (int)errorCode,
+ ManagedCallbackType.OnDebuggerError));
+ }
+
+ void ICorDebugManagedCallback.LogMessage(
+ ICorDebugAppDomain appDomain,
+ ICorDebugThread thread,
+ int level,
+ string logSwitchName,
+ string message)
+ {
+ HandleEvent(ManagedCallbackType.OnLogMessage,
+ new CorLogMessageEventArgs(appDomain == null ? null : new CorAppDomain(appDomain),
+ thread == null ? null : new CorThread(thread),
+ level, logSwitchName, message,
+ ManagedCallbackType.OnLogMessage));
+ }
+
+ void ICorDebugManagedCallback.LogSwitch(
+ ICorDebugAppDomain appDomain,
+ ICorDebugThread thread,
+ int level,
+ uint reason,
+ string logSwitchName,
+ string parentName)
+ {
+ HandleEvent(ManagedCallbackType.OnLogSwitch,
+ new CorLogSwitchEventArgs( appDomain == null ? null : new CorAppDomain(appDomain),
+ thread == null ? null : new CorThread(thread),
+ level, (int)reason, logSwitchName, parentName,
+ ManagedCallbackType.OnLogSwitch));
+ }
+
+ void ICorDebugManagedCallback.CreateAppDomain(
+ ICorDebugProcess process,
+ ICorDebugAppDomain appDomain)
+ {
+ HandleEvent(ManagedCallbackType.OnCreateAppDomain,
+ new CorAppDomainEventArgs( process == null ? null : CorProcess.GetCorProcess(process),
+ appDomain == null ? null : new CorAppDomain(appDomain),
+ ManagedCallbackType.OnCreateAppDomain));
+ }
+
+ void ICorDebugManagedCallback.ExitAppDomain(
+ ICorDebugProcess process,
+ ICorDebugAppDomain appDomain)
+ {
+ HandleEvent(ManagedCallbackType.OnAppDomainExit,
+ new CorAppDomainEventArgs( process == null ? null : CorProcess.GetCorProcess(process),
+ appDomain == null ? null : new CorAppDomain(appDomain),
+ ManagedCallbackType.OnAppDomainExit));
+ }
+
+ void ICorDebugManagedCallback.LoadAssembly(
+ ICorDebugAppDomain appDomain,
+ ICorDebugAssembly assembly)
+ {
+ HandleEvent(ManagedCallbackType.OnAssemblyLoad,
+ new CorAssemblyEventArgs( appDomain == null ? null : new CorAppDomain(appDomain),
+ assembly == null ? null : new CorAssembly(assembly),
+ ManagedCallbackType.OnAssemblyLoad));
+ }
+
+ void ICorDebugManagedCallback.UnloadAssembly(
+ ICorDebugAppDomain appDomain,
+ ICorDebugAssembly assembly)
+ {
+ HandleEvent(ManagedCallbackType.OnAssemblyUnload,
+ new CorAssemblyEventArgs( appDomain == null ? null : new CorAppDomain(appDomain),
+ assembly == null ? null : new CorAssembly(assembly),
+ ManagedCallbackType.OnAssemblyUnload));
+ }
+
+ void ICorDebugManagedCallback.ControlCTrap(ICorDebugProcess process)
+ {
+ HandleEvent(ManagedCallbackType.OnControlCTrap,
+ new CorProcessEventArgs( process == null ? null : CorProcess.GetCorProcess(process),
+ ManagedCallbackType.OnControlCTrap));
+ }
+
+ void ICorDebugManagedCallback.NameChange(
+ ICorDebugAppDomain appDomain,
+ ICorDebugThread thread)
+ {
+ HandleEvent(ManagedCallbackType.OnNameChange,
+ new CorThreadEventArgs( appDomain == null ? null : new CorAppDomain(appDomain),
+ thread == null ? null : new CorThread(thread),
+ ManagedCallbackType.OnNameChange));
+ }
+
+
+ void ICorDebugManagedCallback.UpdateModuleSymbols(
+ ICorDebugAppDomain appDomain,
+ ICorDebugModule managedModule,
+ IStream stream)
+ {
+ HandleEvent(ManagedCallbackType.OnUpdateModuleSymbols,
+ new CorUpdateModuleSymbolsEventArgs(appDomain == null ? null : new CorAppDomain(appDomain),
+ managedModule == null ? null : new CorModule(managedModule),
+ stream,
+ ManagedCallbackType.OnUpdateModuleSymbols));
+ }
+
+ void ICorDebugManagedCallback.EditAndContinueRemap(
+ ICorDebugAppDomain appDomain,
+ ICorDebugThread thread,
+ ICorDebugFunction managedFunction,
+ int isAccurate)
+ {
+ Debug.Assert(false); //OBSOLETE callback
+ }
+
+
+ void ICorDebugManagedCallback.BreakpointSetError(
+ ICorDebugAppDomain appDomain,
+ ICorDebugThread thread,
+ ICorDebugBreakpoint breakpoint,
+ UInt32 errorCode)
+ {
+ HandleEvent(ManagedCallbackType.OnBreakpointSetError,
+ new CorBreakpointSetErrorEventArgs(appDomain == null ? null : new CorAppDomain(appDomain),
+ thread == null ? null : new CorThread(thread),
+ null,
+ (int)errorCode,
+ ManagedCallbackType.OnBreakpointSetError));
+ }
+
+ void ICorDebugManagedCallback2.FunctionRemapOpportunity(ICorDebugAppDomain appDomain,
+ ICorDebugThread thread,
+ ICorDebugFunction oldFunction,
+ ICorDebugFunction newFunction,
+ uint oldILoffset)
+ {
+ HandleEvent(ManagedCallbackType.OnFunctionRemapOpportunity,
+ new CorFunctionRemapOpportunityEventArgs(appDomain == null ? null : new CorAppDomain(appDomain),
+ thread == null ? null : new CorThread(thread),
+ oldFunction == null ? null : new CorFunction(oldFunction),
+ newFunction == null ? null : new CorFunction(newFunction),
+ (int)oldILoffset,
+ ManagedCallbackType.OnFunctionRemapOpportunity));
+ }
+
+ void ICorDebugManagedCallback2.FunctionRemapComplete(ICorDebugAppDomain appDomain,
+ ICorDebugThread thread,
+ ICorDebugFunction managedFunction)
+ {
+ HandleEvent(ManagedCallbackType.OnFunctionRemapComplete,
+ new CorFunctionRemapCompleteEventArgs(appDomain == null ? null : new CorAppDomain(appDomain),
+ thread == null ? null : new CorThread(thread),
+ managedFunction == null ? null : new CorFunction(managedFunction),
+ ManagedCallbackType.OnFunctionRemapComplete));
+ }
+
+ void ICorDebugManagedCallback2.CreateConnection(ICorDebugProcess process, uint connectionId, ref ushort connectionName)
+ {
+ // Not Implemented
+ Debug.Assert(false);
+ }
+
+ void ICorDebugManagedCallback2.ChangeConnection(ICorDebugProcess process, uint connectionId)
+ {
+ // Not Implemented
+ Debug.Assert(false);
+ }
+
+ void ICorDebugManagedCallback2.DestroyConnection(ICorDebugProcess process, uint connectionId)
+ {
+ // Not Implemented
+ Debug.Assert(false);
+ }
+
+ void ICorDebugManagedCallback2.Exception(ICorDebugAppDomain ad, ICorDebugThread thread,
+ ICorDebugFrame frame, uint offset,
+ CorDebugExceptionCallbackType eventType, uint flags)
+ {
+ HandleEvent(ManagedCallbackType.OnException2,
+ new CorException2EventArgs(ad == null ? null : new CorAppDomain(ad),
+ thread == null ? null : new CorThread(thread),
+ frame == null ? null : new CorFrame(frame),
+ (int)offset,
+ eventType,
+ (int)flags,
+ ManagedCallbackType.OnException2));
+ }
+
+ void ICorDebugManagedCallback2.ExceptionUnwind(ICorDebugAppDomain ad, ICorDebugThread thread,
+ CorDebugExceptionUnwindCallbackType eventType, uint flags)
+ {
+ HandleEvent(ManagedCallbackType.OnExceptionUnwind2,
+ new CorExceptionUnwind2EventArgs(ad == null ? null : new CorAppDomain(ad),
+ thread == null ? null : new CorThread(thread),
+ eventType,
+ (int)flags,
+ ManagedCallbackType.OnExceptionUnwind2));
+ }
+
+ // Get process from controller
+ static private CorProcess GetProcessFromController(ICorDebugController pController)
+ {
+ CorProcess p;
+ ICorDebugProcess p2 = pController as ICorDebugProcess;
+ if (p2 != null)
+ {
+ p = CorProcess.GetCorProcess(p2);
+ }
+ else
+ {
+ ICorDebugAppDomain a2 = (ICorDebugAppDomain)pController;
+ p = new CorAppDomain(a2).Process;
+ }
+ return p;
+ }
+
+ void ICorDebugManagedCallback2.MDANotification(ICorDebugController pController,
+ ICorDebugThread thread,
+ ICorDebugMDA pMDA)
+ {
+ CorMDA c = new CorMDA(pMDA);
+ string szName = c.Name;
+ CorDebugMDAFlags f = c.Flags;
+ CorProcess p = GetProcessFromController(pController);
+
+
+ HandleEvent(ManagedCallbackType.OnMDANotification,
+ new CorMDAEventArgs(c,
+ thread == null ? null : new CorThread(thread),
+ p, ManagedCallbackType.OnMDANotification));
+ }
+
+
+ }
+
} /* namespace */
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/ErrorInfoEnumerator.cs b/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/ErrorInfoEnumerator.cs
index 448c630014..5f373102c6 100644
--- a/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/ErrorInfoEnumerator.cs
+++ b/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/ErrorInfoEnumerator.cs
@@ -19,11 +19,7 @@ namespace Microsoft.Samples.Debugging.CorDebug
{
private ICorDebugErrorInfoEnum m_enum;
-#if CORAPI_SKIP
- private ErrorInfo m_einfo;
-#else
private Object m_einfo;
-#endif
internal CorErrorInfoEnumerator (ICorDebugErrorInfoEnum erroInfoEnumerator)
{
@@ -53,18 +49,7 @@ namespace Microsoft.Samples.Debugging.CorDebug
//
public bool MoveNext ()
{
-#if CORAPI_SKIP
- ICorDebugErrorInfo[] a = new ICorDebugErrorInfo[1];
- uint c = 0;
- int r = m_enum.Next ((uint) a.Length, a, out c);
- if (r==0 && c==1) // S_OK && we got 1 new element
- m_einfo = new ErrorInfo (a[0]);
- else
- m_einfo = null;
- return m_einfo != null;
-#else
return false;
-#endif
}
public void Reset ()
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Eval.cs b/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Eval.cs
index cdba9b8d2e..e34f7c73d4 100644
--- a/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Eval.cs
+++ b/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Eval.cs
@@ -24,16 +24,6 @@ namespace Microsoft.Samples.Debugging.CorDebug
}
-#if CORAPI_EXPOSE_RAW_INTERFACES
- [CLSCompliant(false)]
- public ICorDebugEval Raw
- {
- get
- {
- return m_eval;
- }
- }
-#endif
public void CallFunction (CorFunction managedFunction, CorValue[] arguments)
{
@@ -132,9 +122,6 @@ namespace Microsoft.Samples.Debugging.CorDebug
eval2.NewParameterizedArray(type.m_type, (uint)rank, ref udims, ref ulowBounds);
}
-#if CORAPI_SKIP
- public void NewObject (Function ctor, Value[] args, uint nargs);
-#endif
/** Create an object w/o invoking its constructor. */
public void NewObjectNoContstructor (CorClass c)
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/HResults.cs b/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/HResults.cs
index a65e158eab..3afbad2dbe 100644
--- a/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/HResults.cs
+++ b/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/HResults.cs
@@ -3,7 +3,7 @@
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//---------------------------------------------------------------------
-// <strip>This file is automatically generated. Do not edit manually</strip>
+
namespace Microsoft.Samples.Debugging.CorDebug
{
public enum HResult
@@ -2219,5 +2219,7 @@ namespace Microsoft.Samples.Debugging.CorDebug
PEFMT_E_ENTRYPOINT = unchecked((int)0x80131D08),
PEFMT_E_ZERO_SIZEOFCODE = unchecked((int)0x80131D09),
PEFMT_E_BAD_CORHEADER = unchecked((int)0x80131D0A),
+
+
}
}
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Module.cs b/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Module.cs
index 011590cfd4..dbd89c481b 100644
--- a/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Module.cs
+++ b/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Module.cs
@@ -107,16 +107,6 @@ namespace Microsoft.Samples.Debugging.CorDebug
m_module = managedModule;
}
-#if CORAPI_EXPOSE_RAW_INTERFACES
- [CLSCompliant(false)]
- public ICorDebugModule Raw
- {
- get
- {
- return m_module;
- }
- }
-#endif
/** The process this module is in. */
public CorProcess Process
@@ -156,7 +146,7 @@ namespace Microsoft.Samples.Debugging.CorDebug
{
get
{
- // <strip>@TODO: is this big enough?</strip>
+
char[] name = new Char[300];
uint fetched = 0;
m_module.GetName ((uint) name.Length, out fetched, name);
@@ -220,10 +210,6 @@ namespace Microsoft.Samples.Debugging.CorDebug
return (corFunction==null?null:new CorFunction(corFunction));
}
-#if CORAPI_SKIP
- /** Get the function from the relative address */
- public CorFunction GetFunctionFromRVA (long address);
-#endif
/** get the class from metadata info. */
public CorClass GetClassFromToken (int classToken)
@@ -244,12 +230,6 @@ namespace Microsoft.Samples.Debugging.CorDebug
return new CorModuleBreakpoint (mbr);
}
-#if CORAPI_SKIP
- /** Edit & continue support */
- public EditAndContinueSnapshot GetEditAndContinueSnapshot ();
-
- /** ??? */
-#endif
public object GetMetaDataInterface (Guid interfaceGuid)
{
@@ -257,6 +237,23 @@ namespace Microsoft.Samples.Debugging.CorDebug
m_module.GetMetaDataInterface(ref interfaceGuid,out obj);
return obj;
}
+
+ /// <summary>
+ /// Typesafe wrapper around GetMetaDataInterface.
+ /// </summary>
+ /// <typeparam name="T">type of interface to query for</typeparam>
+ /// <returns>interface to the metadata</returns>
+ public T GetMetaDataInterface<T>()
+ {
+ // Ideally, this would be declared as Object to match the unmanaged
+ // CorDebug.idl definition; but the managed wrappers we build
+ // on import it as an IMetadataImport, so we need to start with
+ // that.
+ IMetadataImport obj;
+ Guid interfaceGuid = typeof(T).GUID;
+ m_module.GetMetaDataInterface(ref interfaceGuid, out obj);
+ return (T) obj;
+ }
/** Get the token for the module table entry of this object. */
@@ -319,7 +316,7 @@ namespace Microsoft.Samples.Debugging.CorDebug
public void SetJmcStatus(bool isJustMyCOde,int[] tokens)
{
- Debug.Assert(tokens==null); // <strip>@TODO not yet implemented</strip>
+ Debug.Assert(tokens==null);
uint i=0;
(m_module as ICorDebugModule2).SetJMCStatus(isJustMyCOde?1:0,0,ref i);
}
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Process.cs b/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Process.cs
index 4a70d79daf..53ecf17fc2 100644
--- a/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Process.cs
+++ b/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Process.cs
@@ -56,16 +56,7 @@ namespace Microsoft.Samples.Debugging.CorDebug
return (ICorDebugProcess) GetController();
}
-#if CORAPI_EXPOSE_RAW_INTERFACES
- [CLSCompliant(false)]
- public ICorDebugProcess Raw
- {
- get
- {
- return _p();
- }
- }
-#endif
+
/** The OS ID of the process. */
public int Id
@@ -126,6 +117,22 @@ namespace Microsoft.Samples.Debugging.CorDebug
return !(y==0);
}
+ /** Gets managed thread for threadId.
+ * Returns NULL if tid is not a managed thread. That's very common in interop-debugging cases.
+ */
+ public CorThread GetThread(int threadId)
+ {
+ ICorDebugThread thread = null;
+ try
+ {
+ _p().GetThread((uint)threadId, out thread);
+ }
+ catch (ArgumentException)
+ {
+ }
+ return (thread == null) ? null : (new CorThread(thread));
+ }
+
/* Get the context for the given thread. */
// See WIN32_CONTEXT structure declared in context.il
public void GetThreadContext ( int threadId, IntPtr contextPtr, int context_size )
@@ -142,20 +149,20 @@ namespace Microsoft.Samples.Debugging.CorDebug
}
/** Read memory from the process. */
- public int ReadMemory (long address, byte[] buffer)
+ public long ReadMemory (long address, byte[] buffer)
{
Debug.Assert(buffer!=null);
- uint read = 0;
+ IntPtr read = IntPtr.Zero;
_p().ReadMemory ((ulong) address, (uint) buffer.Length, buffer, out read);
- return (int) read;
+ return read.ToInt64();
}
/** Write memory in the process. */
- public int WriteMemory (long address, byte[] buffer)
+ public long WriteMemory (long address, byte[] buffer)
{
- uint written = 0;
+ IntPtr written = IntPtr.Zero;
_p().WriteMemory ((ulong) address, (uint) buffer.Length, buffer, out written);
- return (int) written;
+ return written.ToInt64();
}
/** Clear the current unmanaged exception on the given thread. */
@@ -270,6 +277,7 @@ namespace Microsoft.Samples.Debugging.CorDebug
base.Continue(outOfBand);
}
+ // [Xamarin] Output redirection.
internal void TrackStdOutput (Microsoft.Win32.SafeHandles.SafeFileHandle outputPipe, Microsoft.Win32.SafeHandles.SafeFileHandle errorPipe)
{
Thread outputReader = new Thread (delegate ()
@@ -289,6 +297,7 @@ namespace Microsoft.Samples.Debugging.CorDebug
errorReader.Start ();
}
+ // [Xamarin] Output redirection.
void ReadOutput (Microsoft.Win32.SafeHandles.SafeFileHandle pipe, bool isStdError)
{
byte[] buffer = new byte[256];
@@ -766,22 +775,6 @@ namespace Microsoft.Samples.Debugging.CorDebug
}
}
-#if MDBG_FEATURE_INTEROP
- public event CorNativeStopEventHandler OnNativeStop
- {
- add
- {
- int i = (int)ManagedCallbackType.OnNativeStop;
- m_callbacksArray[i] = (CorNativeStopEventHandler)m_callbacksArray[i] + value;
- }
- remove
- {
- int i = (int)ManagedCallbackType.OnNativeStop;
- m_callbacksArray[i] = (CorNativeStopEventHandler)m_callbacksArray[i] - value;
- }
- }
-
-#endif
public event CorExceptionInCallbackEventHandler OnExceptionInCallback
{
add
@@ -796,6 +789,7 @@ namespace Microsoft.Samples.Debugging.CorDebug
}
}
+ // [Xamarin] Output redirection.
public event CorTargetOutputEventHandler OnStdOutput;
} /* class Process */
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/RegisterSet.cs b/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/RegisterSet.cs
index c904527adc..3622902a29 100644
--- a/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/RegisterSet.cs
+++ b/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/RegisterSet.cs
@@ -47,16 +47,6 @@ namespace Microsoft.Samples.Debugging.CorDebug
m_rs = registerSet;
}
-#if CORAPI_EXPOSE_RAW_INTERFACES
- [CLSCompliant(false)]
- public ICorDebugRegisterSet Raw
- {
- get
- {
- return m_rs;
- }
- }
-#endif
/*
* GetRegistersAvailable returns a mask indicating which registers
@@ -167,8 +157,6 @@ namespace Microsoft.Samples.Debugging.CorDebug
SetRegisters(mask,new UInt64[]{value});
}
- // @TODO make sure that following functions can be called only by
- // code with enough privilage that is passing correct values.
public void GetThreadContext ( IntPtr contextPtr, int contextSize )
{
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Stepper.cs b/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Stepper.cs
index 2741bb69a6..62a3c0a98a 100644
--- a/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Stepper.cs
+++ b/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Stepper.cs
@@ -18,16 +18,6 @@ namespace Microsoft.Samples.Debugging.CorDebug
m_step = stepper;
}
-#if CORAPI_EXPOSE_RAW_INTERFACES
- [CLSCompliant(false)]
- public ICorDebugStepper Raw
- {
- get
- {
- return m_step;
- }
- }
-#endif
/** Is the stepper active and stepping? */
public bool IsActive ()
@@ -88,12 +78,18 @@ namespace Microsoft.Samples.Debugging.CorDebug
m_step.SetRangeIL (value ? 1 : 0);
}
- public void SetJMC (bool enable)
- {
- ICorDebugStepper2 stepper2 = m_step as ICorDebugStepper2;
- if (stepper2 != null)
- stepper2.SetJMC (enable ? 1 : 0);
- }
+ /// <summary>
+ /// Enable Just-my-code stepping for this stepper. The default is 'false.
+ /// </summary>
+ /// <param name="isJustMyCode">true to make this a JMC-stepper, false to make it a traditional stepper.</param>
+ public void SetJmcStatus(bool isJustMyCode)
+ {
+ ICorDebugStepper2 stepper2 = m_step as ICorDebugStepper2;
+ if (stepper2 != null)
+ {
+ stepper2.SetJMC(isJustMyCode ? 1 : 0);
+ }
+ }
private ICorDebugStepper m_step;
} /* class Stepper */
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Thread.cs b/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Thread.cs
index dea86084bd..7b702cd53e 100644
--- a/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Thread.cs
+++ b/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Thread.cs
@@ -8,6 +8,7 @@ using System.Collections;
using System.Diagnostics;
using Microsoft.Samples.Debugging.CorDebug.NativeApi;
+using System.Runtime.Serialization;
namespace Microsoft.Samples.Debugging.CorDebug
{
@@ -49,6 +50,12 @@ namespace Microsoft.Samples.Debugging.CorDebug
}
}
+ public enum CorStackWalkType
+ {
+ PureV3StackWalk, // true representation of the V3 ICorDebugStackWalk API
+ ExtendedV3StackWalk // V3 ICorDebugStackWalk API with internal frames interleaved
+ }
+
/** A thread in the debugged process. */
public sealed class CorThread : WrapperBase
{
@@ -63,16 +70,6 @@ namespace Microsoft.Samples.Debugging.CorDebug
return m_th;
}
-#if CORAPI_EXPOSE_RAW_INTERFACES
- [CLSCompliant(false)]
- public ICorDebugThread Raw
- {
- get
- {
- return m_th;
- }
- }
-#endif
/** The process that this thread is in. */
public CorProcess Process
@@ -264,8 +261,6 @@ namespace Microsoft.Samples.Debugging.CorDebug
}
return caf;
}
-
-
private ICorDebugThread m_th;
} /* class Thread */
@@ -274,7 +269,7 @@ namespace Microsoft.Samples.Debugging.CorDebug
public enum CorFrameType
{
- ILFrame, NativeFrame, InternalFrame
+ ILFrame, NativeFrame, InternalFrame,
}
@@ -286,16 +281,6 @@ namespace Microsoft.Samples.Debugging.CorDebug
m_frame = frame;
}
-#if CORAPI_EXPOSE_RAW_INTERFACES
- [CLSCompliant(false)]
- public ICorDebugFrame Raw
- {
- get
- {
- return m_frame;
- }
- }
-#endif
public CorStepper CreateStepper()
{
@@ -389,13 +374,14 @@ namespace Microsoft.Samples.Debugging.CorDebug
CorDebugInternalFrameType ft;
if(iframe==null)
- throw new Exception("Cannot get frame type on non-internal frame");
+ throw new CorException("Cannot get frame type on non-internal frame");
iframe.GetFrameType(out ft);
return ft;
}
}
-
+
+
[CLSCompliant(false)]
public void GetStackRange(out UInt64 startOffset,out UInt64 endOffset)
{
@@ -419,7 +405,7 @@ namespace Microsoft.Samples.Debugging.CorDebug
{
ICorDebugILFrame ilframe = GetILFrame();
if(ilframe==null)
- throw new Exception("Cannot set an IP on non-il frame");
+ throw new CorException("Cannot set an IP on non-il frame");
ilframe.SetIP((uint)offset);
}
@@ -450,7 +436,7 @@ namespace Microsoft.Samples.Debugging.CorDebug
Debug.Assert( nativeFrame!=null );
nativeFrame.GetIP(out offset);
}
-
+
public CorValue GetLocalVariable(int index)
{
ICorDebugILFrame ilframe = GetILFrame();
@@ -520,25 +506,18 @@ namespace Microsoft.Samples.Debugging.CorDebug
{
ICorDebugILFrame ilframe = GetILFrame();
if(ilframe==null)
- throw new Exception("Cannot remap on non-il frame.");
+ throw new CorException("Cannot remap on non-il frame.");
ICorDebugILFrame2 ilframe2 = (ICorDebugILFrame2) ilframe;
ilframe2.RemapFunction((uint)newILOffset);
}
- [CLSCompliant(false)]
- public ICorDebugILFrame GetILFrame()
+ private ICorDebugILFrame GetILFrame()
{
if(!m_ilFrameCached)
{
- m_ilFrameCached = true;
- try
- {
- m_ilFrame = (ICorDebugILFrame) m_frame;
- }
- catch(InvalidCastException )
- {
- m_ilFrame = null; // running on free version without ini file ???
- }
+ m_ilFrameCached = true;
+ m_ilFrame = m_frame as ICorDebugILFrame;
+
}
return m_ilFrame;
}
@@ -548,14 +527,8 @@ namespace Microsoft.Samples.Debugging.CorDebug
if(!m_iFrameCached)
{
m_iFrameCached = true;
- try
- {
- m_iFrame = (ICorDebugInternalFrame)m_frame;
- }
- catch(InvalidCastException)
- {
- m_iFrame = null;
- }
+
+ m_iFrame = m_frame as ICorDebugInternalFrame;
}
return m_iFrame;
}
@@ -573,7 +546,8 @@ namespace Microsoft.Samples.Debugging.CorDebug
}
IEnumerable e = this.TypeParameters;
Debug.Assert(e is CorTypeEnumerator);
- // Skip will throw if we try to skip the whole collection <strip>(a bug?)</strip>
+
+ // Skip will throw if we try to skip the whole collection
int total = (e as CorTypeEnumerator).Count;
if (skip >= total)
{
@@ -595,6 +569,8 @@ namespace Microsoft.Samples.Debugging.CorDebug
return new CorTypeEnumerator(icdte); // icdte can be null, is handled by enumerator
}
}
+
+
private ICorDebugILFrame m_ilFrame = null;
private bool m_ilFrameCached = false;
@@ -613,16 +589,6 @@ namespace Microsoft.Samples.Debugging.CorDebug
m_chain = chain;
}
-#if CORAPI_EXPOSE_RAW_INTERFACES
- [CLSCompliant(false)]
- public ICorDebugChain Raw
- {
- get
- {
- return m_chain;
- }
- }
-#endif
public CorFrame ActiveFrame
{
@@ -852,16 +818,6 @@ namespace Microsoft.Samples.Debugging.CorDebug
m_code = code;
}
-#if CORAPI_EXPOSE_RAW_INTERFACES
- [CLSCompliant(false)]
- public ICorDebugCode Raw
- {
- get
- {
- return m_code;
- }
- }
-#endif
public CorFunctionBreakpoint CreateBreakpoint(int offset)
{
@@ -869,7 +825,7 @@ namespace Microsoft.Samples.Debugging.CorDebug
m_code.CreateBreakpoint((uint)offset,out ibreakpoint);
return ( ibreakpoint==null ? null : new CorFunctionBreakpoint(ibreakpoint) );
}
-
+
[CLSCompliant(false)]
public ulong Address
{
@@ -1050,16 +1006,6 @@ namespace Microsoft.Samples.Debugging.CorDebug
m_function = managedFunction;
}
-#if CORAPI_EXPOSE_RAW_INTERFACES
- [CLSCompliant(false)]
- public ICorDebugFunction Raw
- {
- get
- {
- return m_function;
- }
- }
-#endif
public CorFunctionBreakpoint CreateBreakpoint()
{
@@ -1078,8 +1024,7 @@ namespace Microsoft.Samples.Debugging.CorDebug
}
}
- // <strip>@TODO void GetCurrentVersionNumber(ref UInt32 pnCurrentVersion);</strip>
-
+
public CorCode ILCode
{
get
@@ -1100,8 +1045,7 @@ namespace Microsoft.Samples.Debugging.CorDebug
}
}
- // <strip>@TODO void GetLocalVarSigToken(ref UInt32 pmdSig);</strip>
-
+
public CorModule Module
{
get
@@ -1156,18 +1100,8 @@ namespace Microsoft.Samples.Debugging.CorDebug
m_context = context;
}
-#if CORAPI_EXPOSE_RAW_INTERFACES
- [CLSCompliant(false)]
- public ICorDebugContext Raw
- {
- get
- {
- return m_context;
- }
- }
-#endif
- //<strip>@TODO IMPLEMENT</strip>
+
// Following functions are not implemented
/*
void CreateBreakpoint(ref CORDBLib.ICorDebugValueBreakpoint ppBreakpoint);
@@ -1185,4 +1119,44 @@ namespace Microsoft.Samples.Debugging.CorDebug
private ICorDebugContext m_context;
}
+ [Serializable]
+ public class CorException : Exception
+ {
+ /// <summary>
+ /// Initializes a new instance of the CorException.
+ /// </summary>
+ public CorException()
+ {
+ }
+
+ /// <summary>
+ /// Initializes a new instance of the CorException with the specified error message.
+ /// </summary>
+ /// <param name="message">The message that describes the error.</param>
+ public CorException(string message)
+ : base(message)
+ {
+ }
+
+ /// <summary>
+ /// Initializes a new instance of the CorException with the specified error message and inner Exception.
+ /// </summary>
+ /// <param name="message">The message that describes the error.</param>
+ /// <param name="innerException">The exception that is the cause of the current exception.</param>
+ public CorException(string message, Exception innerException)
+ : base(message, innerException)
+ {
+ }
+
+ /// <summary>
+ /// Initializes a new instance of the CorException class with serialized data.
+ /// </summary>
+ /// <param name="info">The SerializationInfo that holds the serialized object data about the exception being thrown.</param>
+ /// <param name="context">The StreamingContext that contains contextual information about the source or destination.</param>
+ protected CorException(SerializationInfo info, StreamingContext context)
+ : base(info,context)
+ {
+ }
+ }
+
} /* namespace */
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Type.cs b/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Type.cs
index f518c3c485..cf49fb0212 100644
--- a/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Type.cs
+++ b/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Type.cs
@@ -26,16 +26,6 @@ namespace Microsoft.Samples.Debugging.CorDebug
return m_type;
}
-#if CORAPI_EXPOSE_RAW_INTERFACES
- [CLSCompliant(false)]
- public ICorDebugType Raw
- {
- get
- {
- return m_type;
- }
- }
-#endif
/** Element type of the type. */
public CorElementType Type
@@ -98,6 +88,7 @@ namespace Microsoft.Samples.Debugging.CorDebug
return dv==null?null:new CorValue (dv);
}
+ // [Xamarin] Expression evaluator.
// Expose IEnumerable, which can be used with for-each constructs.
// This will provide an collection of CorType parameters.
public CorType[] TypeParameters
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/TypeEnumerator.cs b/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/TypeEnumerator.cs
index ee34fc0a34..ab6b627aba 100644
--- a/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/TypeEnumerator.cs
+++ b/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/TypeEnumerator.cs
@@ -16,8 +16,7 @@ namespace Microsoft.Samples.Debugging.CorDebug
private ICorDebugTypeEnum m_enum;
private CorType m_ty;
- [CLSCompliant(false)]
- public CorTypeEnumerator (ICorDebugTypeEnum typeEnumerator)
+ internal CorTypeEnumerator (ICorDebugTypeEnum typeEnumerator)
{
m_enum = typeEnumerator;
}
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Value.cs b/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Value.cs
index 3a56fd88de..a3722f36b6 100644
--- a/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Value.cs
+++ b/extras/MonoDevelop.Debugger.Win32/CorApi2/debug/Value.cs
@@ -22,16 +22,6 @@ namespace Microsoft.Samples.Debugging.CorDebug
m_val = value;
}
-#if CORAPI_EXPOSE_RAW_INTERFACES
- [CLSCompliant(false)]
- public ICorDebugValue Raw
- {
- get
- {
- return m_val;
- }
- }
-#endif
/** The simple type of the value. */
public CorElementType Type
{
@@ -749,9 +739,9 @@ namespace Microsoft.Samples.Debugging.CorDebug
{
Debug.Assert(Rank!=0);
uint[] dims = new uint[Rank];
- m_arrayVal.GetDimensions((uint)dims.Length,dims);
+ m_arrayVal.GetDimensions((uint)dims.Length, dims);
- int[] sdims = Array.ConvertAll<uint,int>( dims, delegate(uint u) { return (int)u; } );
+ int[] sdims = Array.ConvertAll<uint,int>(dims, delegate(uint u) { return (int)u; });
return sdims;
}
diff --git a/extras/MonoDevelop.Debugger.Win32/MonoDevelop.Debugger.Win32/ArrayAdaptor.cs b/extras/MonoDevelop.Debugger.Win32/MonoDevelop.Debugger.Win32/ArrayAdaptor.cs
index 095fc8a27b..0f2dfe3c9f 100644
--- a/extras/MonoDevelop.Debugger.Win32/MonoDevelop.Debugger.Win32/ArrayAdaptor.cs
+++ b/extras/MonoDevelop.Debugger.Win32/MonoDevelop.Debugger.Win32/ArrayAdaptor.cs
@@ -74,15 +74,5 @@ namespace MonoDevelop.Debugger.Win32
return obj.Val.ExactType.FirstTypeParameter;
}
}
-
- public ObjectValue CreateElementValue (ArrayElementGroup grp, ObjectPath path, int[] indices)
- {
- if (array != null) {
- CorValRef elem = (CorValRef) GetElement (indices);
- return ctx.Adapter.CreateObjectValue (ctx, grp, path, elem, ObjectValueFlags.ArrayElement);
- }
- else
- return ObjectValue.CreateUnknown ("?");
- }
}
}
diff --git a/extras/MonoDevelop.Debugger.Win32/MonoDevelop.Debugger.Win32/CorDebuggerSession.cs b/extras/MonoDevelop.Debugger.Win32/MonoDevelop.Debugger.Win32/CorDebuggerSession.cs
index 43ba225fe6..eba9af95a2 100644
--- a/extras/MonoDevelop.Debugger.Win32/MonoDevelop.Debugger.Win32/CorDebuggerSession.cs
+++ b/extras/MonoDevelop.Debugger.Win32/MonoDevelop.Debugger.Win32/CorDebuggerSession.cs
@@ -265,12 +265,10 @@ namespace MonoDevelop.Debugger.Win32
if (breakpoints.TryGetValue (e.Breakpoint, out binfo)) {
e.Continue = true;
Breakpoint bp = (Breakpoint)binfo.BreakEvent;
-
- if (bp.HitCount > 1) {
- // Just update the count and continue
- binfo.UpdateHitCount (bp.HitCount - 1);
+
+ binfo.IncrementHitCount();
+ if (!binfo.HitCountReached)
return;
- }
if (!string.IsNullOrEmpty (bp.ConditionExpression)) {
string res = EvaluateExpression (e.Thread, bp.ConditionExpression);
@@ -828,7 +826,7 @@ namespace MonoDevelop.Debugger.Win32
activeThread = t;
stepper = activeThread.CreateStepper ();
stepper.SetUnmappedStopMask (CorDebugUnmappedStop.STOP_NONE);
- stepper.SetJMC (true);
+ stepper.SetJmcStatus (true);
}
protected override void OnStepInstruction ( )
diff --git a/extras/MonoDevelop.Debugger.Win32/MonoDevelop.Debugger.Win32/MonoDevelop.Debugger.Win32.csproj b/extras/MonoDevelop.Debugger.Win32/MonoDevelop.Debugger.Win32/MonoDevelop.Debugger.Win32.csproj
index 6544211785..ae94c55e7a 100644
--- a/extras/MonoDevelop.Debugger.Win32/MonoDevelop.Debugger.Win32/MonoDevelop.Debugger.Win32.csproj
+++ b/extras/MonoDevelop.Debugger.Win32/MonoDevelop.Debugger.Win32/MonoDevelop.Debugger.Win32.csproj
@@ -65,35 +65,26 @@
</Reference>
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
- <Reference Include="Mono.Debugging, Version=0.0.0.0, Culture=neutral, PublicKeyToken=5e9ce85b0923c84f">
- <SpecificVersion>False</SpecificVersion>
+ <Reference Include="Mono.Debugging">
<HintPath>..\..\..\main\build\bin\Mono.Debugging.dll</HintPath>
<Private>False</Private>
</Reference>
- <Reference Include="MonoDevelop.AspNet, Version=2.6.0.0, Culture=neutral, PublicKeyToken=null">
- <SpecificVersion>False</SpecificVersion>
+ <Reference Include="MonoDevelop.AspNet">
<HintPath>..\..\..\main\build\AddIns\MonoDevelop.AspNet\MonoDevelop.AspNet.dll</HintPath>
<Private>False</Private>
</Reference>
- <Reference Include="MonoDevelop.Core, Version=2.6.0.0, Culture=neutral, PublicKeyToken=null">
- <SpecificVersion>False</SpecificVersion>
+ <Reference Include="MonoDevelop.Core">
<HintPath>..\..\..\main\build\bin\MonoDevelop.Core.dll</HintPath>
<Private>False</Private>
</Reference>
- <Reference Include="MonoDevelop.Debugger, Version=2.6.0.0, Culture=neutral, PublicKeyToken=null">
- <SpecificVersion>False</SpecificVersion>
+ <Reference Include="MonoDevelop.Debugger">
<HintPath>..\..\..\main\build\AddIns\MonoDevelop.Debugger\MonoDevelop.Debugger.dll</HintPath>
<Private>False</Private>
</Reference>
- <Reference Include="MonoDevelop.Ide, Version=2.6.0.0, Culture=neutral, PublicKeyToken=null">
- <SpecificVersion>False</SpecificVersion>
+ <Reference Include="MonoDevelop.Ide">
<HintPath>..\..\..\main\build\bin\MonoDevelop.Ide.dll</HintPath>
<Private>False</Private>
</Reference>
- <Reference Include="NRefactory, Version=2.1.1.0, Culture=neutral, PublicKeyToken=efe927acf176eea2">
- <SpecificVersion>False</SpecificVersion>
- <HintPath>..\..\..\main\build\bin\NRefactory.dll</HintPath>
- </Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="ArrayAdaptor.cs" />
diff --git a/extras/MonoDevelop.Debugger.Win32/README b/extras/MonoDevelop.Debugger.Win32/README
new file mode 100644
index 0000000000..a72ceb44c9
--- /dev/null
+++ b/extras/MonoDevelop.Debugger.Win32/README
@@ -0,0 +1,9 @@
+CorApi and CorApi2 are samples taken from http://www.microsoft.com/en-us/download/details.aspx?id=19621 with our own API changes added to it.
+
+API changes are to be marked with [Xamarin] tags.
+*For additions of properties or changes to existing properties, apply the tag to the property explaining the fix applied.
+
+API changes are to be done with tabs as it's easier to differentiate between their code and our code.
+
+Post-update API changes can be applied with this commit:
+5056a6ade8e0d0e8398c13dcbba734ea25419b87
diff --git a/extras/MonoDevelop.Debugger.Win32/eula.rtf b/extras/MonoDevelop.Debugger.Win32/eula.rtf
new file mode 100644
index 0000000000..6116daff46
--- /dev/null
+++ b/extras/MonoDevelop.Debugger.Win32/eula.rtf
@@ -0,0 +1,428 @@
+{\rtf1\ansi\ansicpg1252\uc1\deff37\stshfdbch11\stshfloch0\stshfhich0\stshfbi0\deflang1033\deflangfe2052{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times};}
+{\f2\fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New{\*\falt Arial};}{\f3\froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol{\*\falt Bookshelf Symbol 3};}
+{\f10\fnil\fcharset2\fprq2{\*\panose 05000000000000000000}Wingdings{\*\falt Symbol};}{\f11\froman\fcharset128\fprq1{\*\panose 02020609040205080304}MS Mincho{\*\falt HGGothicE};}
+{\f37\fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Tahoma{\*\falt ?? ??};}{\f42\fswiss\fcharset0\fprq2{\*\panose 020b0603020202020204}Trebuchet MS{\*\falt Arial};}{\f43\fmodern\fcharset128\fprq1 @MS Mincho{\*\falt @MS Gothic};}
+{\f218\froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times};}{\f219\froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times};}{\f221\froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times};}
+{\f222\froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times};}{\f223\froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times};}{\f224\froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times};}
+{\f225\froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times};}{\f226\froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times};}{\f238\fmodern\fcharset238\fprq1 Courier New CE{\*\falt Arial};}
+{\f239\fmodern\fcharset204\fprq1 Courier New Cyr{\*\falt Arial};}{\f241\fmodern\fcharset161\fprq1 Courier New Greek{\*\falt Arial};}{\f242\fmodern\fcharset162\fprq1 Courier New Tur{\*\falt Arial};}
+{\f243\fmodern\fcharset177\fprq1 Courier New (Hebrew){\*\falt Arial};}{\f244\fmodern\fcharset178\fprq1 Courier New (Arabic){\*\falt Arial};}{\f245\fmodern\fcharset186\fprq1 Courier New Baltic{\*\falt Arial};}
+{\f246\fmodern\fcharset163\fprq1 Courier New (Vietnamese){\*\falt Arial};}{\f588\fswiss\fcharset238\fprq2 Tahoma CE{\*\falt ?? ??};}{\f589\fswiss\fcharset204\fprq2 Tahoma Cyr{\*\falt ?? ??};}{\f591\fswiss\fcharset161\fprq2 Tahoma Greek{\*\falt ?? ??};}
+{\f592\fswiss\fcharset162\fprq2 Tahoma Tur{\*\falt ?? ??};}{\f593\fswiss\fcharset177\fprq2 Tahoma (Hebrew){\*\falt ?? ??};}{\f594\fswiss\fcharset178\fprq2 Tahoma (Arabic){\*\falt ?? ??};}{\f595\fswiss\fcharset186\fprq2 Tahoma Baltic{\*\falt ?? ??};}
+{\f596\fswiss\fcharset163\fprq2 Tahoma (Vietnamese){\*\falt ?? ??};}{\f597\fswiss\fcharset222\fprq2 Tahoma (Thai){\*\falt ?? ??};}{\f638\fswiss\fcharset238\fprq2 Trebuchet MS CE{\*\falt Arial};}
+{\f639\fswiss\fcharset204\fprq2 Trebuchet MS Cyr{\*\falt Arial};}{\f641\fswiss\fcharset161\fprq2 Trebuchet MS Greek{\*\falt Arial};}{\f642\fswiss\fcharset162\fprq2 Trebuchet MS Tur{\*\falt Arial};}
+{\f645\fswiss\fcharset186\fprq2 Trebuchet MS Baltic{\*\falt Arial};}{\f650\fmodern\fcharset0\fprq1 @MS Mincho Western{\*\falt @MS Gothic};}{\f648\fmodern\fcharset238\fprq1 @MS Mincho CE{\*\falt @MS Gothic};}
+{\f649\fmodern\fcharset204\fprq1 @MS Mincho Cyr{\*\falt @MS Gothic};}{\f651\fmodern\fcharset161\fprq1 @MS Mincho Greek{\*\falt @MS Gothic};}{\f652\fmodern\fcharset162\fprq1 @MS Mincho Tur{\*\falt @MS Gothic};}
+{\f655\fmodern\fcharset186\fprq1 @MS Mincho Baltic{\*\falt @MS Gothic};}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;
+\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\stylesheet{
+\ql \li0\ri0\sb120\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs19\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \snext0 \sautoupd Normal;}{\s1\ql \fi-357\li357\ri0\sb120\sa120\widctlpar
+\jclisttab\tx360\aspalpha\aspnum\faauto\ls17\outlinelevel0\adjustright\rin0\lin357\itap0 \b\fs19\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext1 heading 1;}{\s2\ql \fi-363\li720\ri0\sb120\sa120\widctlpar
+\jclisttab\tx720\aspalpha\aspnum\faauto\ls17\ilvl1\outlinelevel1\adjustright\rin0\lin720\itap0 \b\fs19\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext2 heading 2;}{
+\s3\ql \fi-357\li1077\ri0\sb120\sa120\widctlpar\tx1077\jclisttab\tx1440\aspalpha\aspnum\faauto\ls17\ilvl2\outlinelevel2\adjustright\rin0\lin1077\itap0 \fs19\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext3
+heading 3;}{\s4\ql \fi-358\li1435\ri0\sb120\sa120\widctlpar\jclisttab\tx1437\aspalpha\aspnum\faauto\ls17\ilvl3\outlinelevel3\adjustright\rin0\lin1435\itap0 \fs19\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033
+\sbasedon0 \snext4 heading 4;}{\s5\ql \fi-357\li1792\ri0\sb120\sa120\widctlpar\tx1792\jclisttab\tx2155\aspalpha\aspnum\faauto\ls17\ilvl4\outlinelevel4\adjustright\rin0\lin1792\itap0
+\fs19\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext5 heading 5;}{\s6\ql \fi-357\li2149\ri0\sb120\sa120\widctlpar
+\jclisttab\tx2152\aspalpha\aspnum\faauto\ls17\ilvl5\outlinelevel5\adjustright\rin0\lin2149\itap0 \fs19\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext6 heading 6;}{
+\s7\ql \fi-357\li2506\ri0\sb120\sa120\widctlpar\jclisttab\tx2509\aspalpha\aspnum\faauto\ls17\ilvl6\outlinelevel6\adjustright\rin0\lin2506\itap0 \fs19\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext7
+heading 7;}{\s8\ql \fi-357\li2863\ri0\sb120\sa120\widctlpar\jclisttab\tx2866\aspalpha\aspnum\faauto\ls17\ilvl7\outlinelevel7\adjustright\rin0\lin2863\itap0 \fs19\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033
+\sbasedon0 \snext8 heading 8;}{\s9\ql \fi-358\li3221\ri0\sb120\sa120\widctlpar\jclisttab\tx3223\aspalpha\aspnum\faauto\ls17\ilvl8\outlinelevel8\adjustright\rin0\lin3221\itap0
+\fs19\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext9 heading 9;}{\*\cs10 \additive \slocked \ssemihidden Default Paragraph Font;}{\*
+\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tscellwidthfts0\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv
+\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs20\lang1024\langfe1024\loch\f0\hich\af0\dbch\af11\cgrid\langnp1024\langfenp1024 \snext11 \ssemihidden Normal Table;}{
+\s15\ql \li357\ri0\sb120\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin357\itap0 \fs19\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext15 Body 1;}{
+\s16\ql \li720\ri0\sb120\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0 \fs19\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext16 Body 2;}{
+\s17\ql \li1077\ri0\sb120\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin1077\itap0 \fs19\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext17 Body 3;}{
+\s18\ql \li1435\ri0\sb120\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin1435\itap0 \fs19\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext18 Body 4;}{
+\s19\ql \li1803\ri0\sb120\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin1803\itap0 \fs19\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext19 Body 5;}{
+\s20\ql \li2160\ri0\sb120\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2160\itap0 \fs19\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext20 Body 6;}{
+\s21\ql \li2506\ri0\sb120\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2506\itap0 \fs19\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext21 Body 7;}{
+\s22\ql \li2863\ri0\sb120\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2863\itap0 \fs19\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext22 Body 8;}{
+\s23\ql \li3221\ri0\sb120\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3221\itap0 \fs19\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext23 Body 9;}{
+\s24\ql \fi-357\li357\ri0\sb120\sa120\widctlpar\jclisttab\tx360\aspalpha\aspnum\faauto\ls1\adjustright\rin0\lin357\itap0 \fs19\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext24 Bullet 1;}{
+\s25\ql \fi-363\li720\ri0\sb120\sa120\widctlpar\jclisttab\tx720\aspalpha\aspnum\faauto\ls2\adjustright\rin0\lin720\itap0 \fs19\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext25 Bullet 2;}{
+\s26\ql \fi-357\li1077\ri0\sb120\sa120\widctlpar\jclisttab\tx1080\aspalpha\aspnum\faauto\ls3\adjustright\rin0\lin1077\itap0 \fs19\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext26 Bullet 3;}{
+\s27\ql \fi-358\li1435\ri0\sb120\sa120\widctlpar\jclisttab\tx1437\aspalpha\aspnum\faauto\ls4\adjustright\rin0\lin1435\itap0 \fs19\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext27 Bullet 4;}{
+\s28\ql \fi-357\li1792\ri0\sb120\sa120\widctlpar\jclisttab\tx1795\aspalpha\aspnum\faauto\ls5\adjustright\rin0\lin1792\itap0 \fs19\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext28 Bullet 5;}{
+\s29\ql \fi-357\li2149\ri0\sb120\sa120\widctlpar\jclisttab\tx2152\aspalpha\aspnum\faauto\ls6\adjustright\rin0\lin2149\itap0 \fs19\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext29 Bullet 6;}{
+\s30\ql \fi-357\li2506\ri0\sb120\sa120\widctlpar\jclisttab\tx2509\aspalpha\aspnum\faauto\ls7\adjustright\rin0\lin2506\itap0 \fs19\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext30 Bullet 7;}{
+\s31\ql \fi-357\li2863\ri0\sb120\sa120\widctlpar\jclisttab\tx2866\aspalpha\aspnum\faauto\ls8\adjustright\rin0\lin2863\itap0 \fs19\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext31 Bullet 8;}{
+\s32\ql \fi-358\li3221\ri0\sb120\sa120\widctlpar\jclisttab\tx3223\aspalpha\aspnum\faauto\ls9\adjustright\rin0\lin3221\itap0 \fs19\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon23 \snext32 Bullet 9;}{
+\s33\ql \li0\ri0\sb120\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \b\fs28\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 Heading EULA;}{\s34\ql \li0\ri0\sb120\sa120\widctlpar\brdrb
+\brdrs\brdrw10\brsp20 \aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \b\fs28\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 Heading Software Title;}{
+\s35\ql \li0\ri0\sb120\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \b\fs19\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext35 Preamble;}{\s36\ql \li0\ri0\sb120\sa120\widctlpar\brdrb
+\brdrs\brdrw10\brsp20 \aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \b\fs19\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext1 Preamble Border;}{
+\s37\qc \li0\ri0\sb120\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \b\fs19\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext37 Heading Warranty;}{
+\s38\ql \fi-360\li360\ri0\sb120\sa120\widctlpar\jclisttab\tx360\aspalpha\aspnum\faauto\ls11\outlinelevel0\adjustright\rin0\lin360\itap0 \fs19\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0
+Heading 1 Warranty;}{\s39\ql \fi-360\li720\ri0\sb120\sa120\widctlpar\jclisttab\tx720\aspalpha\aspnum\faauto\ls11\ilvl1\outlinelevel1\adjustright\rin0\lin720\itap0 \fs19\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033
+\sbasedon0 \snext0 Heading 2 Warranty;}{\s40\ql \fi-357\li1077\ri0\sb120\sa120\widctlpar\tx1077\jclisttab\tx1440\aspalpha\aspnum\faauto\ls10\ilvl2\outlinelevel2\adjustright\rin0\lin1077\itap0
+\b\fs19\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon3 \snext40 Heading 3 Bold;}{\s41\ql \fi-358\li1435\ri0\sb120\sa120\widctlpar\jclisttab\tx1437\aspalpha\aspnum\faauto\ls4\adjustright\rin0\lin1435\itap0
+\fs19\ul\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon27 \snext41 Bullet 4 Underline;}{\s42\ql \li0\ri0\sb120\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0
+\fs19\ul\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon26 \snext42 Bullet 3 Underline;}{\*\cs43 \additive \b\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\langnp1033\langfenp1033 \sbasedon10 \slocked
+Heading 2 Char;}{\s44\ql \li720\ri0\sb120\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0 \fs19\ul\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon16 \snext44 Body 2 Underline;}{
+\s45\ql \li1077\ri0\sb120\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin1077\itap0 \fs19\ul\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon17 \snext45 Body 3 Underline;}{
+\s46\ql \li0\ri0\sb120\sa120\sl480\slmult1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs19\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext46 Body Text 2;}{
+\s47\ql \fi-358\li1435\ri0\sb120\sa120\widctlpar\jclisttab\tx1437\aspalpha\aspnum\faauto\ls4\adjustright\rin0\lin1435\itap0 \i\fs19\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon27 \snext47 Bullet 4 Italics;}{\*
+\cs48 \additive \f37\lang1033\langfe1033\langnp1033\langfenp1033 \sbasedon10 \slocked Body 2 Char;}{\*\cs49 \additive \f37\lang1033\langfe1033\langnp1033\langfenp1033 \sbasedon10 \slocked Body 3 Char;}{\*\cs50 \additive
+\f37\lang1033\langfe1033\langnp1033\langfenp1033 \sbasedon10 \slocked Body 4 Char;}{\*\cs51 \additive \f37\lang1033\langfe1033\langnp1033\langfenp1033 \sbasedon10 \slocked Body 1 Char;}{\s52\ql \li0\ri0\sb120\sa120\widctlpar\brdrt\brdrs\brdrw10\brsp20
+\aspalpha\aspnum\faauto\adjustright\rin0\lin0\rtlgutter\itap0 \b\fs19\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon35 \snext52 Preamble Border Above;}{
+\s53\ql \li0\ri0\sb120\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs19\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext53 \ssemihidden footnote text;}{\*\cs54 \additive \super
+\sbasedon10 \ssemihidden footnote reference;}{\s55\ql \li0\ri0\sb120\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs19\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext55 \ssemihidden
+endnote text;}{\*\cs56 \additive \super \sbasedon10 \ssemihidden endnote reference;}{\s57\ql \li0\ri0\sb120\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0
+\fs19\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext57 \ssemihidden annotation text;}{\*\cs58 \additive \fs16 \sbasedon10 \ssemihidden annotation reference;}{\s59\ql \li0\ri0\sa160\sl-240\slmult0
+\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs19\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext59 Char;}{\s60\ql \li0\ri0\sa160\sl-240\slmult0
+\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs19\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext60 Char Char Char Char;}{\*\cs61 \additive \ul\cf2 \sbasedon10 Hyperlink;}{
+\s62\ql \li0\ri0\sb120\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs16\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext62 \ssemihidden Balloon Text;}{\*\cs63 \additive
+\b\f42\lang1033\langfe1033\langnp1033\langfenp1033 \sbasedon10 Heading 2 Char1;}{\*\cs64 \additive \sbasedon10 page number;}{\s65\ql \li0\ri0\sa160\sl-240\slmult0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0
+\fs19\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext65 Char Char Char Char1;}{\s66\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0
+\b\fs19\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \snext0 \styrsid8999754 Body 0 Bold;}{\s67\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0
+\fs19\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \snext0 \styrsid8999754 Body 0;}}{\*\latentstyles\lsdstimax156\lsdlockeddef0}{\*\listtable{\list\listtemplateid176468498\listhybrid{\listlevel\levelnfc23\levelnfcn23
+\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid692200086\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \s32\fi-358\li3221\jclisttab\tx3223\lin3221 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0
+\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0
+\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691
+\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}
+\f10\fbias0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li5040
+\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel
+\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid196815738}
+{\list\listtemplateid-1793664660{\listlevel\levelnfc3\levelnfcn3\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'00.;}{\levelnumbers\'01;}\b\i0\fbias0 \s38\fi-360\li360\jclisttab\tx360\lin360 }{\listlevel\levelnfc0
+\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'01.;}{\levelnumbers\'01;}\b\i0\fbias0 \s39\fi-360\li720\jclisttab\tx720\lin720 }{\listlevel\levelnfc2\levelnfcn2\leveljc0\leveljcn0\levelfollow0
+\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'02);}{\levelnumbers\'01;}\fbias0 \fi-360\li1080\jclisttab\tx1080\lin1080 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'03(\'03);}{\levelnumbers\'02;}\fbias0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'03(\'04);}{\levelnumbers\'02;}\fbias0 \fi-360\li1800
+\jclisttab\tx1800\lin1800 }{\listlevel\levelnfc2\levelnfcn2\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'03(\'05);}{\levelnumbers\'02;}\fbias0 \fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc0\levelnfcn0
+\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'06.;}{\levelnumbers\'01;}\fbias0 \fi-360\li2520\jclisttab\tx2520\lin2520 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0
+\levelindent0{\leveltext\'02\'07.;}{\levelnumbers\'01;}\fbias0 \fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc2\levelnfcn2\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'08.;}{\levelnumbers\'01;}
+\fbias0 \fi-360\li3240\jclisttab\tx3240\lin3240 }{\listname ;}\listid394402059}{\list\listtemplateid1928476992{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'00.;}{\levelnumbers\'01;}
+\b\i0\f42\fs20\fbias0 \fi-357\li357\jclisttab\tx360\lin357 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'01.;}{\levelnumbers\'01;}\b\i0\f42\fs20\fbias0 \fi-363\li720
+\jclisttab\tx720\lin720 }{\listlevel\levelnfc2\levelnfcn2\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'02.;}{\levelnumbers\'01;}\b\i0\f37\fs20\fbias0 \s40\fi-357\li1077\jclisttab\tx1440\lin1077 }{\listlevel
+\levelnfc3\levelnfcn3\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'03.;}{\levelnumbers\'01;}\b0\i0\strike0\f42\fs20\ulnone\fbias0 \fi-358\li1435\jclisttab\tx1437\lin1435 }{\listlevel\levelnfc1\levelnfcn1\leveljc0
+\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'04.;}{\levelnumbers\'01;}\b0\i0\strike0\f42\fs20\ulnone\fbias0 \fi-357\li1792\jclisttab\tx2155\lin1792 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0
+\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'05.;}{\levelnumbers\'01;}\b0\i0\f42\fs20\fbias0 \fi-357\li2149\jclisttab\tx2152\lin2149 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0
+{\leveltext\'02\'06.;}{\levelnumbers\'01;}\b0\i0\f42\fs20\fbias0 \fi-357\li2506\jclisttab\tx2509\lin2506 }{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02i.;}{\levelnumbers;}
+\b0\i0\f42\fs20\fbias0 \fi-357\li2863\jclisttab\tx2866\lin2863 }{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02A.;}{\levelnumbers;}\b0\i0\f42\fs20\fbias0 \fi-358\li3221
+\jclisttab\tx3223\lin3221 }{\listname ;}\listid398796681}{\list\listtemplateid789093748\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid-317712510
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \s25\fi-363\li720\jclisttab\tx720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}
+\f2\fbias0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li2160
+\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li2880\jclisttab\tx2880\lin2880 }
+{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23
+\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0
+\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
+\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid477573462}{\list\listtemplateid1948578256{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1
+\levelspace0\levelindent0{\leveltext\'02\'00.;}{\levelnumbers\'01;}\b\i0\f42\fs20\fbias0 \fi-357\li357\jclisttab\tx360\lin357 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'02\'01.;}{\levelnumbers\'01;}\b\i0\fs20\fbias0 \fi-360\li720\jclisttab\tx720\lin720 }{\listlevel\levelnfc2\levelnfcn2\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'02.;}{\levelnumbers\'01;}\b0\i0\f42\fs20\fbias0
+\fi-357\li1077\jclisttab\tx1440\lin1077 }{\listlevel\levelnfc3\levelnfcn3\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'03.;}{\levelnumbers\'01;}\b0\i0\strike0\f42\fs20\ulnone\fbias0 \fi-358\li1435
+\jclisttab\tx1437\lin1435 }{\listlevel\levelnfc1\levelnfcn1\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'04.;}{\levelnumbers\'01;}\b0\i0\strike0\f42\fs20\ulnone\fbias0 \fi-357\li1792\jclisttab\tx2155\lin1792 }
+{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'05.;}{\levelnumbers\'01;}\b0\i0\f42\fs20\fbias0 \fi-357\li2149\jclisttab\tx2152\lin2149 }{\listlevel\levelnfc4\levelnfcn4\leveljc0
+\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'06.;}{\levelnumbers\'01;}\b0\i0\f42\fs20\fbias0 \fi-357\li2506\jclisttab\tx2509\lin2506 }{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0\levelfollow0\levelstartat1
+\levelspace0\levelindent0{\leveltext\'02i.;}{\levelnumbers;}\b0\i0\f42\fs20\fbias0 \fi-357\li2863\jclisttab\tx2866\lin2863 }{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'02A.;}{\levelnumbers;}\b0\i0\f42\fs20\fbias0 \fi-358\li3221\jclisttab\tx3223\lin3221 }{\listname ;}\listid630479929}{\list\listtemplateid67698717{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0
+{\leveltext\'02\'00);}{\levelnumbers\'01;}\fi-360\li360\jclisttab\tx360\lin360 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'01);}{\levelnumbers\'01;}\fi-360\li720
+\jclisttab\tx720\lin720 }{\listlevel\levelnfc2\levelnfcn2\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'02);}{\levelnumbers\'01;}\fi-360\li1080\jclisttab\tx1080\lin1080 }{\listlevel\levelnfc0\levelnfcn0\leveljc0
+\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'03(\'03);}{\levelnumbers\'02;}\fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0
+{\leveltext\'03(\'04);}{\levelnumbers\'02;}\fi-360\li1800\jclisttab\tx1800\lin1800 }{\listlevel\levelnfc2\levelnfcn2\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'03(\'05);}{\levelnumbers\'02;}\fi-360\li2160
+\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'06.;}{\levelnumbers\'01;}\fi-360\li2520\jclisttab\tx2520\lin2520 }{\listlevel\levelnfc4\levelnfcn4\leveljc0
+\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'07.;}{\levelnumbers\'01;}\fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc2\levelnfcn2\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0
+{\leveltext\'02\'08.;}{\levelnumbers\'01;}\fi-360\li3240\jclisttab\tx3240\lin3240 }{\listname ;}\listid700712945}{\list\listtemplateid1866635226{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0
+{\leveltext\'02\'00.;}{\levelnumbers\'01;}\b\i0\f42\fs20\fbias0 \fi-357\li357\jclisttab\tx360\lin357 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}
+\b\i0\f3\fs20\fbias0 \fi-360\li717\jclisttab\tx717\lin717 }{\listlevel\levelnfc2\levelnfcn2\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'02.;}{\levelnumbers\'01;}\b\i0\f37\fs20\fbias0 \fi-357\li1077
+\jclisttab\tx1440\lin1077 }{\listlevel\levelnfc3\levelnfcn3\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'03.;}{\levelnumbers\'01;}\b0\i0\strike0\f42\fs20\ulnone\fbias0 \fi-358\li1435\jclisttab\tx1437\lin1435 }
+{\listlevel\levelnfc1\levelnfcn1\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'04.;}{\levelnumbers\'01;}\b0\i0\strike0\f42\fs20\ulnone\fbias0 \fi-357\li1792\jclisttab\tx2155\lin1792 }{\listlevel\levelnfc0
+\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'05.;}{\levelnumbers\'01;}\b0\i0\f42\fs20\fbias0 \fi-357\li2149\jclisttab\tx2152\lin2149 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0
+\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'06.;}{\levelnumbers\'01;}\b0\i0\f42\fs20\fbias0 \fi-357\li2506\jclisttab\tx2509\lin2506 }{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0
+{\leveltext\'02i.;}{\levelnumbers;}\b0\i0\f42\fs20\fbias0 \fi-357\li2863\jclisttab\tx2866\lin2863 }{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02A.;}{\levelnumbers;}
+\b0\i0\f42\fs20\fbias0 \fi-358\li3221\jclisttab\tx3223\lin3221 }{\listname ;}\listid731125385}{\list\listtemplateid680715664{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'02\'00.;}{\levelnumbers\'01;}\b\i0\f42\fs20\fbias0 \s1\fi-357\li357\jclisttab\tx360\lin357 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'01.;}{\levelnumbers\'01;}
+\b\i0\f42\fs20\fbias0 \s2\fi-363\li720\jclisttab\tx720\lin720 }{\listlevel\levelnfc2\levelnfcn2\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'02.;}{\levelnumbers\'01;}\b\i0\f37\fs20\fbias0 \s3\fi-357\li1077
+\jclisttab\tx1440\lin1077 }{\listlevel\levelnfc3\levelnfcn3\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'03.;}{\levelnumbers\'01;}\b0\i0\strike0\f42\fs20\ulnone\fbias0 \s4\fi-358\li1435\jclisttab\tx1437\lin1435 }
+{\listlevel\levelnfc1\levelnfcn1\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'04.;}{\levelnumbers\'01;}\b0\i0\strike0\f42\fs20\ulnone\fbias0 \s5\fi-357\li1792\jclisttab\tx2155\lin1792 }{\listlevel\levelnfc0
+\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'05.;}{\levelnumbers\'01;}\b0\i0\f42\fs20\fbias0 \s6\fi-357\li2149\jclisttab\tx2152\lin2149 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0
+\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'06.;}{\levelnumbers\'01;}\b0\i0\f42\fs20\fbias0 \s7\fi-357\li2506\jclisttab\tx2509\lin2506 }{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0
+{\leveltext\'02i.;}{\levelnumbers;}\b0\i0\f42\fs20\fbias0 \s8\fi-357\li2863\jclisttab\tx2866\lin2863 }{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02A.;}{\levelnumbers;}
+\b0\i0\f42\fs20\fbias0 \s9\fi-358\li3221\jclisttab\tx3223\lin3221 }{\listname ;}\listid752163927}{\list\listtemplateid2088029282{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'02\'00.;}{\levelnumbers\'01;}\b\i0\f42\fs20\fbias0 \fi-357\li357\jclisttab\tx360\lin357 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'01.;}{\levelnumbers\'01;}
+\b\i0\f42\fs20\fbias0 \fi-363\li720\jclisttab\tx720\lin720 }{\listlevel\levelnfc2\levelnfcn2\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'02.;}{\levelnumbers\'01;}\b\i0\f37\fs20\fbias0 \fi-357\li1077
+\jclisttab\tx1440\lin1077 }{\listlevel\levelnfc3\levelnfcn3\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'03.;}{\levelnumbers\'01;}\b0\i0\strike0\f42\fs20\ulnone\fbias0 \fi-358\li1435\jclisttab\tx1437\lin1435 }
+{\listlevel\levelnfc1\levelnfcn1\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'04.;}{\levelnumbers\'01;}\b0\i0\strike0\f42\fs20\ulnone\fbias0 \fi-357\li1792\jclisttab\tx2155\lin1792 }{\listlevel\levelnfc0
+\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'05.;}{\levelnumbers\'01;}\b0\i0\f42\fs20\fbias0 \fi-357\li2149\jclisttab\tx2152\lin2149 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0
+\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'06.;}{\levelnumbers\'01;}\b0\i0\f42\fs20\fbias0 \fi-357\li2506\jclisttab\tx2509\lin2506 }{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0
+{\leveltext\'02i.;}{\levelnumbers;}\b0\i0\f42\fs20\fbias0 \fi-357\li2863\jclisttab\tx2866\lin2863 }{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02A.;}{\levelnumbers;}
+\b0\i0\f42\fs20\fbias0 \fi-358\li3221\jclisttab\tx3223\lin3221 }{\listname ;}\listid800729109}{\list\listtemplateid-296591990\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\leveltemplateid-48305026\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \s31\fi-357\li2863\jclisttab\tx2866\lin2863 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691
+\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}
+\f10\fbias0 \fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li2880
+\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel
+\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23
+\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0
+\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0
+{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid810947713}{\list\listtemplateid1567531878{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0
+\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'00.;}{\levelnumbers\'01;}\b\i0\f42\fs20\fbias0 \fi-357\li357\jclisttab\tx360\lin357 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'02\'01.;}{\levelnumbers\'01;}\b\i0\f42\fs20\fbias0 \fi-363\li720\jclisttab\tx720\lin720 }{\listlevel\levelnfc2\levelnfcn2\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'02.;}{\levelnumbers\'01;}
+\b0\i0\f42\fs20\fbias0 \fi-357\li1077\jclisttab\tx1440\lin1077 }{\listlevel\levelnfc3\levelnfcn3\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'03.;}{\levelnumbers\'01;}\b0\i0\strike0\f42\fs20\ulnone\fbias0
+\fi-358\li1435\jclisttab\tx1437\lin1435 }{\listlevel\levelnfc1\levelnfcn1\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'04.;}{\levelnumbers\'01;}\b0\i0\strike0\f42\fs20\ulnone\fbias0 \fi-357\li1792
+\jclisttab\tx2155\lin1792 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'05.;}{\levelnumbers\'01;}\b0\i0\f42\fs20\fbias0 \fi-357\li2149\jclisttab\tx2152\lin2149 }{\listlevel
+\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'06.;}{\levelnumbers\'01;}\b0\i0\f42\fs20\fbias0 \fi-357\li2506\jclisttab\tx2509\lin2506 }{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0
+\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02i.;}{\levelnumbers;}\b0\i0\f42\fs20\fbias0 \fi-357\li2863\jclisttab\tx2866\lin2863 }{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0
+\levelindent0{\leveltext\'02A.;}{\levelnumbers;}\b0\i0\f42\fs20\fbias0 \fi-358\li3221\jclisttab\tx3223\lin3221 }{\listname ;}\listid826823576}{\list\listtemplateid2088029282{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1
+\levelspace0\levelindent0{\leveltext\'02\'00.;}{\levelnumbers\'01;}\b\i0\f42\fs20\fbias0 \fi-357\li357\jclisttab\tx360\lin357 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'02\'01.;}{\levelnumbers\'01;}\b\i0\f42\fs20\fbias0 \fi-363\li720\jclisttab\tx720\lin720 }{\listlevel\levelnfc2\levelnfcn2\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'02.;}{\levelnumbers\'01;}
+\b\i0\f37\fs20\fbias0 \fi-357\li1077\jclisttab\tx1440\lin1077 }{\listlevel\levelnfc3\levelnfcn3\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'03.;}{\levelnumbers\'01;}\b0\i0\strike0\f42\fs20\ulnone\fbias0
+\fi-358\li1435\jclisttab\tx1437\lin1435 }{\listlevel\levelnfc1\levelnfcn1\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'04.;}{\levelnumbers\'01;}\b0\i0\strike0\f42\fs20\ulnone\fbias0 \fi-357\li1792
+\jclisttab\tx2155\lin1792 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'05.;}{\levelnumbers\'01;}\b0\i0\f42\fs20\fbias0 \fi-357\li2149\jclisttab\tx2152\lin2149 }{\listlevel
+\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'06.;}{\levelnumbers\'01;}\b0\i0\f42\fs20\fbias0 \fi-357\li2506\jclisttab\tx2509\lin2506 }{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0
+\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02i.;}{\levelnumbers;}\b0\i0\f42\fs20\fbias0 \fi-357\li2863\jclisttab\tx2866\lin2863 }{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0
+\levelindent0{\leveltext\'02A.;}{\levelnumbers;}\b0\i0\f42\fs20\fbias0 \fi-358\li3221\jclisttab\tx3223\lin3221 }{\listname ;}\listid974869818}{\list\listtemplateid-1813845996\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0
+\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid2033377338\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \s30\fi-357\li2506\jclisttab\tx2509\lin2506 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0
+\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698689
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}
+\f2\fbias0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li4320
+\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li5040\jclisttab\tx5040\lin5040 }
+{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23
+\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid1219436735}{\list\listtemplateid-41362566
+\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid-1175557160\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \s27\fi-358\li1435\jclisttab\tx1437\lin1435 }{\listlevel
+\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0
+\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0
+\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0
+\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698689
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}
+\f2\fbias0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li6480
+\jclisttab\tx6480\lin6480 }{\listname ;}\listid1559511898}{\list\listtemplateid-743794326\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid1229593488
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \s26\fi-357\li1077\jclisttab\tx1080\lin1077 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}
+\f2\fbias0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li2160
+\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li2880\jclisttab\tx2880\lin2880 }
+{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23
+\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0
+\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
+\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid1567649130}{\list\listtemplateid1363474438\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0
+\levelstartat1\levelspace1077\levelindent0{\leveltext\leveltemplateid1637229796\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \s28\fi-357\li1792\jclisttab\tx1795\lin1792 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
+\levelspace1077\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace1077\levelindent0
+{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace1077\levelindent0{\leveltext
+\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace1077\levelindent0{\leveltext\leveltemplateid67698691
+\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace1077\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}
+\f10\fbias0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace1077\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li5040
+\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace1077\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li5760\jclisttab\tx5760\lin5760 }
+{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace1077\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname
+;}\listid1848404271}{\list\listtemplateid-1802592190\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid961321180\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \s29
+\fi-357\li2149\jclisttab\tx2152\lin2149 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li1440\jclisttab\tx1440\lin1440
+}{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23
+\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0
+\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0
+\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691
+\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}
+\f10\fbias0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid1877695764}{\list\listtemplateid1186249844\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\leveltemplateid1182702444\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \s24\fi-357\li357\jclisttab\tx360\lin357 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691
+\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}
+\f10\fbias0 \fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li2880
+\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel
+\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23
+\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0
+\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0
+{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid2054619191}}{\*\listoverridetable{\listoverride\listid2054619191\listoverridecount0\ls1}
+{\listoverride\listid477573462\listoverridecount0\ls2}{\listoverride\listid1567649130\listoverridecount0\ls3}{\listoverride\listid1559511898\listoverridecount0\ls4}{\listoverride\listid1848404271\listoverridecount0\ls5}{\listoverride\listid1877695764
+\listoverridecount0\ls6}{\listoverride\listid1219436735\listoverridecount0\ls7}{\listoverride\listid810947713\listoverridecount0\ls8}{\listoverride\listid196815738\listoverridecount0\ls9}{\listoverride\listid398796681\listoverridecount0\ls10}
+{\listoverride\listid394402059\listoverridecount0\ls11}{\listoverride\listid700712945\listoverridecount0\ls12}{\listoverride\listid826823576\listoverridecount0\ls13}{\listoverride\listid630479929\listoverridecount0\ls14}{\listoverride\listid800729109
+\listoverridecount0\ls15}{\listoverride\listid974869818\listoverridecount0\ls16}{\listoverride\listid752163927\listoverridecount0\ls17}{\listoverride\listid731125385\listoverridecount0\ls18}}{\*\rsidtbl \rsid17701\rsid345491\rsid415609\rsid466243
+\rsid480810\rsid535495\rsid555183\rsid787759\rsid865813\rsid1012355\rsid1122066\rsid1511228\rsid1528414\rsid1845488\rsid1853295\rsid2784514\rsid3042060\rsid3162620\rsid3290859\rsid3370445\rsid3416253\rsid3611186\rsid3739474\rsid3809599\rsid4022155
+\rsid4542824\rsid4595173\rsid4739523\rsid4789936\rsid4865423\rsid4995346\rsid5185544\rsid5459775\rsid5536377\rsid6162132\rsid6184270\rsid6310792\rsid6498245\rsid6758513\rsid7226971\rsid7290457\rsid7345747\rsid7433926\rsid7438204\rsid7619174\rsid7692510
+\rsid7747805\rsid7878867\rsid8081479\rsid8324055\rsid8325040\rsid8419363\rsid8458805\rsid8738620\rsid8812012\rsid8858237\rsid8999754\rsid9048481\rsid9321702\rsid9651656\rsid9857610\rsid9860938\rsid9964378\rsid10049557\rsid10813938\rsid10970601
+\rsid11347136\rsid11558388\rsid11754382\rsid11874088\rsid12000701\rsid12340994\rsid12585274\rsid12596065\rsid12664082\rsid13334496\rsid13908819\rsid14168694\rsid14293847\rsid14491415\rsid14705568\rsid14894057\rsid14897950\rsid14943232\rsid15493712
+\rsid15601712\rsid15872081\rsid15925451\rsid16141742\rsid16395859\rsid16450365\rsid16661796\rsid16712132}{\*\generator Microsoft Word 11.0.6568;}{\info{\title MICROSOFT [PRE-RELEASE ][EVALUATION ]SOFTWARE LICENSE TERMS}
+{\creatim\yr2006\mo3\dy21\hr15\min26}{\revtim\yr2006\mo3\dy21\hr15\min28}{\printim\yr2005\mo7\dy21\hr8\min25}{\version3}{\edmins4}{\nofpages2}{\nofwords837}{\nofchars4776}{\nofcharsws5602}{\vern24579}}{\*\userprops {\propname db_build_version}\proptype30
+{\staticval 2.6}{\propname db_charger_document_reference}\proptype3{\staticval 5271}{\propname db_charger_client_name}\proptype30{\staticval tbc}{\propname db_charger_matter_number}\proptype30{\staticval tbc}{\propname autosave}\proptype30{\staticval fals
+e}{\propname owner}\proptype30{\staticval REDMOND\'5cdcorey}{\propname db_master_reference}\proptype30{\staticval USETERMS_OTHERSUPER_ENGLISH}{\propname db_master_version}\proptype30{\staticval 20060222a}{\propname db_master_clock}\proptype3{\staticval 35
+8}{\propname db_master_name}\proptype30{\staticval List of Beta, Evaluation or Standalone Software License Terms Languages}{\propname db_master_description}\proptype30{\staticval }{\propname db_base_url}\proptype30{\staticval http://usetermassembly/dealb
+uilder_live/DealBuilderNET/dealbuilder.aspx}{\propname ProductVersion}\proptype30{\staticval 0}{\propname MScom}\proptype11{\staticval 0}{\propname Language}\proptype30{\staticval English}{\propname CanadaAvail}\proptype11{\staticval 0}{\propname FileForm
+at}\proptype11{\staticval 0}{\propname MandatoryActivation}\proptype11{\staticval 0}{\propname SoftwareType}\proptype30{\staticval Free, Standalone Software}{\propname ProductName}\proptype30{\staticval <Insert Name of Sample>}{\propname NumberOfCopies}
+\proptype30{\staticval Any number of copies}{\propname StandaloneUseRight}\proptype30{\staticval Only to design, develop and test the user's programs}{\propname MediaElementsTemplates}\proptype11{\staticval 0}{\propname DistributableCode}\proptype11
+{\staticval 1}{\propname DistributableCodeType}\proptype30{\staticval Sample Code}{\propname Transfer}\proptype30{\staticval No transfer permitted}{\propname OtherMicrosoftPrograms}\proptype11{\staticval 0}{\propname PrereleaseCode}\proptype11{\staticval
+0}{\propname ThirdPartyPrograms}\proptype11{\staticval 0}{\propname Benchmarking}\proptype11{\staticval 0}{\propname MPEG}\proptype11{\staticval 0}{\propname InternetBasedServices}\proptype11{\staticval 0}{\propname db_commit}\proptype30{\staticval Produc
+tVersion}}\margl1440\margr1440\margt1080\margb1080 \widowctrl\ftnbj\aenddoc\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\hyphcaps0\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin1440\dgvorigin1080\dghshow1\dgvshow1
+\jexpand\viewkind4\viewscale125\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\rempersonalinfo\rsidroot10813938\viewbksp1 \fet0
+{\*\docvar {db_xml}{<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>\'0d<!DOCTYPE Document SYSTEM "..\'5cDocument.DTD">\'0d<Document><Control NAME="db_base_url" TYPE="string"><Value>http://usetermassembly/dealbuilder_live/DealBuilderNET/dealbuilder.aspx</Value></Control><C
+ontrol NAME="db_folder_form" TYPE="string"><Value>microsoft</Value></Control><Control NAME="db_folder_stylesheet" TYPE="string"><Value>microsoft</Value></Control><Control NAME="db_folder_image" TYPE="string"><Value>microsoft</Value></Control><Control NAME
+="db_charger_dataset_reference" TYPE="numeric"><Value>5270</Value></Control><Control NAME="db_charger_client_name" TYPE="string"><Value>tbc</Value></Control><Control NAME="db_charger_matter_number" TYPE="string"><Value>tbc</Value></Control><Control NAME="
+db_master_reference" TYPE="string"><Value>USETERMS_OTHERSUPER_ENGLISH</Value></Control><Control NAME="db_master_publish_build" TYPE="string"><Value>2.6</Value></Control><Control NAME="db_master_name" TYPE="string"><Value>List of Beta, Evaluation or Standa
+lone Software License Terms Languages</Value></Control><Control NAME="db_master_description" TYPE="string"><Value> </Value></Control><Control NAME="db_master_version" TYPE="string"><Value>20060222a</Value></Control><Control NAME="db_master_clock" TYPE="nu
+meric"><Value>358</Value></Control><Control NAME="db_master_refresh" TYPE="boolean"><Value>true</Value></Control><Control NAME="db_host_create_onload" TYPE="string"><Value></Value></Control><Control NAME="db_host_input_onload" TYPE="string"><Value></Value
+></Control><Control NAME="db_host_output_onload" TYPE="string"><Value></Value></Control><Control NAME="db_host_exception_onload" TYPE="string"><Value></Value></Control><Control NAME="db_host_javascript" TYPE="string"><Value></Value></Control><Control NAME
+="db_transaction_generator" TYPE="string"><Value>unique</Value></Control><Control NAME="db_transaction_prefix" TYPE="string"><Value></Value></Control><Control NAME="db_transaction_suffix" TYPE="string"><Value></Value></Control><Control NAME="db_evaluate"
+TYPE="boolean"><Value>true</Value></Control><Control NAME="db_evaluate_logic" TYPE="boolean"><Value>true</Value></Control><Control NAME="db_evaluate_repeat" TYPE="boolean"><Value>true</Value></Control><Control NAME="db_evaluate_cross_reference" TYPE="bool
+ean"><Value>true</Value></Control><Control NAME="db_evaluate_calculation" TYPE="boolean"><Value>true</Value></Control><Control NAME="db_evaluate_variable" TYPE="boolean"><Value>true</Value></Control><Control NAME="db_evaluate_include" TYPE="boolean"><Valu
+e>true</Value></Control><Control NAME="db_codeload_include" TYPE="string"><Value>eager</Value></Control><Control NAME="db_locale_input_date_sequence" TYPE="string"><Value>day_month_year</Value></Control><Control NAME="db_locale_input_thousands_char" TYPE=
+"string"><Value>,</Value></Control><Control NAME="db_locale_input_decimalpoint_char" TYPE="string"><Value>.</Value></Control><Control NAME="db_locale_output_date_sequence" TYPE="string"><Value>day_month_year</Value></Control><Control NAME="db_locale_outpu
+t_thousands_char" TYPE="string"><Value>,</Value></Control><Control NAME="db_locale_output_decimalpoint_char" TYPE="string"><Value>.</Value></Control><Control NAME="db_output_hyperlink_target" TYPE="string"><Value>_blank</Value></Control><Control NAME="db_
+output_document_format" TYPE="string"><Value>rtf</Value></Control><Control NAME="db_output_document_redline" TYPE="boolean"><Value>false</Value></Control><Control NAME="db_output_document_redline_cause" TYPE="string"><Value>drafting</Value></Control><Cont
+rol NAME="db_output_document_drafting_notes" TYPE="string"><Value>indefinite</Value></Control><Control NAME="db_output_document_properties" TYPE="string"><Value>true</Value></Control><Control NAME="db_output_document_property" TYPE="string"><Value>autosav
+e|text|false</Value><Value>owner|text|REDMOND\'5cdcorey</Value></Control><Control NAME="db_output_document_variable_xml" TYPE="boolean"><Value>true</Value></Control><Control NAME="db_output_document_termsheet" TYPE="boolean"><Value>false</Value></Control><Co
+ntrol NAME="db_output_document_answers" TYPE="boolean"><Value>true</Value></Control><Control NAME="db_output_document_answers_column" TYPE="string"><Value>prompt</Value><Value>value</Value></Control><Control NAME="db_output_document_answers_row" TYPE="str
+ing"><Value>page</Value><Value>group</Value><Value>sure</Value><Value>unsure</Value><Value>unknown</Value><Value>deferred</Value></Control><Control NAME="db_output_document_answers_relaunch_transaction_hyperlink" TYPE="boolean"><Value>false</Value></Contr
+ol><Control NAME="db_output_document_answers_relaunch_transaction_url" TYPE="string"><Value></Value></Control><Control NAME="db_output_filter_reference" TYPE="string"><Value></Value></Control><Control NAME="db_output_variable_as" TYPE="string"><Value>alia
+s</Value></Control><Control NAME="db_output_variable_highlights" TYPE="boolean"><Value>false</Value></Control><Control NAME="db_output_variable_sequence" TYPE="string"><Value>ascending</Value></Control><Control NAME="db_output_white_space" TYPE="boolean">
+<Value>false</Value></Control><Control NAME="db_output_line_breaks" TYPE="boolean"><Value>true</Value></Control><Control NAME="db_input_show_column_headings" TYPE="boolean"><Value>false</Value></Control><Control NAME="db_input_heading_repetition_column" T
+YPE="string"><Value>Repeat</Value></Control><Control NAME="db_input_heading_highlight_column" TYPE="string"><Value>Check</Value></Control><Control NAME="db_input_heading_prompt_column" TYPE="string"><Value>Prompt</Value></Control><Control NAME="db_input_h
+eading_question_column" TYPE="string"><Value>Answer</Value></Control><Control NAME="db_input_heading_state_column" TYPE="string"><Value>Deferral</Value></Control><Control NAME="db_input_heading_guidance_column" TYPE="string"><Value>Guidance</Value></Contr
+ol><Control NAME="db_input_heading_comment_column" TYPE="string"><Value>Insert your comments below</Value></Control><Control NAME="db_input_heading_variable_name_column" TYPE="string"><Value>Variable</Value></Control><Control NAME="db_input_help_url" TYPE
+="string"><Value>/dealbuilder_live/help/dealbuilder/help.html</Value></Control><Control NAME="db_input_data_validation" TYPE="string"><Value>onsubmit</Value></Control><Control NAME="db_input_show_page_title" TYPE="boolean"><Value>true</Value></Control><Co
+ntrol NAME="db_input_show_group_title" TYPE="boolean"><Value>true</Value></Control><Control NAME="db_input_show_repetition_column" TYPE="boolean"><Value>false</Value></Control><Control NAME="db_input_show_state_column" TYPE="boolean"><Value>true</Value></
+Control><Control NAME="db_input_show_variable_name_column" TYPE="boolean"><Value>false</Value></Control><Control NAME="db_input_show_committed" TYPE="boolean"><Value>false</Value></Control><Control NAME="db_input_show_group_state" TYPE="boolean"><Value>tr
+ue</Value></Control><Control NAME="db_input_show_group_state_threshold" TYPE="numeric"><Value>2</Value></Control><Control NAME="db_input_state_display" TYPE="string"><Value>dropdown</Value></Control><Control NAME="db_input_state_preselect" TYPE="string"><
+Value>sure</Value></Control><Control NAME="db_input_unknown_option" TYPE="string"><Value>Unknown</Value></Control><Control NAME="db_input_unknown_position" TYPE="string"><Value>first</Value></Control><Control NAME="db_input_other_option" TYPE="string"><Va
+lue>Other</Value></Control><Control NAME="db_input_other_position" TYPE="string"><Value>last</Value></Control><Control NAME="db_input_other_width_single" TYPE="numeric"><Value>20</Value></Control><Control NAME="db_input_other_width_multiple" TYPE="numeric
+"><Value>20</Value></Control><Control NAME="db_input_other_depth_multiple" TYPE="numeric"><Value>4</Value></Control><Control NAME="db_input_other_prompt_multiple" TYPE="string"><Value>Specify others:</Value></Control><Control NAME="db_input_other_prompt_s
+ingle" TYPE="string"><Value>Specify other:</Value></Control><Control NAME="db_input_other_prompt_break_before" TYPE="numeric"><Value>1</Value></Control><Control NAME="db_input_other_prompt_break_after" TYPE="numeric"><Value>1</Value></Control><Control NAM
+E="db_input_active_separator_sure_multiline" TYPE="string"><Value>, </Value></Control><Control NAME="db_input_active_separator_sure_multiple" TYPE="string"><Value> and </Value></Control><Control NAME="db_input_active_separator_unsure_multiple" TYPE="strin
+g"><Value> and/or </Value></Control><Control NAME="db_input_active_separator_unsure_single" TYPE="string"><Value> or </Value></Control><Control NAME="db_input_active_boolean_true" TYPE="string"><Value>Yes</Value></Control><Control NAME="db_input_active_bo
+olean_false" TYPE="string"><Value>No</Value></Control><Control NAME="db_input_repeat_navigation_prefix" TYPE="string"><Value>(%1 of %2)&amp\'3bnbsp\'3b</Value></Control><Control NAME="db_input_repeat_navigation_postfix" TYPE="string"><Value></Value></Control><C
+ontrol NAME="db_input_repeat_navigation_portrayal" TYPE="string"><Value>visible</Value></Control><Control NAME="db_input_repeat_format" TYPE="string"><Value>digits</Value></Control><Control NAME="db_input_repeat_prev" TYPE="string"><Value>Prev</Value></Co
+ntrol><Control NAME="db_input_repeat_next" TYPE="string"><Value>Next</Value></Control><Control NAME="db_input_repeat_separator" TYPE="string"><Value>&amp\'3bnbsp\'3b|&amp\'3bnbsp\'3b</Value></Control><Control NAME="db_input_prompt_compulsory_symbol" TYPE="string"><Va
+lue>*</Value></Control><Control NAME="db_input_prompt_compulsory_symbol_location" TYPE="string"><Value>after</Value></Control><Control NAME="db_input_question_compulsory_symbol" TYPE="string"><Value></Value></Control><Control NAME="db_input_question_compu
+lsory_symbol_location" TYPE="string"><Value>after</Value></Control><Control NAME="db_input_disable_when_unknown_compulsory" TYPE="boolean"><Value>true</Value></Control><Control NAME="db_input_disable_when_unknown_non_compulsory" TYPE="boolean"><Value>fals
+e</Value></Control><Control NAME="db_input_simple_alert" TYPE="string"><Value>client_side</Value></Control><Control NAME="db_input_warning_irrelevant_page" TYPE="string"><Value>&lt\'3bU&gt\'3bWARNING:&lt\'3b/U&gt\'3b That page is no longer relevant because of answers
+ given on this page or a previous page!</Value></Control><Control NAME="db_input_last_page_next_button" TYPE="string"><Value>enabled</Value></Control><Control NAME="db_input_page_goto_list_content" TYPE="string"><Value>relevant_pages</Value></Control><Var
+iable NAME="ProductVersion" TYPE="string" STATUS="sure"><Value>0</Value></Variable><Variable NAME="MScom" TYPE="boolean" STATUS="sure"><Value>0</Value></Variable><Variable NAME="Language" TYPE="select" STATUS="sure"><Value>English</Value></Variable><Varia
+ble NAME="CanadaAvail" TYPE="boolean" STATUS="sure"><Value>0</Value></Variable><Variable NAME="FileFormat" TYPE="boolean" STATUS="sure"><Value>0</Value></Variable><Variable NAME="SoftwareType" TYPE="select" STATUS="sure"><Value>Free, Standalone Software</
+Value></Variable><Variable NAME="ProductName" TYPE="string" STATUS="sure"><Value>&lt\'3bInsert Name of Sample&gt\'3b</Value></Variable><Variable NAME="NumberOfCopies" TYPE="select" STATUS="sure"><Value>Any number of copies</Value></Variable><Variable NAME="Stan
+daloneUseRight" TYPE="select" STATUS="sure"><Value>Only to design, develop and test the user&apos\'3bs programs</Value></Variable><Variable NAME="MediaElementsTemplates" TYPE="boolean" STATUS="sure"><Value>0</Value></Variable><Variable NAME="DistributableCod
+e" TYPE="boolean" STATUS="sure"><Value>1</Value></Variable><Variable NAME="DistributableCodeType" TYPE="select" STATUS="sure"><Value>Sample Code</Value></Variable><Variable NAME="Transfer" TYPE="select" STATUS="sure"><Value>No transfer permitted</Value></
+Variable><Variable NAME="OtherMicrosoftPrograms" TYPE="boolean" STATUS="sure"><Value>0</Value></Variable><Variable NAME="PrereleaseCode" TYPE="boolean" STATUS="sure"><Value>0</Value></Variable><Variable NAME="ThirdPartyPrograms" TYPE="boolean" STATUS="sur
+e"><Value>0</Value></Variable><Variable NAME="Benchmarking" TYPE="boolean" STATUS="sure"><Value>0</Value></Variable><Variable NAME="MPEG" TYPE="boolean" STATUS="sure"><Value>0</Value></Variable><Variable NAME="InternetBasedServices" TYPE="boolean" STATUS=
+"sure"><Value>0</Value></Variable></Document>}}{\*\ftnsep \pard\plain \ql \li0\ri0\sb120\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs19\lang1033\langfe1033\loch\af37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 {
+\insrsid11558388 \chftnsep
+\par }}{\*\ftnsepc \pard\plain \ql \li0\ri0\sb120\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs19\lang1033\langfe1033\loch\af37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 {\insrsid11558388 \chftnsepc
+\par }}{\*\aftnsep \pard\plain \ql \li0\ri0\sb120\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs19\lang1033\langfe1033\loch\af37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 {\insrsid11558388 \chftnsep
+\par }}{\*\aftnsepc \pard\plain \ql \li0\ri0\sb120\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs19\lang1033\langfe1033\loch\af37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 {\insrsid11558388 \chftnsepc
+\par }}\sectd \psz1\linex0\endnhere\sectlinegrid360\sectdefaultcl\sectrsid3290859\sftnbj {\*\pnseclvl1\pnucrm\pnqc\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnqc\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3
+\pndec\pnqc\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnqc\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnqc\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnqc\pnstart1\pnindent720\pnhang
+{\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnqc\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnqc\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnqc\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}
+\pard\plain \s33\ql \li0\ri0\sb120\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid1511228 \b\fs28\lang1033\langfe1033\loch\af37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 {\insrsid1511228\charrsid11558388
+\hich\af37\dbch\af11\loch\f37 MICROSOFT SOFTWARE LICENSE TERMS
+\par }\pard\plain \s34\ql \li0\ri0\sb120\sa120\widctlpar\brdrb\brdrs\brdrw10\brsp20 \aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid1511228 \b\fs28\lang1033\langfe1033\loch\af37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 {
+\insrsid1511228\charrsid11558388 \hich\af37\dbch\af11\loch\f37 MICROSOFT }{\insrsid12340994 \hich\af37\dbch\af11\loch\f37 CLR MANAGED DEBUGGER (MDBG) SOURCE SAMPLE}{\insrsid1511228\charrsid11558388
+\par }\pard\plain \s35\ql \li0\ri0\sb120\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid1511228 \b\fs19\lang1033\langfe1033\loch\af37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 {\b0\insrsid1511228\charrsid11558388
+\hich\af37\dbch\af11\loch\f37 These license terms are an agreement between Microsoft Corporation (or based on where you live, one of i\hich\af37\dbch\af11\loch\f37
+ts affiliates) and you. Please read them. They apply to the software named above, which includes the media on which you received it, if any. The terms also apply to any Microsoft
+\par {\listtext\pard\plain\s25 \f3\fs19\lang1033\langfe1033\langfenp1033\insrsid1511228\charrsid11558388 \loch\af3\dbch\af11\hich\f3 \'b7\tab}}\pard\plain \s25\ql \fi-363\li720\ri0\sb120\sa120\widctlpar
+\jclisttab\tx720\aspalpha\aspnum\faauto\ls2\adjustright\rin0\lin720\itap0\pararsid1511228 \fs19\lang1033\langfe1033\loch\af37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 {\insrsid1511228\charrsid11558388 \hich\af37\dbch\af11\loch\f37 updates,
+\par {\listtext\pard\plain\s25 \f3\fs19\lang1033\langfe1033\langfenp1033\insrsid1511228\charrsid11558388 \loch\af3\dbch\af11\hich\f3 \'b7\tab}\hich\af37\dbch\af11\loch\f37 supplements,
+\par {\listtext\pard\plain\s25 \f3\fs19\lang1033\langfe1033\langfenp1033\insrsid1511228\charrsid11558388 \loch\af3\dbch\af11\hich\f3 \'b7\tab}\hich\af37\dbch\af11\loch\f37 Internet-based services, and
+\par {\listtext\pard\plain\s25 \f3\fs19\lang1033\langfe1033\langfenp1033\insrsid1511228\charrsid11558388 \loch\af3\dbch\af11\hich\f3 \'b7\tab}\hich\af37\dbch\af11\loch\f37 support servic\hich\af37\dbch\af11\loch\f37 es
+\par }\pard\plain \s35\ql \li0\ri0\sb120\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid1511228 \b\fs19\lang1033\langfe1033\loch\af37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 {\b0\insrsid1511228\charrsid11558388
+\hich\af37\dbch\af11\loch\f37 for this software, unless other terms accompany those items. If so, those terms apply.
+\par }{\insrsid1511228\charrsid11558388 \hich\af37\dbch\af11\loch\f37 BY USING THE SOFTWARE, YOU ACCEPT THESE TERMS. IF YOU DO NOT ACCEPT THEM, DO NOT USE THE SOFTWARE.
+\par }\pard\plain \s52\ql \li0\ri0\sb120\sa120\widctlpar\brdrt\brdrs\brdrw10\brsp20 \aspalpha\aspnum\faauto\adjustright\rin0\lin0\rtlgutter\itap0\pararsid1511228 \b\fs19\lang1033\langfe1033\loch\af37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 {
+\insrsid1511228\charrsid11558388 \hich\af37\dbch\af11\loch\f37 If you comply with these license terms, you have the rights below\hich\af37\dbch\af11\loch\f37 .
+\par {\listtext\pard\plain\s1 \b\f42\fs20\lang1033\langfe1033\langfenp1033\insrsid1511228\charrsid11558388 \hich\af42\dbch\af11\loch\f42 1.\tab}}\pard\plain \s1\ql \fi-357\li357\ri0\sb120\sa120\widctlpar
+\jclisttab\tx360\aspalpha\aspnum\faauto\ls17\outlinelevel0\adjustright\rin0\lin357\itap0\pararsid1511228 \b\fs19\lang1033\langfe1033\loch\af37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 {\insrsid1511228\charrsid11558388
+\hich\af37\dbch\af11\loch\f37 INSTALLATION AND USE RIGHTS. }{\b0\insrsid6310792\charrsid6310792
+\par {\listtext\pard\plain\s2 \cs48\b\f3\fs20\lang1033\langfe1033\langfenp1033\insrsid1511228\charrsid11558388 \loch\af3\dbch\af11\hich\f3 \'b7\tab}}\pard\plain \s2\ql \fi-360\li717\ri0\sb120\sa120\widctlpar
+\jclisttab\tx717\aspalpha\aspnum\faauto\ls18\ilvl1\outlinelevel1\adjustright\rin0\lin717\itap0\pararsid6310792 \b\fs19\lang1033\langfe1033\loch\af37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 {\cs48\b0\insrsid1511228\charrsid11558388
+\hich\af37\dbch\af11\loch\f37 You may install}{\cs48\b0\insrsid1511228 \hich\af37\dbch\af11\loch\f37 , modify}{\cs48\b0\insrsid1511228\charrsid11558388 \hich\af37\dbch\af11\loch\f37
+ and use any number of copies of the software on your devices to design, develop and test your programs.}{\cs48\b0\insrsid6310792 \hich\af37\dbch\af11\loch\f37 }{\cs48\insrsid6310792\charrsid6310792
+\par {\listtext\pard\plain\s2 \cs48\b\f3\fs20\lang1033\langfe1033\langfenp1033\insrsid6310792 \loch\af3\dbch\af11\hich\f3 \'b7\tab}}{\cs48\b0\insrsid6310792 \hich\af37\dbch\af11\loch\f37 You may not }{\b0\insrsid6310792\charrsid6310792
+\hich\af37\dbch\af11\loch\f37 use the software for commercial software hosting services}{\insrsid6310792 \hich\af37\dbch\af11\loch\f37 .}{\insrsid1511228\charrsid6310792
+\par {\listtext\pard\plain\s1 \b\f42\fs20\lang1033\langfe1033\langfenp1033\insrsid1511228\charrsid11558388 \hich\af42\dbch\af11\loch\f42 2.\tab}}\pard\plain \s1\ql \fi-357\li357\ri0\sb120\sa120\widctlpar
+\jclisttab\tx360\aspalpha\aspnum\faauto\ls17\outlinelevel0\adjustright\rin0\lin357\itap0\pararsid1511228 \b\fs19\lang1033\langfe1033\loch\af37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 {\insrsid1511228\charrsid11558388
+\hich\af37\dbch\af11\loch\f37 ADDITIONAL LICENSING REQUIREMENTS AND/OR USE RIGHTS.
+\par {\listtext\pard\plain\s2 \b\f42\fs20\lang1033\langfe1033\langfenp1033\insrsid1511228\charrsid11558388 \hich\af42\dbch\af11\loch\f42 a.\tab}}\pard\plain \s2\ql \fi-363\li720\ri0\sb120\sa120\widctlpar
+\jclisttab\tx720\aspalpha\aspnum\faauto\ls17\ilvl1\outlinelevel1\adjustright\rin0\lin720\itap0\pararsid1511228 \b\fs19\lang1033\langfe1033\loch\af37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 {\insrsid1511228\charrsid11558388
+\hich\af37\dbch\af11\loch\f37 Distributable Code.}{\cs48\b0\insrsid1511228 \hich\af37\dbch\af11\loch\f37 }{\insrsid1511228\charrsid11558388
+\par {\listtext\pard\plain\s40 \cs48\b\f37\fs20\lang1033\langfe1033\langfenp1033\insrsid1511228 \hich\af37\dbch\af11\loch\f37 i.\tab}}\pard\plain \s40\ql \fi-357\li1077\ri0\sb120\sa120\widctlpar
+\jclisttab\tx1077\jclisttab\tx1440\aspalpha\aspnum\faauto\ls10\ilvl2\outlinelevel2\adjustright\rin0\lin1077\itap0\pararsid1511228 \b\fs19\lang1033\langfe1033\loch\af37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 {\cs48\insrsid1511228
+\hich\af37\dbch\af11\loch\f37 Distribution License}{\cs48\b0\insrsid1511228 \hich\af37\dbch\af11\loch\f37 . I}{\cs48\b0\insrsid1511228\charrsid11558388 \hich\af37\dbch\af11\loch\f37 f you comply with }{\cs48\b0\insrsid1511228
+\hich\af37\dbch\af11\loch\f37 all of }{\cs48\b0\insrsid1511228\charrsid11558388 \hich\af37\dbch\af11\loch\f37 the terms below}{\cs48\b0\insrsid1511228 \hich\af37\dbch\af11\loch\f37 , you may}{\insrsid1511228\charrsid11558388
+\par {\listtext\pard\plain\s41 \f3\fs19\lang1033\langfe1033\langfenp1033\insrsid1511228 \loch\af3\dbch\af11\hich\f3 \'b7\tab}}\pard\plain \s41\ql \fi-358\li1435\ri0\sb120\sa120\widctlpar
+\jclisttab\tx1437\aspalpha\aspnum\faauto\ls4\adjustright\rin0\lin1435\itap0\pararsid1511228 \fs19\ul\lang1033\langfe1033\loch\af37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 {\ulnone\insrsid1511228 \hich\af37\dbch\af11\loch\f37 reproduce and }{
+\ulnone\insrsid1511228\charrsid11558388 \hich\af37\dbch\af11\loch\f37 distribute }{\ulnone\insrsid3809599 \hich\af37\dbch\af11\loch\f37 the software }{\ulnone\insrsid1511228 \hich\af37\dbch\af11\loch\f37
+in source or object code form ("Distributable Code") }{\ulnone\insrsid3809599 \hich\af37\dbch\af11\loch\f37 along with your modifications }{\ulnone\insrsid1511228 \hich\af37\dbch\af11\loch\f37 in programs you develop; and}{
+\insrsid1511228\charrsid11558388
+\par {\listtext\pard\plain\s41 \f3\fs19\lang1033\langfe1033\langfenp1033\insrsid1511228\charrsid11558388 \loch\af3\dbch\af11\hich\f3 \'b7\tab}}{\ulnone\insrsid1511228\charrsid11558388 \hich\af37\dbch\af11\loch\f37
+permit distributors of your programs to copy and distribute the Distributable Code as part of }{\ulnone\insrsid1511228 \hich\af37\dbch\af11\loch\f37 your}{\ulnone\insrsid1511228\charrsid11558388 \hich\af37\dbch\af11\loch\f37 programs.}{
+\insrsid1511228\charrsid11558388
+\par {\listtext\pard\plain\s40 \b\f37\fs20\lang1033\langfe1033\langfenp1033\insrsid1511228\charrsid11558388 \hich\af37\dbch\af11\loch\f37 ii.\tab}}\pard\plain \s40\ql \fi-357\li1077\ri0\sb120\sa120\widctlpar
+\jclisttab\tx1077\jclisttab\tx1440\aspalpha\aspnum\faauto\ls10\ilvl2\outlinelevel2\adjustright\rin0\lin1077\itap0\pararsid1511228 \b\fs19\lang1033\langfe1033\loch\af37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 {\insrsid1511228\charrsid11558388
+\hich\af37\dbch\af11\loch\f37 Distribution Requirements}{\b0\insrsid1511228\charrsid11558388 \hich\af37\dbch\af11\loch\f37 .}{\cs49\b0\insrsid1511228\charrsid11558388 \hich\af37\dbch\af11\loch\f37 For any Distributable Code you distribute, you must}{
+\insrsid1511228\charrsid11558388
+\par {\listtext\pard\plain\s27 \f3\fs19\lang1033\langfe1033\langfenp1033\insrsid1511228\charrsid11558388 \loch\af3\dbch\af11\hich\f3 \'b7\tab}}\pard\plain \s27\ql \fi-358\li1435\ri0\sb120\sa120\widctlpar
+\jclisttab\tx1437\aspalpha\aspnum\faauto\ls4\adjustright\rin0\lin1435\itap0\pararsid1511228 \fs19\lang1033\langfe1033\loch\af37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 {\insrsid1511228\charrsid11558388 \hich\af37\dbch\af11\loch\f37
+add significant primary functionality to it in your programs;
+\par {\listtext\pard\plain\s27 \f3\fs19\lang1033\langfe1033\langfenp1033\insrsid1511228\charrsid11558388 \loch\af3\dbch\af11\hich\f3 \'b7\tab}\hich\af37\dbch\af11\loch\f37
+require distributors and external end users to agree to terms that protect it at least as much as this agreement;
+\par {\listtext\pard\plain\s27 \f3\fs19\lang1033\langfe1033\langfenp1033\insrsid1511228\charrsid11558388 \loch\af3\dbch\af11\hich\f3 \'b7\tab}\hich\af37\dbch\af11\loch\f37 display your valid copyright notice on your programs; and
+\par {\listtext\pard\plain\s27 \f3\fs19\lang1033\langfe1033\langfenp1033\insrsid1511228\charrsid11558388 \loch\af3\dbch\af11\hich\f3 \'b7\tab}\hich\af37\dbch\af11\loch\f37 indemnify, defe\hich\af37\dbch\af11\loch\f37
+nd, and hold harmless Microsoft from any claims, including attorneys\hich\f37 \rquote \loch\f37 fees, related to the distribution or use of your programs.
+\par {\listtext\pard\plain\s40 \b\f37\fs20\lang1033\langfe1033\langfenp1033\insrsid1511228\charrsid11558388 \hich\af37\dbch\af11\loch\f37 iii.\tab}}\pard\plain \s40\ql \fi-357\li1077\ri0\sb120\sa120\widctlpar
+\jclisttab\tx1077\jclisttab\tx1440\aspalpha\aspnum\faauto\ls10\ilvl2\outlinelevel2\adjustright\rin0\lin1077\itap0\pararsid1511228 \b\fs19\lang1033\langfe1033\loch\af37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 {\insrsid1511228\charrsid11558388
+\hich\af37\dbch\af11\loch\f37 Distribution Restrictions.}{\cs49\insrsid1511228\charrsid11558388 \hich\af37\dbch\af11\loch\f37 }{\cs49\b0\insrsid1511228\charrsid11558388 \hich\af37\dbch\af11\loch\f37 You may not}{\insrsid1511228\charrsid11558388
+\par {\listtext\pard\plain\s27 \f3\fs19\lang1033\langfe1033\langfenp1033\insrsid1511228\charrsid11558388 \loch\af3\dbch\af11\hich\f3 \'b7\tab}}\pard\plain \s27\ql \fi-358\li1435\ri0\sb120\sa120\widctlpar
+\jclisttab\tx1437\aspalpha\aspnum\faauto\ls4\adjustright\rin0\lin1435\itap0\pararsid1511228 \fs19\lang1033\langfe1033\loch\af37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 {\insrsid1511228\charrsid11558388 \hich\af37\dbch\af11\loch\f37
+alter any copyright, trademark or patent notice in the Distributable Code;
+\par {\listtext\pard\plain\s27 \f3\fs19\lang1033\langfe1033\langfenp1033\insrsid1511228\charrsid11558388 \loch\af3\dbch\af11\hich\f3 \'b7\tab}\hich\af37\dbch\af11\loch\f37 us\hich\af37\dbch\af11\loch\f37 e Microsoft\hich\f37 \rquote \loch\f37
+s trademarks in your programs\hich\f37 \rquote \loch\f37 names or in a way that suggests your programs come from or are endorsed by Microsoft;
+\par {\listtext\pard\plain\s27 \f3\fs19\lang1033\langfe1033\langfenp1033\insrsid1511228\charrsid11558388 \loch\af3\dbch\af11\hich\f3 \'b7\tab}\hich\af37\dbch\af11\loch\f37 distribute Distributable Code to run on a platform other than the Windows platform;
+
+\par {\listtext\pard\plain\s27 \f3\fs19\lang1033\langfe1033\langfenp1033\insrsid1511228\charrsid11558388 \loch\af3\dbch\af11\hich\f3 \'b7\tab}\hich\af37\dbch\af11\loch\f37 include Distributable Code in malicious, deceptive or unlawful programs; or
+\par {\listtext\pard\plain\s27 \f3\fs19\lang1033\langfe1033\langfenp1033\insrsid1511228\charrsid11558388 \loch\af3\dbch\af11\hich\f3 \'b7\tab}\hich\af37\dbch\af11\loch\f37
+modify or distribute the source code of any Distributable Code so that any part of it becomes subject to an Excluded License. An Excluded License is one that requires, as a cond\hich\af37\dbch\af11\loch\f37
+ition of use, modification or distribution, that
+\par {\listtext\pard\plain\s28 \f3\fs19\lang1033\langfe1033\langfenp1033\insrsid1511228\charrsid11558388 \loch\af3\dbch\af11\hich\f3 \'b7\tab}}\pard\plain \s28\ql \fi-357\li1792\ri0\sb120\sa120\widctlpar
+\jclisttab\tx1795\aspalpha\aspnum\faauto\ls5\adjustright\rin0\lin1792\itap0\pararsid1511228 \fs19\lang1033\langfe1033\loch\af37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 {\insrsid1511228\charrsid11558388 \hich\af37\dbch\af11\loch\f37
+the code be disclosed or distributed in source code form; or
+\par {\listtext\pard\plain\s28 \f3\fs19\lang1033\langfe1033\langfenp1033\insrsid1511228\charrsid11558388 \loch\af3\dbch\af11\hich\f3 \'b7\tab}\hich\af37\dbch\af11\loch\f37 others have the right to modify it.
+\par {\listtext\pard\plain\s1 \b\caps\f42\fs20\lang1033\langfe1033\langfenp1033\insrsid1511228\charrsid11558388 \hich\af42\dbch\af11\loch\f42 3.\tab}}\pard\plain \s1\ql \fi-357\li357\ri0\sb120\sa120\widctlpar
+\jclisttab\tx360\aspalpha\aspnum\faauto\ls17\outlinelevel0\adjustright\rin0\lin357\itap0\pararsid1511228 \b\fs19\lang1033\langfe1033\loch\af37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 {\caps\insrsid1511228\charrsid11558388
+\hich\af37\dbch\af11\loch\f37 Scope of License}{\insrsid1511228\charrsid11558388 \hich\af37\dbch\af11\loch\f37 .}{\b0\insrsid1511228\charrsid11558388 \hich\af37\dbch\af11\loch\f37
+ The software is licensed, not sold. This agreement only gives you some rights to us\hich\af37\dbch\af11\loch\f37
+e the software. Microsoft reserves all other rights. Unless applicable law gives you more rights despite this limitation, you may use the software only as expressly permitted in this agreement. }{\insrsid1511228\charrsid11558388
+\par {\listtext\pard\plain\s1 \b\caps\f42\fs20\lang1033\langfe1033\langfenp1033\insrsid1511228\charrsid11558388 \hich\af42\dbch\af11\loch\f42 4.\tab}}{\caps\insrsid1511228\charrsid11558388 \hich\af37\dbch\af11\loch\f37 Export Restrictions}{
+\insrsid1511228\charrsid11558388 \hich\af37\dbch\af11\loch\f37 .}{\b0\insrsid1511228\charrsid11558388 \hich\af37\dbch\af11\loch\f37 The software is subject to United\hich\af37\dbch\af11\loch\f37
+ States export laws and regulations. You must comply with all domestic and international export laws and regulations that apply to the software. These laws include restrictions on destinations, end users and end use. For additional information, see }
+{\field\flddirty{\*\fldinst {\cs61\b0\ul\cf2\insrsid1511228\charrsid11558388 \hich\af37\dbch\af11\loch\f37 HYP\hich\af37\dbch\af11\loch\f37 ERLINK "http://www.microsoft.com/exporting" }{\cs61\b0\ul\cf2\insrsid1853295\charrsid11558388 {\*\datafield
+00d0c9ea79f9bace118c8200aa004ba90b02000000170000001c0000007700770077002e006d006900630072006f0073006f00660074002e0063006f006d002f006500780070006f007200740069006e0067000000e0c9ea79f9bace118c8200aa004ba90b4600000068007400740070003a002f002f007700770077002e00
+6d006900630072006f0073006f00660074002e0063006f006d002f006500780070006f007200740069006e006700000000000000000000000000000000000000000000000000000000e10000000000000000001800000000000000000000000000000000000000000000000000000000000000000000140000000000000000
+00007220000000010000000000002000000000004e000000000000000000000000}}}{\fldrslt {\cs61\b0\ul\cf2\insrsid1511228\charrsid11558388 \hich\af37\dbch\af11\loch\f37 www.microsoft.com/exporting}}}{\b0\insrsid1511228\charrsid11558388 \hich\af37\dbch\af11\loch\f37
+.}{\cs61\insrsid1511228\charrsid11558388
+\par {\listtext\pard\plain\s1 \b\caps\f42\fs20\lang1033\langfe1033\langfenp1033\insrsid1511228\charrsid11558388 \hich\af42\dbch\af11\loch\f42 5.\tab}}{\caps\insrsid1511228\charrsid11558388 \hich\af37\dbch\af11\loch\f37 SUPPORT SERVICES.}{
+\insrsid1511228\charrsid11558388 \hich\af37\dbch\af11\loch\f37 }{\b0\insrsid1511228\charrsid11558388 \hich\af37\dbch\af11\loch\f37 \hich\f37 Because this software is \'93\loch\f37 \hich\f37 as is,\'94\loch\f37 we may not provide support services for it.
+}{\insrsid1511228\charrsid11558388
+\par {\listtext\pard\plain\s1 \b\caps\f42\fs20\lang1033\langfe1033\langfenp1033\insrsid1511228\charrsid11558388 \hich\af42\dbch\af11\loch\f42 6.\tab}}{\caps\insrsid1511228\charrsid11558388 \hich\af37\dbch\af11\loch\f37 Entire Agreement.}{
+\b0\insrsid1511228\charrsid11558388 \hich\af37\dbch\af11\loch\f37 This agreement, and the terms for supplements, updates, Int\hich\af37\dbch\af11\loch\f37
+ernet-based services and support services that you use, are the entire agreement for the software and support services.
+\par {\listtext\pard\plain\s1 \b\caps\f42\fs20\cf1\lang1033\langfe1033\langfenp1033\insrsid1511228\charrsid11558388 \hich\af42\dbch\af11\loch\f42 7.\tab}}\pard
+\s1\ql \fi-360\li360\ri0\sb120\sa120\keepn\widctlpar\aspalpha\aspnum\faauto\ls17\outlinelevel0\adjustright\rin0\lin360\itap0\pararsid1511228 {\caps\cf1\insrsid1511228\charrsid11558388 \hich\af37\dbch\af11\loch\f37 Applicable Law}{
+\cf1\insrsid1511228\charrsid11558388 \hich\af37\dbch\af11\loch\f37 .
+\par {\listtext\pard\plain\s2 \b\f42\fs20\lang1033\langfe1033\langfenp1033\insrsid1511228\charrsid11558388 \hich\af42\dbch\af11\loch\f42 a.\tab}}\pard\plain \s2\ql \fi-363\li720\ri0\sb120\sa120\widctlpar
+\jclisttab\tx720\aspalpha\aspnum\faauto\ls17\ilvl1\outlinelevel1\adjustright\rin0\lin720\itap0\pararsid1511228 \b\fs19\lang1033\langfe1033\loch\af37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 {\insrsid1511228\charrsid11558388
+\hich\af37\dbch\af11\loch\f37 United States.}{\b0\insrsid1511228\charrsid11558388 \hich\af37\dbch\af11\loch\f37 If you acquired the software in the United States, Washington state law go\hich\af37\dbch\af11\loch\f37
+verns the interpretation of this agreement and applies to claims for breach of it, regardless of conflict of laws principles. The laws of the state where you live govern all other claims, including claims under state consumer protection laws, unfair comp
+\hich\af37\dbch\af11\loch\f37 e\hich\af37\dbch\af11\loch\f37 tition laws, and in tort.}{\insrsid1511228\charrsid11558388
+\par {\listtext\pard\plain\s2 \b\f42\fs20\lang1033\langfe1033\langfenp1033\insrsid1511228\charrsid11558388 \hich\af42\dbch\af11\loch\f42 b.\tab}}{\insrsid1511228\charrsid11558388 \hich\af37\dbch\af11\loch\f37 Outside the United States.}{
+\b0\insrsid1511228\charrsid11558388 \hich\af37\dbch\af11\loch\f37 If you acquired the software in any other country, the laws of that country apply.}{\insrsid1511228\charrsid11558388
+\par {\listtext\pard\plain\s1 \b\caps\f42\fs20\lang1033\langfe1033\langfenp1033\insrsid1511228\charrsid11558388 \hich\af42\dbch\af11\loch\f42 8.\tab}}\pard\plain \s1\ql \fi-357\li357\ri0\sb120\sa120\widctlpar
+\jclisttab\tx360\aspalpha\aspnum\faauto\ls17\outlinelevel0\adjustright\rin0\lin357\itap0\pararsid1511228 \b\fs19\lang1033\langfe1033\loch\af37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 {\caps\insrsid1511228\charrsid11558388
+\hich\af37\dbch\af11\loch\f37 Legal Effect.}{\b0\insrsid1511228\charrsid11558388 \hich\af37\dbch\af11\loch\f37 This agreement describes certain legal rights. You may have other rights under the laws of your c\hich\af37\dbch\af11\loch\f37
+ountry. You may also have rights with respect to the party from whom you acquired the software. This agreement does not change your rights under the laws of your country if the laws of your country do not permit it to do so.}{
+\caps\insrsid1511228\charrsid11558388
+\par {\listtext\pard\plain\s1 \b\caps\f42\fs20\lang1033\langfe1033\langfenp1033\insrsid1511228\charrsid11558388 \hich\af42\dbch\af11\loch\f42 9.\tab}}{\caps\insrsid1511228\charrsid11558388 \hich\af37\dbch\af11\loch\f37 Disclaimer of Warranty.}{
+\insrsid1511228\charrsid11558388 \hich\af37\dbch\af11\loch\f37 }{\caps\insrsid1511228\charrsid11558388 \hich\af37\dbch\af11\loch\f37 \hich\f37 The software is licensed \'93\loch\f37 \hich\f37 as-is.\'94\loch\f37
+ You bear the risk of using it. Microsoft gives no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this agreement cannot change. To the extent permitted\hich\af37\dbch\af11\loch\f37
+\hich\af37\dbch\af11\loch\f37 under your local laws, Microsoft excludes the implied warranties of merchantability, fitness for a particular purpose and non-infringement.
+\par {\listtext\pard\plain\s1 \b\caps\f42\fs20\lang1033\langfe1033\langfenp1033\insrsid1511228\charrsid11558388 \hich\af42\dbch\af11\loch\f42 10.\tab}}\pard \s1\ql \fi-360\li360\ri0\sb120\sa120\widctlpar
+\jclisttab\tx360\aspalpha\aspnum\faauto\ls17\outlinelevel0\adjustright\rin0\lin360\itap0\pararsid1511228 {\caps\insrsid1511228\charrsid11558388 \hich\af37\dbch\af11\loch\f37
+Limitation on and Exclusion of Remedies and Damages. You can recover from Microsoft and its suppliers only dire\hich\af37\dbch\af11\loch\f37
+ct damages up to U.S. $5.00. You cannot recover any other damages, including consequential, lost profits, special, indirect or incidental damages.
+\par }\pard\plain \s15\ql \li357\ri0\sb120\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin357\itap0\pararsid1511228 \fs19\lang1033\langfe1033\loch\af37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 {\insrsid1511228\charrsid11558388
+\hich\af37\dbch\af11\loch\f37 This limitation applies to
+\par {\listtext\pard\plain\s25 \f3\fs19\lang1033\langfe1033\langfenp1033\insrsid1511228\charrsid11558388 \loch\af3\dbch\af11\hich\f3 \'b7\tab}}\pard\plain \s25\ql \fi-363\li720\ri0\sb120\sa120\widctlpar
+\jclisttab\tx720\aspalpha\aspnum\faauto\ls2\adjustright\rin0\lin720\itap0\pararsid1511228 \fs19\lang1033\langfe1033\loch\af37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 {\insrsid1511228\charrsid11558388 \hich\af37\dbch\af11\loch\f37
+anything related to the software, services, content (including code) on third p\hich\af37\dbch\af11\loch\f37 arty Internet sites, or third party programs; and
+\par {\listtext\pard\plain\s25 \f3\fs19\lang1033\langfe1033\langfenp1033\insrsid1511228\charrsid11558388 \loch\af3\dbch\af11\hich\f3 \'b7\tab}\hich\af37\dbch\af11\loch\f37
+claims for breach of contract, breach of warranty, guarantee or condition, strict liability, negligence, or other tort to the extent permitted by applicable law.
+\par }\pard\plain \ql \li360\ri0\sb120\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid1511228 \fs19\lang1033\langfe1033\loch\af37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 {\insrsid1511228\charrsid11558388
+\hich\af37\dbch\af11\loch\f37 It also applies even if Microsoft knew or \hich\af37\dbch\af11\loch\f37
+should have known about the possibility of the damages. The above limitation or exclusion may not apply to you because your country may not allow the exclusion or limitation of incidental, consequential or other damages.}{
+\insrsid1511228\charrsid11558388
+\par }\pard \ql \li0\ri0\sb120\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid1511228 {\insrsid9964378\charrsid1511228
+\par }} \ No newline at end of file