diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Debugger.Core.csproj b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Debugger.Core.csproj
index 1a65bdb1c0..fec0278427 100644
--- a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Debugger.Core.csproj
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Debugger.Core.csproj
@@ -294,12 +294,76 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/CorSymAddrKind.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/CorSymAddrKind.cs
new file mode 100644
index 0000000000..269b58ee30
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/CorSymAddrKind.cs
@@ -0,0 +1,27 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Interop.CorSym
+{
+ using System;
+
+ public enum CorSymAddrKind
+ {
+ // Fields
+ ADDR_BITFIELD = 9,
+ ADDR_IL_OFFSET = 1,
+ ADDR_NATIVE_ISECTOFFSET = 10,
+ ADDR_NATIVE_OFFSET = 5,
+ ADDR_NATIVE_REGISTER = 3,
+ ADDR_NATIVE_REGREG = 6,
+ ADDR_NATIVE_REGREL = 4,
+ ADDR_NATIVE_REGSTK = 7,
+ ADDR_NATIVE_RVA = 2,
+ ADDR_NATIVE_STKREG = 8
+ }
+}
+
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/CorSymBinder_SxS.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/CorSymBinder_SxS.cs
new file mode 100644
index 0000000000..908ca9b1ea
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/CorSymBinder_SxS.cs
@@ -0,0 +1,17 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Interop.CorSym
+{
+ using System.Runtime.InteropServices;
+
+ [ComImport, CoClass(typeof(CorSymBinder_SxSClass)), Guid("AA544D42-28CB-11D3-BD22-0000F80849BD")]
+ public interface CorSymBinder_SxS : ISymUnmanagedBinder
+ {
+ }
+}
+
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/CorSymBinder_SxSClass.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/CorSymBinder_SxSClass.cs
new file mode 100644
index 0000000000..14f3cea35e
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/CorSymBinder_SxSClass.cs
@@ -0,0 +1,28 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Interop.CorSym
+{
+ using System;
+ using System.Runtime.CompilerServices;
+ using System.Runtime.InteropServices;
+
+ [ComImport, Guid("0A29FF9E-7F9C-4437-8B11-F424491E3931"), ClassInterface((short) 0), TypeLibType((short) 2)]
+ public class CorSymBinder_SxSClass : ISymUnmanagedBinder, CorSymBinder_SxS
+ {
+ // Methods
+ [return: MarshalAs(UnmanagedType.Interface)]
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern ISymUnmanagedReader GetReaderForFile([In, MarshalAs(UnmanagedType.IUnknown)] object importer, [In] ref ushort filename, [In] ref ushort searchPath);
+
+ [return: MarshalAs(UnmanagedType.Interface)]
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern ISymUnmanagedReader GetReaderFromStream([In, MarshalAs(UnmanagedType.IUnknown)] object importer, [In, MarshalAs(UnmanagedType.Interface)] IStream pstream);
+
+ }
+}
+
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/CorSymBinder_deprecated.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/CorSymBinder_deprecated.cs
new file mode 100644
index 0000000000..7dc853e7f6
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/CorSymBinder_deprecated.cs
@@ -0,0 +1,17 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Interop.CorSym
+{
+ using System.Runtime.InteropServices;
+
+ [ComImport, CoClass(typeof(CorSymBinder_deprecatedClass)), Guid("AA544D42-28CB-11D3-BD22-0000F80849BD")]
+ public interface CorSymBinder_deprecated : ISymUnmanagedBinder
+ {
+ }
+}
+
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/CorSymBinder_deprecatedClass.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/CorSymBinder_deprecatedClass.cs
new file mode 100644
index 0000000000..6450536843
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/CorSymBinder_deprecatedClass.cs
@@ -0,0 +1,28 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Interop.CorSym
+{
+ using System;
+ using System.Runtime.CompilerServices;
+ using System.Runtime.InteropServices;
+
+ [ComImport, Guid("AA544D41-28CB-11D3-BD22-0000F80849BD"), ClassInterface((short) 0), TypeLibType((short) 2)]
+ public class CorSymBinder_deprecatedClass : ISymUnmanagedBinder, CorSymBinder_deprecated
+ {
+ // Methods
+ [return: MarshalAs(UnmanagedType.Interface)]
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern ISymUnmanagedReader GetReaderForFile([In, MarshalAs(UnmanagedType.IUnknown)] object importer, [In] ref ushort filename, [In] ref ushort searchPath);
+
+ [return: MarshalAs(UnmanagedType.Interface)]
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern ISymUnmanagedReader GetReaderFromStream([In, MarshalAs(UnmanagedType.IUnknown)] object importer, [In, MarshalAs(UnmanagedType.Interface)] IStream pstream);
+
+ }
+}
+
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/CorSymReader_SxS.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/CorSymReader_SxS.cs
new file mode 100644
index 0000000000..f2325f423b
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/CorSymReader_SxS.cs
@@ -0,0 +1,17 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Interop.CorSym
+{
+ using System.Runtime.InteropServices;
+
+ [ComImport, CoClass(typeof(CorSymReader_SxSClass)), Guid("B4CE6286-2A6B-3712-A3B7-1EE1DAD467B5")]
+ public interface CorSymReader_SxS : ISymUnmanagedReader
+ {
+ }
+}
+
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/CorSymReader_SxSClass.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/CorSymReader_SxSClass.cs
new file mode 100644
index 0000000000..c647c75032
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/CorSymReader_SxSClass.cs
@@ -0,0 +1,75 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Interop.CorSym
+{
+ using System;
+ using System.Runtime.CompilerServices;
+ using System.Runtime.InteropServices;
+
+ [ComImport, Guid("0A3976C5-4529-4EF8-B0B0-42EED37082CD"), TypeLibType((short) 2), ClassInterface((short) 0), ComConversionLoss]
+ public class CorSymReader_SxSClass : ISymUnmanagedReader, CorSymReader_SxS
+ {
+ // Methods
+ [return: MarshalAs(UnmanagedType.Interface)]
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern ISymUnmanagedDocument GetDocument([In] ref ushort url, [In] Guid language, [In] Guid languageVendor, [In] Guid documentType);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void GetDocuments([In] uint cDocs, out uint pcDocs, [Out] IntPtr pDocs);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void GetDocumentVersion([In, MarshalAs(UnmanagedType.Interface)] ISymUnmanagedDocument pDoc, out int version, out int pbCurrent);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void GetGlobalVariables([In] uint cVars, out uint pcVars, [Out] IntPtr pVars);
+
+ [return: MarshalAs(UnmanagedType.Interface)]
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern ISymUnmanagedMethod GetMethod([In] uint token);
+
+ [return: MarshalAs(UnmanagedType.Interface)]
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern ISymUnmanagedMethod GetMethodByVersion([In] uint token, [In] int version);
+
+ [return: MarshalAs(UnmanagedType.Interface)]
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern ISymUnmanagedMethod GetMethodFromDocumentPosition([In, MarshalAs(UnmanagedType.Interface)] ISymUnmanagedDocument document, [In] uint line, [In] uint column);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void GetMethodsFromDocumentPosition([In, MarshalAs(UnmanagedType.Interface)] ISymUnmanagedDocument document, [In] uint line, [In] uint column, [In] uint cMethod, out uint pcMethod, [Out] IntPtr pRetVal);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void GetMethodVersion([In, MarshalAs(UnmanagedType.Interface)] ISymUnmanagedMethod pMethod, out int version);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void GetNamespaces([In] uint cNameSpaces, out uint pcNameSpaces, [Out] IntPtr namespaces);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void GetSymAttribute([In] uint parent, [In] ref ushort name, [In] uint cBuffer, out uint pcBuffer, [Out] IntPtr buffer);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void GetSymbolStoreFileName([In] uint cchName, out uint pcchName, [Out] IntPtr szName);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern uint GetUserEntryPoint();
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void GetVariables([In] uint parent, [In] uint cVars, out uint pcVars, [Out] IntPtr pVars);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void Initialize([In, MarshalAs(UnmanagedType.IUnknown)] object importer, [In] ref ushort filename, [In] ref ushort searchPath, [In, MarshalAs(UnmanagedType.Interface)] IStream pIStream);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void ReplaceSymbolStore([In] ref ushort filename, [In, MarshalAs(UnmanagedType.Interface)] IStream pIStream);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void UpdateSymbolStore([In] ref ushort filename, [In, MarshalAs(UnmanagedType.Interface)] IStream pIStream);
+
+ }
+}
+
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/CorSymReader_deprecated.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/CorSymReader_deprecated.cs
new file mode 100644
index 0000000000..3321ec3652
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/CorSymReader_deprecated.cs
@@ -0,0 +1,17 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Interop.CorSym
+{
+ using System.Runtime.InteropServices;
+
+ [ComImport, Guid("B4CE6286-2A6B-3712-A3B7-1EE1DAD467B5"), CoClass(typeof(CorSymReader_deprecatedClass))]
+ public interface CorSymReader_deprecated : ISymUnmanagedReader
+ {
+ }
+}
+
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/CorSymReader_deprecatedClass.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/CorSymReader_deprecatedClass.cs
new file mode 100644
index 0000000000..d3bbe1a062
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/CorSymReader_deprecatedClass.cs
@@ -0,0 +1,75 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Interop.CorSym
+{
+ using System;
+ using System.Runtime.CompilerServices;
+ using System.Runtime.InteropServices;
+
+ [ComImport, ClassInterface((short) 0), Guid("108296C2-281E-11D3-BD22-0000F80849BD"), ComConversionLoss, TypeLibType((short) 2)]
+ public class CorSymReader_deprecatedClass : ISymUnmanagedReader, CorSymReader_deprecated
+ {
+ // Methods
+ [return: MarshalAs(UnmanagedType.Interface)]
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern ISymUnmanagedDocument GetDocument([In] ref ushort url, [In] Guid language, [In] Guid languageVendor, [In] Guid documentType);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void GetDocuments([In] uint cDocs, out uint pcDocs, [Out] IntPtr pDocs);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void GetDocumentVersion([In, MarshalAs(UnmanagedType.Interface)] ISymUnmanagedDocument pDoc, out int version, out int pbCurrent);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void GetGlobalVariables([In] uint cVars, out uint pcVars, [Out] IntPtr pVars);
+
+ [return: MarshalAs(UnmanagedType.Interface)]
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern ISymUnmanagedMethod GetMethod([In] uint token);
+
+ [return: MarshalAs(UnmanagedType.Interface)]
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern ISymUnmanagedMethod GetMethodByVersion([In] uint token, [In] int version);
+
+ [return: MarshalAs(UnmanagedType.Interface)]
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern ISymUnmanagedMethod GetMethodFromDocumentPosition([In, MarshalAs(UnmanagedType.Interface)] ISymUnmanagedDocument document, [In] uint line, [In] uint column);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void GetMethodsFromDocumentPosition([In, MarshalAs(UnmanagedType.Interface)] ISymUnmanagedDocument document, [In] uint line, [In] uint column, [In] uint cMethod, out uint pcMethod, [Out] IntPtr pRetVal);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void GetMethodVersion([In, MarshalAs(UnmanagedType.Interface)] ISymUnmanagedMethod pMethod, out int version);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void GetNamespaces([In] uint cNameSpaces, out uint pcNameSpaces, [Out] IntPtr namespaces);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void GetSymAttribute([In] uint parent, [In] ref ushort name, [In] uint cBuffer, out uint pcBuffer, [Out] IntPtr buffer);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void GetSymbolStoreFileName([In] uint cchName, out uint pcchName, [Out] IntPtr szName);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern uint GetUserEntryPoint();
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void GetVariables([In] uint parent, [In] uint cVars, out uint pcVars, [Out] IntPtr pVars);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void Initialize([In, MarshalAs(UnmanagedType.IUnknown)] object importer, [In] ref ushort filename, [In] ref ushort searchPath, [In, MarshalAs(UnmanagedType.Interface)] IStream pIStream);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void ReplaceSymbolStore([In] ref ushort filename, [In, MarshalAs(UnmanagedType.Interface)] IStream pIStream);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void UpdateSymbolStore([In] ref ushort filename, [In, MarshalAs(UnmanagedType.Interface)] IStream pIStream);
+
+ }
+}
+
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/CorSymSearchPolicyAttributes.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/CorSymSearchPolicyAttributes.cs
new file mode 100644
index 0000000000..42fa92dd6e
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/CorSymSearchPolicyAttributes.cs
@@ -0,0 +1,21 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Interop.CorSym
+{
+ using System;
+
+ public enum CorSymSearchPolicyAttributes
+ {
+ // Fields
+ AllowOriginalPathAccess = 4,
+ AllowReferencePathAccess = 8,
+ AllowRegistryAccess = 1,
+ AllowSymbolServerAccess = 2
+ }
+}
+
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/CorSymVarFlag.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/CorSymVarFlag.cs
new file mode 100644
index 0000000000..bcb6d7f9e4
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/CorSymVarFlag.cs
@@ -0,0 +1,18 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Interop.CorSym
+{
+ using System;
+
+ public enum CorSymVarFlag
+ {
+ // Fields
+ VAR_IS_COMP_GEN = 1
+ }
+}
+
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/CorSymWriter_SxS.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/CorSymWriter_SxS.cs
new file mode 100644
index 0000000000..5517595020
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/CorSymWriter_SxS.cs
@@ -0,0 +1,17 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Interop.CorSym
+{
+ using System.Runtime.InteropServices;
+
+ [ComImport, CoClass(typeof(CorSymWriter_SxSClass)), Guid("ED14AA72-78E2-4884-84E2-334293AE5214")]
+ public interface CorSymWriter_SxS : ISymUnmanagedWriter
+ {
+ }
+}
+
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/CorSymWriter_SxSClass.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/CorSymWriter_SxSClass.cs
new file mode 100644
index 0000000000..b441c54d90
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/CorSymWriter_SxSClass.cs
@@ -0,0 +1,93 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Interop.CorSym
+{
+ using System;
+ using System.Runtime.CompilerServices;
+ using System.Runtime.InteropServices;
+
+ [ComImport, TypeLibType((short) 2), Guid("0AE2DEB0-F901-478B-BB9F-881EE8066788"), ClassInterface((short) 0), ComConversionLoss]
+ public class CorSymWriter_SxSClass : ISymUnmanagedWriter, CorSymWriter_SxS
+ {
+ // Methods
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void Abort();
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void Close();
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void CloseMethod();
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void CloseNamespace();
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void CloseScope([In] uint endOffset);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void DefineConstant([In] ref ushort name, [In, MarshalAs(UnmanagedType.Struct)] object value, [In] uint cSig, [In] ref byte signature);
+
+ [return: MarshalAs(UnmanagedType.Interface)]
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern ISymUnmanagedDocumentWriter DefineDocument([In] ref ushort url, [In] ref Guid language, [In] ref Guid languageVendor, [In] ref Guid documentType);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void DefineField([In] uint parent, [In] ref ushort name, [In] uint attributes, [In] uint cSig, [In] ref byte signature, [In] uint addrKind, [In] uint addr1, [In] uint addr2, [In] uint addr3);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void DefineGlobalVariable([In] ref ushort name, [In] uint attributes, [In] uint cSig, [In] ref byte signature, [In] uint addrKind, [In] uint addr1, [In] uint addr2, [In] uint addr3);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void DefineLocalVariable([In] ref ushort name, [In] uint attributes, [In] uint cSig, [In] ref byte signature, [In] uint addrKind, [In] uint addr1, [In] uint addr2, [In] uint addr3, [In] uint startOffset, [In] uint endOffset);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void DefineParameter([In] ref ushort name, [In] uint attributes, [In] uint sequence, [In] uint addrKind, [In] uint addr1, [In] uint addr2, [In] uint addr3);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void DefineSequencePoints([In, MarshalAs(UnmanagedType.Interface)] ISymUnmanagedDocumentWriter document, [In] uint spCount, [In] ref uint offsets, [In] ref uint lines, [In] ref uint columns, [In] ref uint endLines, [In] ref uint endColumns);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void GetDebugInfo([In] ref uint pIDD, [In] uint cData, out uint pcData, [Out] IntPtr data);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void Initialize([In, MarshalAs(UnmanagedType.IUnknown)] object emitter, [In] ref ushort filename, [In, MarshalAs(UnmanagedType.Interface)] IStream pIStream, [In] int fFullBuild);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void Initialize2([In, MarshalAs(UnmanagedType.IUnknown)] object emitter, [In] ref ushort tempfilename, [In, MarshalAs(UnmanagedType.Interface)] IStream pIStream, [In] int fFullBuild, [In] ref ushort finalfilename);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void OpenMethod([In] uint method);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void OpenNamespace([In] ref ushort name);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern uint OpenScope([In] uint startOffset);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void RemapToken([In] uint oldToken, [In] uint newToken);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void SetMethodSourceRange([In, MarshalAs(UnmanagedType.Interface)] ISymUnmanagedDocumentWriter startDoc, [In] uint startLine, [In] uint startColumn, [In, MarshalAs(UnmanagedType.Interface)] ISymUnmanagedDocumentWriter endDoc, [In] uint endLine, [In] uint endColumn);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void SetScopeRange([In] uint scopeID, [In] uint startOffset, [In] uint endOffset);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void SetSymAttribute([In] uint parent, [In] ref ushort name, [In] uint cData, [In] ref byte data);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void SetUserEntryPoint([In] uint entryMethod);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void UsingNamespace([In] ref ushort fullName);
+
+ }
+}
+
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/CorSymWriter_deprecated.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/CorSymWriter_deprecated.cs
new file mode 100644
index 0000000000..dff2ac62f3
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/CorSymWriter_deprecated.cs
@@ -0,0 +1,17 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Interop.CorSym
+{
+ using System.Runtime.InteropServices;
+
+ [ComImport, Guid("ED14AA72-78E2-4884-84E2-334293AE5214"), CoClass(typeof(CorSymWriter_deprecatedClass))]
+ public interface CorSymWriter_deprecated : ISymUnmanagedWriter
+ {
+ }
+}
+
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/CorSymWriter_deprecatedClass.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/CorSymWriter_deprecatedClass.cs
new file mode 100644
index 0000000000..fd18240c6a
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/CorSymWriter_deprecatedClass.cs
@@ -0,0 +1,93 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Interop.CorSym
+{
+ using System;
+ using System.Runtime.CompilerServices;
+ using System.Runtime.InteropServices;
+
+ [ComImport, ClassInterface((short) 0), Guid("108296C1-281E-11D3-BD22-0000F80849BD"), ComConversionLoss, TypeLibType((short) 2)]
+ public class CorSymWriter_deprecatedClass : ISymUnmanagedWriter, CorSymWriter_deprecated
+ {
+ // Methods
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void Abort();
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void Close();
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void CloseMethod();
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void CloseNamespace();
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void CloseScope([In] uint endOffset);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void DefineConstant([In] ref ushort name, [In, MarshalAs(UnmanagedType.Struct)] object value, [In] uint cSig, [In] ref byte signature);
+
+ [return: MarshalAs(UnmanagedType.Interface)]
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern ISymUnmanagedDocumentWriter DefineDocument([In] ref ushort url, [In] ref Guid language, [In] ref Guid languageVendor, [In] ref Guid documentType);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void DefineField([In] uint parent, [In] ref ushort name, [In] uint attributes, [In] uint cSig, [In] ref byte signature, [In] uint addrKind, [In] uint addr1, [In] uint addr2, [In] uint addr3);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void DefineGlobalVariable([In] ref ushort name, [In] uint attributes, [In] uint cSig, [In] ref byte signature, [In] uint addrKind, [In] uint addr1, [In] uint addr2, [In] uint addr3);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void DefineLocalVariable([In] ref ushort name, [In] uint attributes, [In] uint cSig, [In] ref byte signature, [In] uint addrKind, [In] uint addr1, [In] uint addr2, [In] uint addr3, [In] uint startOffset, [In] uint endOffset);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void DefineParameter([In] ref ushort name, [In] uint attributes, [In] uint sequence, [In] uint addrKind, [In] uint addr1, [In] uint addr2, [In] uint addr3);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void DefineSequencePoints([In, MarshalAs(UnmanagedType.Interface)] ISymUnmanagedDocumentWriter document, [In] uint spCount, [In] ref uint offsets, [In] ref uint lines, [In] ref uint columns, [In] ref uint endLines, [In] ref uint endColumns);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void GetDebugInfo([In] ref uint pIDD, [In] uint cData, out uint pcData, [Out] IntPtr data);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void Initialize([In, MarshalAs(UnmanagedType.IUnknown)] object emitter, [In] ref ushort filename, [In, MarshalAs(UnmanagedType.Interface)] IStream pIStream, [In] int fFullBuild);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void Initialize2([In, MarshalAs(UnmanagedType.IUnknown)] object emitter, [In] ref ushort tempfilename, [In, MarshalAs(UnmanagedType.Interface)] IStream pIStream, [In] int fFullBuild, [In] ref ushort finalfilename);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void OpenMethod([In] uint method);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void OpenNamespace([In] ref ushort name);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern uint OpenScope([In] uint startOffset);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void RemapToken([In] uint oldToken, [In] uint newToken);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void SetMethodSourceRange([In, MarshalAs(UnmanagedType.Interface)] ISymUnmanagedDocumentWriter startDoc, [In] uint startLine, [In] uint startColumn, [In, MarshalAs(UnmanagedType.Interface)] ISymUnmanagedDocumentWriter endDoc, [In] uint endLine, [In] uint endColumn);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void SetScopeRange([In] uint scopeID, [In] uint startOffset, [In] uint endOffset);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void SetSymAttribute([In] uint parent, [In] ref ushort name, [In] uint cData, [In] ref byte data);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void SetUserEntryPoint([In] uint entryMethod);
+
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ public virtual extern void UsingNamespace([In] ref ushort fullName);
+
+ }
+}
+
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/ISequentialStream.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/ISequentialStream.cs
new file mode 100644
index 0000000000..906a850b50
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/ISequentialStream.cs
@@ -0,0 +1,23 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Interop.CorSym
+{
+ using System;
+ using System.Runtime.CompilerServices;
+ using System.Runtime.InteropServices;
+
+ [ComImport, Guid("0C733A30-2A1C-11CE-ADE5-00AA0044773D"), InterfaceType((short) 1)]
+ public interface ISequentialStream
+ {
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void RemoteRead(out byte pv, [In] uint cb, out uint pcbRead);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void RemoteWrite([In] ref byte pv, [In] uint cb, out uint pcbWritten);
+ }
+}
+
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/IStream.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/IStream.cs
new file mode 100644
index 0000000000..a870597450
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/IStream.cs
@@ -0,0 +1,41 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Interop.CorSym
+{
+ using System;
+ using System.Runtime.CompilerServices;
+ using System.Runtime.InteropServices;
+
+ [ComImport, InterfaceType((short) 1), Guid("0000000C-0000-0000-C000-000000000046")]
+ public interface IStream : ISequentialStream
+ {
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void RemoteRead(out byte pv, [In] uint cb, out uint pcbRead);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void RemoteWrite([In] ref byte pv, [In] uint cb, out uint pcbWritten);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void RemoteSeek([In] _LARGE_INTEGER dlibMove, [In] uint dwOrigin, out _ULARGE_INTEGER plibNewPosition);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void SetSize([In] _ULARGE_INTEGER libNewSize);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void RemoteCopyTo([In, MarshalAs(UnmanagedType.Interface)] IStream pstm, [In] _ULARGE_INTEGER cb, out _ULARGE_INTEGER pcbRead, out _ULARGE_INTEGER pcbWritten);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void Commit([In] uint grfCommitFlags);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void Revert();
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void LockRegion([In] _ULARGE_INTEGER libOffset, [In] _ULARGE_INTEGER cb, [In] uint dwLockType);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void UnlockRegion([In] _ULARGE_INTEGER libOffset, [In] _ULARGE_INTEGER cb, [In] uint dwLockType);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void Stat(out tagSTATSTG pstatstg, [In] uint grfStatFlag);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void Clone([MarshalAs(UnmanagedType.Interface)] out IStream ppstm);
+ }
+}
+
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/ISymUnmanagedBinder.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/ISymUnmanagedBinder.cs
new file mode 100644
index 0000000000..f97abe749a
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/ISymUnmanagedBinder.cs
@@ -0,0 +1,25 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Interop.CorSym
+{
+ using System;
+ using System.Runtime.CompilerServices;
+ using System.Runtime.InteropServices;
+
+ [ComImport, InterfaceType((short) 1), Guid("AA544D42-28CB-11D3-BD22-0000F80849BD")]
+ public interface ISymUnmanagedBinder
+ {
+ [return: MarshalAs(UnmanagedType.Interface)]
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ ISymUnmanagedReader GetReaderForFile([In, MarshalAs(UnmanagedType.IUnknown)] object importer, [In] ref ushort filename, [In] ref ushort searchPath);
+ [return: MarshalAs(UnmanagedType.Interface)]
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ ISymUnmanagedReader GetReaderFromStream([In, MarshalAs(UnmanagedType.IUnknown)] object importer, [In, MarshalAs(UnmanagedType.Interface)] IStream pstream);
+ }
+}
+
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/ISymUnmanagedDocument.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/ISymUnmanagedDocument.cs
new file mode 100644
index 0000000000..ff0d9de49d
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/ISymUnmanagedDocument.cs
@@ -0,0 +1,39 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Interop.CorSym
+{
+ using System;
+ using System.Runtime.CompilerServices;
+ using System.Runtime.InteropServices;
+
+ [ComImport, Guid("40DE4037-7C81-3E1E-B022-AE1ABFF2CA08"), ComConversionLoss, InterfaceType((short) 1)]
+ public interface ISymUnmanagedDocument
+ {
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void GetURL([In] uint cchUrl, out uint pcchUrl, [Out] IntPtr szUrl);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ Guid GetDocumentType();
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ Guid GetLanguage();
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ Guid GetLanguageVendor();
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ Guid GetCheckSumAlgorithmId();
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void GetCheckSum([In] uint cData, out uint pcData, [Out] IntPtr data);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ uint FindClosestLine([In] uint line);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ int HasEmbeddedSource();
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ uint GetSourceLength();
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void GetSourceRange([In] uint startLine, [In] uint startColumn, [In] uint endLine, [In] uint endColumn, [In] uint cSourceBytes, out uint pcSourceBytes, [Out] IntPtr source);
+ }
+}
+
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/ISymUnmanagedDocumentWriter.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/ISymUnmanagedDocumentWriter.cs
new file mode 100644
index 0000000000..53a9b9020b
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/ISymUnmanagedDocumentWriter.cs
@@ -0,0 +1,23 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Interop.CorSym
+{
+ using System;
+ using System.Runtime.CompilerServices;
+ using System.Runtime.InteropServices;
+
+ [ComImport, Guid("B01FAFEB-C450-3A4D-BEEC-B4CEEC01E006"), InterfaceType((short) 1)]
+ public interface ISymUnmanagedDocumentWriter
+ {
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void SetSource([In] uint sourceSize, [In] ref byte source);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void SetCheckSum([In] Guid algorithmId, [In] uint checkSumSize, [In] ref byte checkSum);
+ }
+}
+
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/ISymUnmanagedMethod.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/ISymUnmanagedMethod.cs
new file mode 100644
index 0000000000..5539bc3156
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/ISymUnmanagedMethod.cs
@@ -0,0 +1,41 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Interop.CorSym
+{
+ using System;
+ using System.Runtime.CompilerServices;
+ using System.Runtime.InteropServices;
+
+ [ComImport, InterfaceType((short) 1), ComConversionLoss, Guid("B62B923C-B500-3158-A543-24F307A8B7E1")]
+ public interface ISymUnmanagedMethod
+ {
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ uint GetToken();
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ uint GetSequencePointCount();
+ [return: MarshalAs(UnmanagedType.Interface)]
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ ISymUnmanagedScope GetRootScope();
+ [return: MarshalAs(UnmanagedType.Interface)]
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ ISymUnmanagedScope GetScopeFromOffset([In] uint offset);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ uint GetOffset([In, MarshalAs(UnmanagedType.Interface)] ISymUnmanagedDocument document, [In] uint line, [In] uint column);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void GetRanges([In, MarshalAs(UnmanagedType.Interface)] ISymUnmanagedDocument document, [In] uint line, [In] uint column, [In] uint cRanges, out uint pcRanges, [Out] IntPtr ranges);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void GetParameters([In] uint cParams, out uint pcParams, [Out] IntPtr @params);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void GetNamespace([MarshalAs(UnmanagedType.Interface)] out ISymUnmanagedNamespace pRetVal);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void GetSourceStartEnd([In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=0, SizeConst=2)] ISymUnmanagedDocument[] docs, [In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=0, SizeConst=2)] uint[] lines, [In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=0, SizeConst=2)] uint[] columns, out int pRetVal);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void GetSequencePoints([In] uint cPoints, out uint pcPoints, [In] ref uint offsets, [In, MarshalAs(UnmanagedType.Interface)] ref ISymUnmanagedDocument documents, [In] ref uint lines, [In] ref uint columns, [In] ref uint endLines, [In] ref uint endColumns);
+ }
+}
+
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/ISymUnmanagedNamespace.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/ISymUnmanagedNamespace.cs
new file mode 100644
index 0000000000..3652153f08
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/ISymUnmanagedNamespace.cs
@@ -0,0 +1,25 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Interop.CorSym
+{
+ using System;
+ using System.Runtime.CompilerServices;
+ using System.Runtime.InteropServices;
+
+ [ComImport, InterfaceType((short) 1), ComConversionLoss, Guid("0DFF7289-54F8-11D3-BD28-0000F80849BD")]
+ public interface ISymUnmanagedNamespace
+ {
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void GetName([In] uint cchName, out uint pcchName, [Out] IntPtr szName);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void GetNamespaces([In] uint cNameSpaces, out uint pcNameSpaces, [Out] IntPtr namespaces);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void GetVariables([In] uint cVars, out uint pcVars, [Out] IntPtr pVars);
+ }
+}
+
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/ISymUnmanagedReader.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/ISymUnmanagedReader.cs
new file mode 100644
index 0000000000..9098d18c05
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/ISymUnmanagedReader.cs
@@ -0,0 +1,57 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Interop.CorSym
+{
+ using System;
+ using System.Runtime.CompilerServices;
+ using System.Runtime.InteropServices;
+
+ [ComImport, InterfaceType((short) 1), ComConversionLoss, Guid("B4CE6286-2A6B-3712-A3B7-1EE1DAD467B5")]
+ public interface ISymUnmanagedReader
+ {
+ [return: MarshalAs(UnmanagedType.Interface)]
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ ISymUnmanagedDocument GetDocument([In] ref ushort url, [In] Guid language, [In] Guid languageVendor, [In] Guid documentType);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void GetDocuments([In] uint cDocs, out uint pcDocs, [Out] IntPtr pDocs);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ uint GetUserEntryPoint();
+ [return: MarshalAs(UnmanagedType.Interface)]
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ ISymUnmanagedMethod GetMethod([In] uint token);
+ [return: MarshalAs(UnmanagedType.Interface)]
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ ISymUnmanagedMethod GetMethodByVersion([In] uint token, [In] int version);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void GetVariables([In] uint parent, [In] uint cVars, out uint pcVars, [Out] IntPtr pVars);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void GetGlobalVariables([In] uint cVars, out uint pcVars, [Out] IntPtr pVars);
+ [return: MarshalAs(UnmanagedType.Interface)]
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ ISymUnmanagedMethod GetMethodFromDocumentPosition([In, MarshalAs(UnmanagedType.Interface)] ISymUnmanagedDocument document, [In] uint line, [In] uint column);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void GetSymAttribute([In] uint parent, [In] ref ushort name, [In] uint cBuffer, out uint pcBuffer, [Out] IntPtr buffer);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void GetNamespaces([In] uint cNameSpaces, out uint pcNameSpaces, [Out] IntPtr namespaces);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void Initialize([In, MarshalAs(UnmanagedType.IUnknown)] object importer, [In] ref ushort filename, [In] ref ushort searchPath, [In, MarshalAs(UnmanagedType.Interface)] IStream pIStream);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void UpdateSymbolStore([In] ref ushort filename, [In, MarshalAs(UnmanagedType.Interface)] IStream pIStream);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void ReplaceSymbolStore([In] ref ushort filename, [In, MarshalAs(UnmanagedType.Interface)] IStream pIStream);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void GetSymbolStoreFileName([In] uint cchName, out uint pcchName, [Out] IntPtr szName);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void GetMethodsFromDocumentPosition([In, MarshalAs(UnmanagedType.Interface)] ISymUnmanagedDocument document, [In] uint line, [In] uint column, [In] uint cMethod, out uint pcMethod, [Out] IntPtr pRetVal);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void GetDocumentVersion([In, MarshalAs(UnmanagedType.Interface)] ISymUnmanagedDocument pDoc, out int version, out int pbCurrent);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void GetMethodVersion([In, MarshalAs(UnmanagedType.Interface)] ISymUnmanagedMethod pMethod, out int version);
+ }
+}
+
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/ISymUnmanagedReaderSymbolSearchInfo.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/ISymUnmanagedReaderSymbolSearchInfo.cs
new file mode 100644
index 0000000000..81b3d410fa
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/ISymUnmanagedReaderSymbolSearchInfo.cs
@@ -0,0 +1,23 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Interop.CorSym
+{
+ using System;
+ using System.Runtime.CompilerServices;
+ using System.Runtime.InteropServices;
+
+ [ComImport, Guid("20D9645D-03CD-4E34-9C11-9848A5B084F1"), InterfaceType((short) 1)]
+ public interface ISymUnmanagedReaderSymbolSearchInfo
+ {
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void GetSymbolSearchInfoCount(out uint pcSearchInfo);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void GetSymbolSearchInfo([In] uint cSearchInfo, out uint pcSearchInfo, [MarshalAs(UnmanagedType.Interface)] out ISymUnmanagedSymbolSearchInfo rgpSearchInfo);
+ }
+}
+
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/ISymUnmanagedScope.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/ISymUnmanagedScope.cs
new file mode 100644
index 0000000000..cb32553be2
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/ISymUnmanagedScope.cs
@@ -0,0 +1,37 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Interop.CorSym
+{
+ using System;
+ using System.Runtime.CompilerServices;
+ using System.Runtime.InteropServices;
+
+ [ComImport, Guid("68005D0F-B8E0-3B01-84D5-A11A94154942"), ComConversionLoss, InterfaceType((short) 1)]
+ public interface ISymUnmanagedScope
+ {
+ [return: MarshalAs(UnmanagedType.Interface)]
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ ISymUnmanagedMethod GetMethod();
+ [return: MarshalAs(UnmanagedType.Interface)]
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ ISymUnmanagedScope GetParent();
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void GetChildren([In] uint cChildren, out uint pcChildren, [Out] IntPtr children);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ uint GetStartOffset();
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ uint GetEndOffset();
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ uint GetLocalCount();
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void GetLocals([In] uint cLocals, out uint pcLocals, [Out] IntPtr locals);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void GetNamespaces([In] uint cNameSpaces, out uint pcNameSpaces, [Out] IntPtr namespaces);
+ }
+}
+
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/ISymUnmanagedSymbolSearchInfo.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/ISymUnmanagedSymbolSearchInfo.cs
new file mode 100644
index 0000000000..624b3f457d
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/ISymUnmanagedSymbolSearchInfo.cs
@@ -0,0 +1,25 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Interop.CorSym
+{
+ using System;
+ using System.Runtime.CompilerServices;
+ using System.Runtime.InteropServices;
+
+ [ComImport, ComConversionLoss, InterfaceType((short) 1), Guid("F8B3534A-A46B-4980-B520-BEC4ACEABA8F")]
+ public interface ISymUnmanagedSymbolSearchInfo
+ {
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void GetSearchPathLength(out uint pcchPath);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void GetSearchPath([In] uint cchPath, out uint pcchPath, [Out] IntPtr szPath);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void GetHRESULT([MarshalAs(UnmanagedType.Error)] out int phr);
+ }
+}
+
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/ISymUnmanagedVariable.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/ISymUnmanagedVariable.cs
new file mode 100644
index 0000000000..b613b79100
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/ISymUnmanagedVariable.cs
@@ -0,0 +1,37 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Interop.CorSym
+{
+ using System;
+ using System.Runtime.CompilerServices;
+ using System.Runtime.InteropServices;
+
+ [ComImport, Guid("9F60EEBE-2D9A-3F7C-BF58-80BC991C60BB"), InterfaceType((short) 1), ComConversionLoss]
+ public interface ISymUnmanagedVariable
+ {
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void GetName([In] uint cchName, out uint pcchName, [Out] IntPtr szName);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ uint GetAttributes();
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void GetSignature([In] uint cSig, out uint pcSig, [Out] IntPtr sig);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ uint GetAddressKind();
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ uint GetAddressField1();
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ uint GetAddressField2();
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ uint GetAddressField3();
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ uint GetStartOffset();
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ uint GetEndOffset();
+ }
+}
+
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/ISymUnmanagedWriter.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/ISymUnmanagedWriter.cs
new file mode 100644
index 0000000000..afda4bbe76
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/ISymUnmanagedWriter.cs
@@ -0,0 +1,68 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Interop.CorSym
+{
+ using System;
+ using System.Runtime.CompilerServices;
+ using System.Runtime.InteropServices;
+
+ [ComImport, ComConversionLoss, InterfaceType((short) 1), Guid("ED14AA72-78E2-4884-84E2-334293AE5214")]
+ public interface ISymUnmanagedWriter
+ {
+ [return: MarshalAs(UnmanagedType.Interface)]
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ ISymUnmanagedDocumentWriter DefineDocument([In] ref ushort url, [In] ref Guid language, [In] ref Guid languageVendor, [In] ref Guid documentType);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void SetUserEntryPoint([In] uint entryMethod);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void OpenMethod([In] uint method);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void CloseMethod();
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ uint OpenScope([In] uint startOffset);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void CloseScope([In] uint endOffset);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void SetScopeRange([In] uint scopeID, [In] uint startOffset, [In] uint endOffset);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void DefineLocalVariable([In] ref ushort name, [In] uint attributes, [In] uint cSig, [In] ref byte signature, [In] uint addrKind, [In] uint addr1, [In] uint addr2, [In] uint addr3, [In] uint startOffset, [In] uint endOffset);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void DefineParameter([In] ref ushort name, [In] uint attributes, [In] uint sequence, [In] uint addrKind, [In] uint addr1, [In] uint addr2, [In] uint addr3);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void DefineField([In] uint parent, [In] ref ushort name, [In] uint attributes, [In] uint cSig, [In] ref byte signature, [In] uint addrKind, [In] uint addr1, [In] uint addr2, [In] uint addr3);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void DefineGlobalVariable([In] ref ushort name, [In] uint attributes, [In] uint cSig, [In] ref byte signature, [In] uint addrKind, [In] uint addr1, [In] uint addr2, [In] uint addr3);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void Close();
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void SetSymAttribute([In] uint parent, [In] ref ushort name, [In] uint cData, [In] ref byte data);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void OpenNamespace([In] ref ushort name);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void CloseNamespace();
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void UsingNamespace([In] ref ushort fullName);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void SetMethodSourceRange([In, MarshalAs(UnmanagedType.Interface)] ISymUnmanagedDocumentWriter startDoc, [In] uint startLine, [In] uint startColumn, [In, MarshalAs(UnmanagedType.Interface)] ISymUnmanagedDocumentWriter endDoc, [In] uint endLine, [In] uint endColumn);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void Initialize([In, MarshalAs(UnmanagedType.IUnknown)] object emitter, [In] ref ushort filename, [In, MarshalAs(UnmanagedType.Interface)] IStream pIStream, [In] int fFullBuild);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void GetDebugInfo([In] ref uint pIDD, [In] uint cData, out uint pcData, [Out] IntPtr data);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void DefineSequencePoints([In, MarshalAs(UnmanagedType.Interface)] ISymUnmanagedDocumentWriter document, [In] uint spCount, [In] ref uint offsets, [In] ref uint lines, [In] ref uint columns, [In] ref uint endLines, [In] ref uint endColumns);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void RemapToken([In] uint oldToken, [In] uint newToken);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void Initialize2([In, MarshalAs(UnmanagedType.IUnknown)] object emitter, [In] ref ushort tempfilename, [In, MarshalAs(UnmanagedType.Interface)] IStream pIStream, [In] int fFullBuild, [In] ref ushort finalfilename);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void DefineConstant([In] ref ushort name, [In, MarshalAs(UnmanagedType.Struct)] object value, [In] uint cSig, [In] ref byte signature);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void Abort();
+ }
+}
+
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/ISymUnmanagedWriter2.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/ISymUnmanagedWriter2.cs
new file mode 100644
index 0000000000..83b5273d38
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/ISymUnmanagedWriter2.cs
@@ -0,0 +1,74 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Interop.CorSym
+{
+ using System;
+ using System.Runtime.CompilerServices;
+ using System.Runtime.InteropServices;
+
+ [ComImport, Guid("0B97726E-9E6D-4F05-9A26-424022093CAA"), InterfaceType((short) 1)]
+ public interface ISymUnmanagedWriter2 : ISymUnmanagedWriter
+ {
+ [return: MarshalAs(UnmanagedType.Interface)]
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ ISymUnmanagedDocumentWriter DefineDocument([In] ref ushort url, [In] ref Guid language, [In] ref Guid languageVendor, [In] ref Guid documentType);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void SetUserEntryPoint([In] uint entryMethod);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void OpenMethod([In] uint method);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void CloseMethod();
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ uint OpenScope([In] uint startOffset);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void CloseScope([In] uint endOffset);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void SetScopeRange([In] uint scopeID, [In] uint startOffset, [In] uint endOffset);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void DefineLocalVariable([In] ref ushort name, [In] uint attributes, [In] uint cSig, [In] ref byte signature, [In] uint addrKind, [In] uint addr1, [In] uint addr2, [In] uint addr3, [In] uint startOffset, [In] uint endOffset);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void DefineParameter([In] ref ushort name, [In] uint attributes, [In] uint sequence, [In] uint addrKind, [In] uint addr1, [In] uint addr2, [In] uint addr3);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void DefineField([In] uint parent, [In] ref ushort name, [In] uint attributes, [In] uint cSig, [In] ref byte signature, [In] uint addrKind, [In] uint addr1, [In] uint addr2, [In] uint addr3);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void DefineGlobalVariable([In] ref ushort name, [In] uint attributes, [In] uint cSig, [In] ref byte signature, [In] uint addrKind, [In] uint addr1, [In] uint addr2, [In] uint addr3);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void Close();
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void SetSymAttribute([In] uint parent, [In] ref ushort name, [In] uint cData, [In] ref byte data);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void OpenNamespace([In] ref ushort name);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void CloseNamespace();
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void UsingNamespace([In] ref ushort fullName);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void SetMethodSourceRange([In, MarshalAs(UnmanagedType.Interface)] ISymUnmanagedDocumentWriter startDoc, [In] uint startLine, [In] uint startColumn, [In, MarshalAs(UnmanagedType.Interface)] ISymUnmanagedDocumentWriter endDoc, [In] uint endLine, [In] uint endColumn);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void Initialize([In, MarshalAs(UnmanagedType.IUnknown)] object emitter, [In] ref ushort filename, [In, MarshalAs(UnmanagedType.Interface)] IStream pIStream, [In] int fFullBuild);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void GetDebugInfo([In] ref uint pIDD, [In] uint cData, out uint pcData, [Out] IntPtr data);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void DefineSequencePoints([In, MarshalAs(UnmanagedType.Interface)] ISymUnmanagedDocumentWriter document, [In] uint spCount, [In] ref uint offsets, [In] ref uint lines, [In] ref uint columns, [In] ref uint endLines, [In] ref uint endColumns);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void RemapToken([In] uint oldToken, [In] uint newToken);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void Initialize2([In, MarshalAs(UnmanagedType.IUnknown)] object emitter, [In] ref ushort tempfilename, [In, MarshalAs(UnmanagedType.Interface)] IStream pIStream, [In] int fFullBuild, [In] ref ushort finalfilename);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void DefineConstant([In] ref ushort name, [In, MarshalAs(UnmanagedType.Struct)] object value, [In] uint cSig, [In] ref byte signature);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void Abort();
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void DefineLocalVariable2([In] ref ushort name, [In] uint attributes, [In] uint sigToken, [In] uint addrKind, [In] uint addr1, [In] uint addr2, [In] uint addr3, [In] uint startOffset, [In] uint endOffset);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void DefineGlobalVariable2([In] ref ushort name, [In] uint attributes, [In] uint sigToken, [In] uint addrKind, [In] uint addr1, [In] uint addr2, [In] uint addr3);
+ [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
+ void DefineConstant2([In] ref ushort name, [In, MarshalAs(UnmanagedType.Struct)] object value, [In] uint sigToken);
+ }
+}
+
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/_FILETIME.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/_FILETIME.cs
new file mode 100644
index 0000000000..9cbc911199
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/_FILETIME.cs
@@ -0,0 +1,20 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Interop.CorSym
+{
+ using System;
+ using System.Runtime.InteropServices;
+
+ [StructLayout(LayoutKind.Sequential, Pack=4)]
+ public struct _FILETIME
+ {
+ public uint dwLowDateTime;
+ public uint dwHighDateTime;
+ }
+}
+
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/_LARGE_INTEGER.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/_LARGE_INTEGER.cs
new file mode 100644
index 0000000000..83d17f4ffe
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/_LARGE_INTEGER.cs
@@ -0,0 +1,19 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Interop.CorSym
+{
+ using System;
+ using System.Runtime.InteropServices;
+
+ [StructLayout(LayoutKind.Sequential, Pack=8)]
+ public struct _LARGE_INTEGER
+ {
+ public long QuadPart;
+ }
+}
+
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/_ULARGE_INTEGER.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/_ULARGE_INTEGER.cs
new file mode 100644
index 0000000000..ca59b1da68
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/_ULARGE_INTEGER.cs
@@ -0,0 +1,19 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Interop.CorSym
+{
+ using System;
+ using System.Runtime.InteropServices;
+
+ [StructLayout(LayoutKind.Sequential, Pack=8)]
+ public struct _ULARGE_INTEGER
+ {
+ public ulong QuadPart;
+ }
+}
+
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/tagSTATSTG.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/tagSTATSTG.cs
new file mode 100644
index 0000000000..a2324e6bab
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Interop/CorSym/tagSTATSTG.cs
@@ -0,0 +1,30 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Interop.CorSym
+{
+ using System;
+ using System.Runtime.InteropServices;
+
+ [StructLayout(LayoutKind.Sequential, Pack=8)]
+ public struct tagSTATSTG
+ {
+ [MarshalAs(UnmanagedType.LPWStr)]
+ public string pwcsName;
+ public uint type;
+ public _ULARGE_INTEGER cbSize;
+ public _FILETIME mtime;
+ public _FILETIME ctime;
+ public _FILETIME atime;
+ public uint grfMode;
+ public uint grfLocksSupported;
+ public Guid clsid;
+ public uint grfStateBits;
+ public uint reserved;
+ }
+}
+
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/CorSymAddrKind.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/CorSymAddrKind.cs
new file mode 100644
index 0000000000..2d9510d748
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/CorSymAddrKind.cs
@@ -0,0 +1,36 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Wrappers.CorSym
+{
+ using System;
+
+
+ public enum CorSymAddrKind : int
+ {
+
+ ADDR_IL_OFFSET = 1,
+
+ ADDR_NATIVE_RVA = 2,
+
+ ADDR_NATIVE_REGISTER = 3,
+
+ ADDR_NATIVE_REGREL = 4,
+
+ ADDR_NATIVE_OFFSET = 5,
+
+ ADDR_NATIVE_REGREG = 6,
+
+ ADDR_NATIVE_REGSTK = 7,
+
+ ADDR_NATIVE_STKREG = 8,
+
+ ADDR_BITFIELD = 9,
+
+ ADDR_NATIVE_ISECTOFFSET = 10,
+ }
+}
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/CorSymBinder_SxS.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/CorSymBinder_SxS.cs
new file mode 100644
index 0000000000..18cbded3db
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/CorSymBinder_SxS.cs
@@ -0,0 +1,91 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Wrappers.CorSym
+{
+ using System;
+
+
+ public class CorSymBinder_SxS
+ {
+
+ private Debugger.Interop.CorSym.CorSymBinder_SxS wrappedObject;
+
+ internal Debugger.Interop.CorSym.CorSymBinder_SxS WrappedObject
+ {
+ get
+ {
+ return this.wrappedObject;
+ }
+ }
+
+ public CorSymBinder_SxS(Debugger.Interop.CorSym.CorSymBinder_SxS wrappedObject)
+ {
+ this.wrappedObject = wrappedObject;
+ ResourceManager.TrackCOMObject(wrappedObject, typeof(CorSymBinder_SxS));
+ }
+
+ public static CorSymBinder_SxS Wrap(Debugger.Interop.CorSym.CorSymBinder_SxS objectToWrap)
+ {
+ return new CorSymBinder_SxS(objectToWrap);
+ }
+
+ ~CorSymBinder_SxS()
+ {
+ object o = wrappedObject;
+ wrappedObject = null;
+ ResourceManager.ReleaseCOMObject(o, typeof(CorSymBinder_SxS));
+ }
+
+ public bool Is() where T: class
+ {
+ try {
+ CastTo();
+ return true;
+ } catch {
+ return false;
+ }
+ }
+
+ public T As() where T: class
+ {
+ try {
+ return CastTo();
+ } catch {
+ return null;
+ }
+ }
+
+ public T CastTo() where T: class
+ {
+ return (T)Activator.CreateInstance(typeof(T), this.WrappedObject);
+ }
+
+ public static bool operator ==(CorSymBinder_SxS o1, CorSymBinder_SxS o2)
+ {
+ return ((object)o1 == null && (object)o2 == null) ||
+ ((object)o1 != null && (object)o2 != null && o1.WrappedObject == o2.WrappedObject);
+ }
+
+ public static bool operator !=(CorSymBinder_SxS o1, CorSymBinder_SxS o2)
+ {
+ return !(o1 == o2);
+ }
+
+ public override int GetHashCode()
+ {
+ return base.GetHashCode();
+ }
+
+ public override bool Equals(object o)
+ {
+ CorSymBinder_SxS casted = o as CorSymBinder_SxS;
+ return (casted != null) && (casted.WrappedObject == wrappedObject);
+ }
+
+ }
+}
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/CorSymBinder_SxSClass.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/CorSymBinder_SxSClass.cs
new file mode 100644
index 0000000000..d606ad158d
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/CorSymBinder_SxSClass.cs
@@ -0,0 +1,101 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Wrappers.CorSym
+{
+ using System;
+
+
+ public class CorSymBinder_SxSClass
+ {
+
+ private Debugger.Interop.CorSym.CorSymBinder_SxSClass wrappedObject;
+
+ internal Debugger.Interop.CorSym.CorSymBinder_SxSClass WrappedObject
+ {
+ get
+ {
+ return this.wrappedObject;
+ }
+ }
+
+ public CorSymBinder_SxSClass(Debugger.Interop.CorSym.CorSymBinder_SxSClass wrappedObject)
+ {
+ this.wrappedObject = wrappedObject;
+ ResourceManager.TrackCOMObject(wrappedObject, typeof(CorSymBinder_SxSClass));
+ }
+
+ public static CorSymBinder_SxSClass Wrap(Debugger.Interop.CorSym.CorSymBinder_SxSClass objectToWrap)
+ {
+ return new CorSymBinder_SxSClass(objectToWrap);
+ }
+
+ ~CorSymBinder_SxSClass()
+ {
+ object o = wrappedObject;
+ wrappedObject = null;
+ ResourceManager.ReleaseCOMObject(o, typeof(CorSymBinder_SxSClass));
+ }
+
+ public bool Is() where T: class
+ {
+ try {
+ CastTo();
+ return true;
+ } catch {
+ return false;
+ }
+ }
+
+ public T As() where T: class
+ {
+ try {
+ return CastTo();
+ } catch {
+ return null;
+ }
+ }
+
+ public T CastTo() where T: class
+ {
+ return (T)Activator.CreateInstance(typeof(T), this.WrappedObject);
+ }
+
+ public static bool operator ==(CorSymBinder_SxSClass o1, CorSymBinder_SxSClass o2)
+ {
+ return ((object)o1 == null && (object)o2 == null) ||
+ ((object)o1 != null && (object)o2 != null && o1.WrappedObject == o2.WrappedObject);
+ }
+
+ public static bool operator !=(CorSymBinder_SxSClass o1, CorSymBinder_SxSClass o2)
+ {
+ return !(o1 == o2);
+ }
+
+ public override int GetHashCode()
+ {
+ return base.GetHashCode();
+ }
+
+ public override bool Equals(object o)
+ {
+ CorSymBinder_SxSClass casted = o as CorSymBinder_SxSClass;
+ return (casted != null) && (casted.WrappedObject == wrappedObject);
+ }
+
+
+ public ISymUnmanagedReader GetReaderForFile(object importer, ref ushort filename, ref ushort searchPath)
+ {
+ return ISymUnmanagedReader.Wrap(this.WrappedObject.GetReaderForFile(importer, ref filename, ref searchPath));
+ }
+
+ public ISymUnmanagedReader GetReaderFromStream(object importer, IStream pstream)
+ {
+ return ISymUnmanagedReader.Wrap(this.WrappedObject.GetReaderFromStream(importer, pstream.WrappedObject));
+ }
+ }
+}
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/CorSymBinder_deprecated.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/CorSymBinder_deprecated.cs
new file mode 100644
index 0000000000..2ce2e64680
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/CorSymBinder_deprecated.cs
@@ -0,0 +1,91 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Wrappers.CorSym
+{
+ using System;
+
+
+ public class CorSymBinder_deprecated
+ {
+
+ private Debugger.Interop.CorSym.CorSymBinder_deprecated wrappedObject;
+
+ internal Debugger.Interop.CorSym.CorSymBinder_deprecated WrappedObject
+ {
+ get
+ {
+ return this.wrappedObject;
+ }
+ }
+
+ public CorSymBinder_deprecated(Debugger.Interop.CorSym.CorSymBinder_deprecated wrappedObject)
+ {
+ this.wrappedObject = wrappedObject;
+ ResourceManager.TrackCOMObject(wrappedObject, typeof(CorSymBinder_deprecated));
+ }
+
+ public static CorSymBinder_deprecated Wrap(Debugger.Interop.CorSym.CorSymBinder_deprecated objectToWrap)
+ {
+ return new CorSymBinder_deprecated(objectToWrap);
+ }
+
+ ~CorSymBinder_deprecated()
+ {
+ object o = wrappedObject;
+ wrappedObject = null;
+ ResourceManager.ReleaseCOMObject(o, typeof(CorSymBinder_deprecated));
+ }
+
+ public bool Is() where T: class
+ {
+ try {
+ CastTo();
+ return true;
+ } catch {
+ return false;
+ }
+ }
+
+ public T As() where T: class
+ {
+ try {
+ return CastTo();
+ } catch {
+ return null;
+ }
+ }
+
+ public T CastTo() where T: class
+ {
+ return (T)Activator.CreateInstance(typeof(T), this.WrappedObject);
+ }
+
+ public static bool operator ==(CorSymBinder_deprecated o1, CorSymBinder_deprecated o2)
+ {
+ return ((object)o1 == null && (object)o2 == null) ||
+ ((object)o1 != null && (object)o2 != null && o1.WrappedObject == o2.WrappedObject);
+ }
+
+ public static bool operator !=(CorSymBinder_deprecated o1, CorSymBinder_deprecated o2)
+ {
+ return !(o1 == o2);
+ }
+
+ public override int GetHashCode()
+ {
+ return base.GetHashCode();
+ }
+
+ public override bool Equals(object o)
+ {
+ CorSymBinder_deprecated casted = o as CorSymBinder_deprecated;
+ return (casted != null) && (casted.WrappedObject == wrappedObject);
+ }
+
+ }
+}
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/CorSymBinder_deprecatedClass.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/CorSymBinder_deprecatedClass.cs
new file mode 100644
index 0000000000..af6748ca84
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/CorSymBinder_deprecatedClass.cs
@@ -0,0 +1,101 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Wrappers.CorSym
+{
+ using System;
+
+
+ public class CorSymBinder_deprecatedClass
+ {
+
+ private Debugger.Interop.CorSym.CorSymBinder_deprecatedClass wrappedObject;
+
+ internal Debugger.Interop.CorSym.CorSymBinder_deprecatedClass WrappedObject
+ {
+ get
+ {
+ return this.wrappedObject;
+ }
+ }
+
+ public CorSymBinder_deprecatedClass(Debugger.Interop.CorSym.CorSymBinder_deprecatedClass wrappedObject)
+ {
+ this.wrappedObject = wrappedObject;
+ ResourceManager.TrackCOMObject(wrappedObject, typeof(CorSymBinder_deprecatedClass));
+ }
+
+ public static CorSymBinder_deprecatedClass Wrap(Debugger.Interop.CorSym.CorSymBinder_deprecatedClass objectToWrap)
+ {
+ return new CorSymBinder_deprecatedClass(objectToWrap);
+ }
+
+ ~CorSymBinder_deprecatedClass()
+ {
+ object o = wrappedObject;
+ wrappedObject = null;
+ ResourceManager.ReleaseCOMObject(o, typeof(CorSymBinder_deprecatedClass));
+ }
+
+ public bool Is() where T: class
+ {
+ try {
+ CastTo();
+ return true;
+ } catch {
+ return false;
+ }
+ }
+
+ public T As() where T: class
+ {
+ try {
+ return CastTo();
+ } catch {
+ return null;
+ }
+ }
+
+ public T CastTo() where T: class
+ {
+ return (T)Activator.CreateInstance(typeof(T), this.WrappedObject);
+ }
+
+ public static bool operator ==(CorSymBinder_deprecatedClass o1, CorSymBinder_deprecatedClass o2)
+ {
+ return ((object)o1 == null && (object)o2 == null) ||
+ ((object)o1 != null && (object)o2 != null && o1.WrappedObject == o2.WrappedObject);
+ }
+
+ public static bool operator !=(CorSymBinder_deprecatedClass o1, CorSymBinder_deprecatedClass o2)
+ {
+ return !(o1 == o2);
+ }
+
+ public override int GetHashCode()
+ {
+ return base.GetHashCode();
+ }
+
+ public override bool Equals(object o)
+ {
+ CorSymBinder_deprecatedClass casted = o as CorSymBinder_deprecatedClass;
+ return (casted != null) && (casted.WrappedObject == wrappedObject);
+ }
+
+
+ public ISymUnmanagedReader GetReaderForFile(object importer, ref ushort filename, ref ushort searchPath)
+ {
+ return ISymUnmanagedReader.Wrap(this.WrappedObject.GetReaderForFile(importer, ref filename, ref searchPath));
+ }
+
+ public ISymUnmanagedReader GetReaderFromStream(object importer, IStream pstream)
+ {
+ return ISymUnmanagedReader.Wrap(this.WrappedObject.GetReaderFromStream(importer, pstream.WrappedObject));
+ }
+ }
+}
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/CorSymReader_SxS.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/CorSymReader_SxS.cs
new file mode 100644
index 0000000000..7ca0ac3cee
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/CorSymReader_SxS.cs
@@ -0,0 +1,91 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Wrappers.CorSym
+{
+ using System;
+
+
+ public class CorSymReader_SxS
+ {
+
+ private Debugger.Interop.CorSym.CorSymReader_SxS wrappedObject;
+
+ internal Debugger.Interop.CorSym.CorSymReader_SxS WrappedObject
+ {
+ get
+ {
+ return this.wrappedObject;
+ }
+ }
+
+ public CorSymReader_SxS(Debugger.Interop.CorSym.CorSymReader_SxS wrappedObject)
+ {
+ this.wrappedObject = wrappedObject;
+ ResourceManager.TrackCOMObject(wrappedObject, typeof(CorSymReader_SxS));
+ }
+
+ public static CorSymReader_SxS Wrap(Debugger.Interop.CorSym.CorSymReader_SxS objectToWrap)
+ {
+ return new CorSymReader_SxS(objectToWrap);
+ }
+
+ ~CorSymReader_SxS()
+ {
+ object o = wrappedObject;
+ wrappedObject = null;
+ ResourceManager.ReleaseCOMObject(o, typeof(CorSymReader_SxS));
+ }
+
+ public bool Is() where T: class
+ {
+ try {
+ CastTo();
+ return true;
+ } catch {
+ return false;
+ }
+ }
+
+ public T As() where T: class
+ {
+ try {
+ return CastTo();
+ } catch {
+ return null;
+ }
+ }
+
+ public T CastTo() where T: class
+ {
+ return (T)Activator.CreateInstance(typeof(T), this.WrappedObject);
+ }
+
+ public static bool operator ==(CorSymReader_SxS o1, CorSymReader_SxS o2)
+ {
+ return ((object)o1 == null && (object)o2 == null) ||
+ ((object)o1 != null && (object)o2 != null && o1.WrappedObject == o2.WrappedObject);
+ }
+
+ public static bool operator !=(CorSymReader_SxS o1, CorSymReader_SxS o2)
+ {
+ return !(o1 == o2);
+ }
+
+ public override int GetHashCode()
+ {
+ return base.GetHashCode();
+ }
+
+ public override bool Equals(object o)
+ {
+ CorSymReader_SxS casted = o as CorSymReader_SxS;
+ return (casted != null) && (casted.WrappedObject == wrappedObject);
+ }
+
+ }
+}
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/CorSymReader_SxSClass.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/CorSymReader_SxSClass.cs
new file mode 100644
index 0000000000..5d416ae41d
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/CorSymReader_SxSClass.cs
@@ -0,0 +1,183 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Wrappers.CorSym
+{
+ using System;
+
+
+ public class CorSymReader_SxSClass
+ {
+
+ private Debugger.Interop.CorSym.CorSymReader_SxSClass wrappedObject;
+
+ internal Debugger.Interop.CorSym.CorSymReader_SxSClass WrappedObject
+ {
+ get
+ {
+ return this.wrappedObject;
+ }
+ }
+
+ public CorSymReader_SxSClass(Debugger.Interop.CorSym.CorSymReader_SxSClass wrappedObject)
+ {
+ this.wrappedObject = wrappedObject;
+ ResourceManager.TrackCOMObject(wrappedObject, typeof(CorSymReader_SxSClass));
+ }
+
+ public static CorSymReader_SxSClass Wrap(Debugger.Interop.CorSym.CorSymReader_SxSClass objectToWrap)
+ {
+ return new CorSymReader_SxSClass(objectToWrap);
+ }
+
+ ~CorSymReader_SxSClass()
+ {
+ object o = wrappedObject;
+ wrappedObject = null;
+ ResourceManager.ReleaseCOMObject(o, typeof(CorSymReader_SxSClass));
+ }
+
+ public bool Is() where T: class
+ {
+ try {
+ CastTo();
+ return true;
+ } catch {
+ return false;
+ }
+ }
+
+ public T As() where T: class
+ {
+ try {
+ return CastTo();
+ } catch {
+ return null;
+ }
+ }
+
+ public T CastTo() where T: class
+ {
+ return (T)Activator.CreateInstance(typeof(T), this.WrappedObject);
+ }
+
+ public static bool operator ==(CorSymReader_SxSClass o1, CorSymReader_SxSClass o2)
+ {
+ return ((object)o1 == null && (object)o2 == null) ||
+ ((object)o1 != null && (object)o2 != null && o1.WrappedObject == o2.WrappedObject);
+ }
+
+ public static bool operator !=(CorSymReader_SxSClass o1, CorSymReader_SxSClass o2)
+ {
+ return !(o1 == o2);
+ }
+
+ public override int GetHashCode()
+ {
+ return base.GetHashCode();
+ }
+
+ public override bool Equals(object o)
+ {
+ CorSymReader_SxSClass casted = o as CorSymReader_SxSClass;
+ return (casted != null) && (casted.WrappedObject == wrappedObject);
+ }
+
+
+ public ISymUnmanagedDocument GetDocument(ref ushort url, System.Guid language, System.Guid languageVendor, System.Guid documentType)
+ {
+ return ISymUnmanagedDocument.Wrap(this.WrappedObject.GetDocument(ref url, language, languageVendor, documentType));
+ }
+
+ public void GetDocuments(uint cDocs, out uint pcDocs, System.IntPtr pDocs)
+ {
+ this.WrappedObject.GetDocuments(cDocs, out pcDocs, pDocs);
+ }
+
+ public int GetDocumentVersion(ISymUnmanagedDocument pDoc, out int version)
+ {
+ int pbCurrent;
+ this.WrappedObject.GetDocumentVersion(pDoc.WrappedObject, out version, out pbCurrent);
+ return pbCurrent;
+ }
+
+ public void GetGlobalVariables(uint cVars, out uint pcVars, System.IntPtr pVars)
+ {
+ this.WrappedObject.GetGlobalVariables(cVars, out pcVars, pVars);
+ }
+
+ public ISymUnmanagedMethod GetMethod(uint token)
+ {
+ return ISymUnmanagedMethod.Wrap(this.WrappedObject.GetMethod(token));
+ }
+
+ public ISymUnmanagedMethod GetMethodByVersion(uint token, int version)
+ {
+ return ISymUnmanagedMethod.Wrap(this.WrappedObject.GetMethodByVersion(token, version));
+ }
+
+ public ISymUnmanagedMethod GetMethodFromDocumentPosition(ISymUnmanagedDocument document, uint line, uint column)
+ {
+ return ISymUnmanagedMethod.Wrap(this.WrappedObject.GetMethodFromDocumentPosition(document.WrappedObject, line, column));
+ }
+
+ public void GetMethodsFromDocumentPosition(ISymUnmanagedDocument document, uint line, uint column, uint cMethod, out uint pcMethod, System.IntPtr pRetVal)
+ {
+ this.WrappedObject.GetMethodsFromDocumentPosition(document.WrappedObject, line, column, cMethod, out pcMethod, pRetVal);
+ }
+
+ public int GetMethodVersion(ISymUnmanagedMethod pMethod)
+ {
+ int version;
+ this.WrappedObject.GetMethodVersion(pMethod.WrappedObject, out version);
+ return version;
+ }
+
+ public void GetNamespaces(uint cNameSpaces, out uint pcNameSpaces, System.IntPtr namespaces)
+ {
+ this.WrappedObject.GetNamespaces(cNameSpaces, out pcNameSpaces, namespaces);
+ }
+
+ public void GetSymAttribute(uint parent, ref ushort name, uint cBuffer, out uint pcBuffer, System.IntPtr buffer)
+ {
+ this.WrappedObject.GetSymAttribute(parent, ref name, cBuffer, out pcBuffer, buffer);
+ }
+
+ public void GetSymbolStoreFileName(uint cchName, out uint pcchName, System.IntPtr szName)
+ {
+ this.WrappedObject.GetSymbolStoreFileName(cchName, out pcchName, szName);
+ }
+
+ public uint UserEntryPoint
+ {
+ get
+ {
+ return this.WrappedObject.GetUserEntryPoint();
+ }
+ }
+
+ public void GetVariables(uint parent, uint cVars, out uint pcVars, System.IntPtr pVars)
+ {
+ this.WrappedObject.GetVariables(parent, cVars, out pcVars, pVars);
+ }
+
+ public void Initialize(object importer, ref ushort filename, ref ushort searchPath, IStream pIStream)
+ {
+ this.WrappedObject.Initialize(importer, ref filename, ref searchPath, pIStream.WrappedObject);
+ }
+
+ public void ReplaceSymbolStore(ref ushort filename, IStream pIStream)
+ {
+ this.WrappedObject.ReplaceSymbolStore(ref filename, pIStream.WrappedObject);
+ }
+
+ public void UpdateSymbolStore(ref ushort filename, IStream pIStream)
+ {
+ this.WrappedObject.UpdateSymbolStore(ref filename, pIStream.WrappedObject);
+ }
+ }
+}
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/CorSymReader_deprecated.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/CorSymReader_deprecated.cs
new file mode 100644
index 0000000000..2711760961
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/CorSymReader_deprecated.cs
@@ -0,0 +1,91 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Wrappers.CorSym
+{
+ using System;
+
+
+ public class CorSymReader_deprecated
+ {
+
+ private Debugger.Interop.CorSym.CorSymReader_deprecated wrappedObject;
+
+ internal Debugger.Interop.CorSym.CorSymReader_deprecated WrappedObject
+ {
+ get
+ {
+ return this.wrappedObject;
+ }
+ }
+
+ public CorSymReader_deprecated(Debugger.Interop.CorSym.CorSymReader_deprecated wrappedObject)
+ {
+ this.wrappedObject = wrappedObject;
+ ResourceManager.TrackCOMObject(wrappedObject, typeof(CorSymReader_deprecated));
+ }
+
+ public static CorSymReader_deprecated Wrap(Debugger.Interop.CorSym.CorSymReader_deprecated objectToWrap)
+ {
+ return new CorSymReader_deprecated(objectToWrap);
+ }
+
+ ~CorSymReader_deprecated()
+ {
+ object o = wrappedObject;
+ wrappedObject = null;
+ ResourceManager.ReleaseCOMObject(o, typeof(CorSymReader_deprecated));
+ }
+
+ public bool Is() where T: class
+ {
+ try {
+ CastTo();
+ return true;
+ } catch {
+ return false;
+ }
+ }
+
+ public T As() where T: class
+ {
+ try {
+ return CastTo();
+ } catch {
+ return null;
+ }
+ }
+
+ public T CastTo() where T: class
+ {
+ return (T)Activator.CreateInstance(typeof(T), this.WrappedObject);
+ }
+
+ public static bool operator ==(CorSymReader_deprecated o1, CorSymReader_deprecated o2)
+ {
+ return ((object)o1 == null && (object)o2 == null) ||
+ ((object)o1 != null && (object)o2 != null && o1.WrappedObject == o2.WrappedObject);
+ }
+
+ public static bool operator !=(CorSymReader_deprecated o1, CorSymReader_deprecated o2)
+ {
+ return !(o1 == o2);
+ }
+
+ public override int GetHashCode()
+ {
+ return base.GetHashCode();
+ }
+
+ public override bool Equals(object o)
+ {
+ CorSymReader_deprecated casted = o as CorSymReader_deprecated;
+ return (casted != null) && (casted.WrappedObject == wrappedObject);
+ }
+
+ }
+}
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/CorSymReader_deprecatedClass.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/CorSymReader_deprecatedClass.cs
new file mode 100644
index 0000000000..8041824faf
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/CorSymReader_deprecatedClass.cs
@@ -0,0 +1,183 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Wrappers.CorSym
+{
+ using System;
+
+
+ public class CorSymReader_deprecatedClass
+ {
+
+ private Debugger.Interop.CorSym.CorSymReader_deprecatedClass wrappedObject;
+
+ internal Debugger.Interop.CorSym.CorSymReader_deprecatedClass WrappedObject
+ {
+ get
+ {
+ return this.wrappedObject;
+ }
+ }
+
+ public CorSymReader_deprecatedClass(Debugger.Interop.CorSym.CorSymReader_deprecatedClass wrappedObject)
+ {
+ this.wrappedObject = wrappedObject;
+ ResourceManager.TrackCOMObject(wrappedObject, typeof(CorSymReader_deprecatedClass));
+ }
+
+ public static CorSymReader_deprecatedClass Wrap(Debugger.Interop.CorSym.CorSymReader_deprecatedClass objectToWrap)
+ {
+ return new CorSymReader_deprecatedClass(objectToWrap);
+ }
+
+ ~CorSymReader_deprecatedClass()
+ {
+ object o = wrappedObject;
+ wrappedObject = null;
+ ResourceManager.ReleaseCOMObject(o, typeof(CorSymReader_deprecatedClass));
+ }
+
+ public bool Is() where T: class
+ {
+ try {
+ CastTo();
+ return true;
+ } catch {
+ return false;
+ }
+ }
+
+ public T As() where T: class
+ {
+ try {
+ return CastTo();
+ } catch {
+ return null;
+ }
+ }
+
+ public T CastTo() where T: class
+ {
+ return (T)Activator.CreateInstance(typeof(T), this.WrappedObject);
+ }
+
+ public static bool operator ==(CorSymReader_deprecatedClass o1, CorSymReader_deprecatedClass o2)
+ {
+ return ((object)o1 == null && (object)o2 == null) ||
+ ((object)o1 != null && (object)o2 != null && o1.WrappedObject == o2.WrappedObject);
+ }
+
+ public static bool operator !=(CorSymReader_deprecatedClass o1, CorSymReader_deprecatedClass o2)
+ {
+ return !(o1 == o2);
+ }
+
+ public override int GetHashCode()
+ {
+ return base.GetHashCode();
+ }
+
+ public override bool Equals(object o)
+ {
+ CorSymReader_deprecatedClass casted = o as CorSymReader_deprecatedClass;
+ return (casted != null) && (casted.WrappedObject == wrappedObject);
+ }
+
+
+ public ISymUnmanagedDocument GetDocument(ref ushort url, System.Guid language, System.Guid languageVendor, System.Guid documentType)
+ {
+ return ISymUnmanagedDocument.Wrap(this.WrappedObject.GetDocument(ref url, language, languageVendor, documentType));
+ }
+
+ public void GetDocuments(uint cDocs, out uint pcDocs, System.IntPtr pDocs)
+ {
+ this.WrappedObject.GetDocuments(cDocs, out pcDocs, pDocs);
+ }
+
+ public int GetDocumentVersion(ISymUnmanagedDocument pDoc, out int version)
+ {
+ int pbCurrent;
+ this.WrappedObject.GetDocumentVersion(pDoc.WrappedObject, out version, out pbCurrent);
+ return pbCurrent;
+ }
+
+ public void GetGlobalVariables(uint cVars, out uint pcVars, System.IntPtr pVars)
+ {
+ this.WrappedObject.GetGlobalVariables(cVars, out pcVars, pVars);
+ }
+
+ public ISymUnmanagedMethod GetMethod(uint token)
+ {
+ return ISymUnmanagedMethod.Wrap(this.WrappedObject.GetMethod(token));
+ }
+
+ public ISymUnmanagedMethod GetMethodByVersion(uint token, int version)
+ {
+ return ISymUnmanagedMethod.Wrap(this.WrappedObject.GetMethodByVersion(token, version));
+ }
+
+ public ISymUnmanagedMethod GetMethodFromDocumentPosition(ISymUnmanagedDocument document, uint line, uint column)
+ {
+ return ISymUnmanagedMethod.Wrap(this.WrappedObject.GetMethodFromDocumentPosition(document.WrappedObject, line, column));
+ }
+
+ public void GetMethodsFromDocumentPosition(ISymUnmanagedDocument document, uint line, uint column, uint cMethod, out uint pcMethod, System.IntPtr pRetVal)
+ {
+ this.WrappedObject.GetMethodsFromDocumentPosition(document.WrappedObject, line, column, cMethod, out pcMethod, pRetVal);
+ }
+
+ public int GetMethodVersion(ISymUnmanagedMethod pMethod)
+ {
+ int version;
+ this.WrappedObject.GetMethodVersion(pMethod.WrappedObject, out version);
+ return version;
+ }
+
+ public void GetNamespaces(uint cNameSpaces, out uint pcNameSpaces, System.IntPtr namespaces)
+ {
+ this.WrappedObject.GetNamespaces(cNameSpaces, out pcNameSpaces, namespaces);
+ }
+
+ public void GetSymAttribute(uint parent, ref ushort name, uint cBuffer, out uint pcBuffer, System.IntPtr buffer)
+ {
+ this.WrappedObject.GetSymAttribute(parent, ref name, cBuffer, out pcBuffer, buffer);
+ }
+
+ public void GetSymbolStoreFileName(uint cchName, out uint pcchName, System.IntPtr szName)
+ {
+ this.WrappedObject.GetSymbolStoreFileName(cchName, out pcchName, szName);
+ }
+
+ public uint UserEntryPoint
+ {
+ get
+ {
+ return this.WrappedObject.GetUserEntryPoint();
+ }
+ }
+
+ public void GetVariables(uint parent, uint cVars, out uint pcVars, System.IntPtr pVars)
+ {
+ this.WrappedObject.GetVariables(parent, cVars, out pcVars, pVars);
+ }
+
+ public void Initialize(object importer, ref ushort filename, ref ushort searchPath, IStream pIStream)
+ {
+ this.WrappedObject.Initialize(importer, ref filename, ref searchPath, pIStream.WrappedObject);
+ }
+
+ public void ReplaceSymbolStore(ref ushort filename, IStream pIStream)
+ {
+ this.WrappedObject.ReplaceSymbolStore(ref filename, pIStream.WrappedObject);
+ }
+
+ public void UpdateSymbolStore(ref ushort filename, IStream pIStream)
+ {
+ this.WrappedObject.UpdateSymbolStore(ref filename, pIStream.WrappedObject);
+ }
+ }
+}
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/CorSymSearchPolicyAttributes.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/CorSymSearchPolicyAttributes.cs
new file mode 100644
index 0000000000..08115abf5c
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/CorSymSearchPolicyAttributes.cs
@@ -0,0 +1,24 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Wrappers.CorSym
+{
+ using System;
+
+
+ public enum CorSymSearchPolicyAttributes : int
+ {
+
+ AllowRegistryAccess = 1,
+
+ AllowSymbolServerAccess = 2,
+
+ AllowOriginalPathAccess = 4,
+
+ AllowReferencePathAccess = 8,
+ }
+}
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/CorSymVarFlag.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/CorSymVarFlag.cs
new file mode 100644
index 0000000000..78b9c1e7f2
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/CorSymVarFlag.cs
@@ -0,0 +1,18 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Wrappers.CorSym
+{
+ using System;
+
+
+ public enum CorSymVarFlag : int
+ {
+
+ VAR_IS_COMP_GEN = 1,
+ }
+}
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/CorSymWriter_SxS.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/CorSymWriter_SxS.cs
new file mode 100644
index 0000000000..e3673e4c2f
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/CorSymWriter_SxS.cs
@@ -0,0 +1,91 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Wrappers.CorSym
+{
+ using System;
+
+
+ public class CorSymWriter_SxS
+ {
+
+ private Debugger.Interop.CorSym.CorSymWriter_SxS wrappedObject;
+
+ internal Debugger.Interop.CorSym.CorSymWriter_SxS WrappedObject
+ {
+ get
+ {
+ return this.wrappedObject;
+ }
+ }
+
+ public CorSymWriter_SxS(Debugger.Interop.CorSym.CorSymWriter_SxS wrappedObject)
+ {
+ this.wrappedObject = wrappedObject;
+ ResourceManager.TrackCOMObject(wrappedObject, typeof(CorSymWriter_SxS));
+ }
+
+ public static CorSymWriter_SxS Wrap(Debugger.Interop.CorSym.CorSymWriter_SxS objectToWrap)
+ {
+ return new CorSymWriter_SxS(objectToWrap);
+ }
+
+ ~CorSymWriter_SxS()
+ {
+ object o = wrappedObject;
+ wrappedObject = null;
+ ResourceManager.ReleaseCOMObject(o, typeof(CorSymWriter_SxS));
+ }
+
+ public bool Is() where T: class
+ {
+ try {
+ CastTo();
+ return true;
+ } catch {
+ return false;
+ }
+ }
+
+ public T As() where T: class
+ {
+ try {
+ return CastTo();
+ } catch {
+ return null;
+ }
+ }
+
+ public T CastTo() where T: class
+ {
+ return (T)Activator.CreateInstance(typeof(T), this.WrappedObject);
+ }
+
+ public static bool operator ==(CorSymWriter_SxS o1, CorSymWriter_SxS o2)
+ {
+ return ((object)o1 == null && (object)o2 == null) ||
+ ((object)o1 != null && (object)o2 != null && o1.WrappedObject == o2.WrappedObject);
+ }
+
+ public static bool operator !=(CorSymWriter_SxS o1, CorSymWriter_SxS o2)
+ {
+ return !(o1 == o2);
+ }
+
+ public override int GetHashCode()
+ {
+ return base.GetHashCode();
+ }
+
+ public override bool Equals(object o)
+ {
+ CorSymWriter_SxS casted = o as CorSymWriter_SxS;
+ return (casted != null) && (casted.WrappedObject == wrappedObject);
+ }
+
+ }
+}
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/CorSymWriter_SxSClass.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/CorSymWriter_SxSClass.cs
new file mode 100644
index 0000000000..d81bce9863
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/CorSymWriter_SxSClass.cs
@@ -0,0 +1,211 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Wrappers.CorSym
+{
+ using System;
+
+
+ public class CorSymWriter_SxSClass
+ {
+
+ private Debugger.Interop.CorSym.CorSymWriter_SxSClass wrappedObject;
+
+ internal Debugger.Interop.CorSym.CorSymWriter_SxSClass WrappedObject
+ {
+ get
+ {
+ return this.wrappedObject;
+ }
+ }
+
+ public CorSymWriter_SxSClass(Debugger.Interop.CorSym.CorSymWriter_SxSClass wrappedObject)
+ {
+ this.wrappedObject = wrappedObject;
+ ResourceManager.TrackCOMObject(wrappedObject, typeof(CorSymWriter_SxSClass));
+ }
+
+ public static CorSymWriter_SxSClass Wrap(Debugger.Interop.CorSym.CorSymWriter_SxSClass objectToWrap)
+ {
+ return new CorSymWriter_SxSClass(objectToWrap);
+ }
+
+ ~CorSymWriter_SxSClass()
+ {
+ object o = wrappedObject;
+ wrappedObject = null;
+ ResourceManager.ReleaseCOMObject(o, typeof(CorSymWriter_SxSClass));
+ }
+
+ public bool Is() where T: class
+ {
+ try {
+ CastTo();
+ return true;
+ } catch {
+ return false;
+ }
+ }
+
+ public T As() where T: class
+ {
+ try {
+ return CastTo();
+ } catch {
+ return null;
+ }
+ }
+
+ public T CastTo() where T: class
+ {
+ return (T)Activator.CreateInstance(typeof(T), this.WrappedObject);
+ }
+
+ public static bool operator ==(CorSymWriter_SxSClass o1, CorSymWriter_SxSClass o2)
+ {
+ return ((object)o1 == null && (object)o2 == null) ||
+ ((object)o1 != null && (object)o2 != null && o1.WrappedObject == o2.WrappedObject);
+ }
+
+ public static bool operator !=(CorSymWriter_SxSClass o1, CorSymWriter_SxSClass o2)
+ {
+ return !(o1 == o2);
+ }
+
+ public override int GetHashCode()
+ {
+ return base.GetHashCode();
+ }
+
+ public override bool Equals(object o)
+ {
+ CorSymWriter_SxSClass casted = o as CorSymWriter_SxSClass;
+ return (casted != null) && (casted.WrappedObject == wrappedObject);
+ }
+
+
+ public void Abort()
+ {
+ this.WrappedObject.Abort();
+ }
+
+ public void Close()
+ {
+ this.WrappedObject.Close();
+ }
+
+ public void CloseMethod()
+ {
+ this.WrappedObject.CloseMethod();
+ }
+
+ public void CloseNamespace()
+ {
+ this.WrappedObject.CloseNamespace();
+ }
+
+ public void CloseScope(uint endOffset)
+ {
+ this.WrappedObject.CloseScope(endOffset);
+ }
+
+ public void DefineConstant(ref ushort name, object value, uint cSig, ref byte signature)
+ {
+ this.WrappedObject.DefineConstant(ref name, value, cSig, ref signature);
+ }
+
+ public ISymUnmanagedDocumentWriter DefineDocument(ref ushort url, ref System.Guid language, ref System.Guid languageVendor, ref System.Guid documentType)
+ {
+ return ISymUnmanagedDocumentWriter.Wrap(this.WrappedObject.DefineDocument(ref url, ref language, ref languageVendor, ref documentType));
+ }
+
+ public void DefineField(uint parent, ref ushort name, uint attributes, uint cSig, ref byte signature, uint addrKind, uint addr1, uint addr2, uint addr3)
+ {
+ this.WrappedObject.DefineField(parent, ref name, attributes, cSig, ref signature, addrKind, addr1, addr2, addr3);
+ }
+
+ public void DefineGlobalVariable(ref ushort name, uint attributes, uint cSig, ref byte signature, uint addrKind, uint addr1, uint addr2, uint addr3)
+ {
+ this.WrappedObject.DefineGlobalVariable(ref name, attributes, cSig, ref signature, addrKind, addr1, addr2, addr3);
+ }
+
+ public void DefineLocalVariable(ref ushort name, uint attributes, uint cSig, ref byte signature, uint addrKind, uint addr1, uint addr2, uint addr3, uint startOffset, uint endOffset)
+ {
+ this.WrappedObject.DefineLocalVariable(ref name, attributes, cSig, ref signature, addrKind, addr1, addr2, addr3, startOffset, endOffset);
+ }
+
+ public void DefineParameter(ref ushort name, uint attributes, uint sequence, uint addrKind, uint addr1, uint addr2, uint addr3)
+ {
+ this.WrappedObject.DefineParameter(ref name, attributes, sequence, addrKind, addr1, addr2, addr3);
+ }
+
+ public void DefineSequencePoints(ISymUnmanagedDocumentWriter document, uint spCount, ref uint offsets, ref uint lines, ref uint columns, ref uint endLines, ref uint endColumns)
+ {
+ this.WrappedObject.DefineSequencePoints(document.WrappedObject, spCount, ref offsets, ref lines, ref columns, ref endLines, ref endColumns);
+ }
+
+ public void GetDebugInfo(ref uint pIDD, uint cData, out uint pcData, System.IntPtr data)
+ {
+ this.WrappedObject.GetDebugInfo(ref pIDD, cData, out pcData, data);
+ }
+
+ public void Initialize(object emitter, ref ushort filename, IStream pIStream, int fFullBuild)
+ {
+ this.WrappedObject.Initialize(emitter, ref filename, pIStream.WrappedObject, fFullBuild);
+ }
+
+ public void Initialize2(object emitter, ref ushort tempfilename, IStream pIStream, int fFullBuild, ref ushort finalfilename)
+ {
+ this.WrappedObject.Initialize2(emitter, ref tempfilename, pIStream.WrappedObject, fFullBuild, ref finalfilename);
+ }
+
+ public void OpenMethod(uint method)
+ {
+ this.WrappedObject.OpenMethod(method);
+ }
+
+ public void OpenNamespace(ref ushort name)
+ {
+ this.WrappedObject.OpenNamespace(ref name);
+ }
+
+ public uint OpenScope(uint startOffset)
+ {
+ return this.WrappedObject.OpenScope(startOffset);
+ }
+
+ public void RemapToken(uint oldToken, uint newToken)
+ {
+ this.WrappedObject.RemapToken(oldToken, newToken);
+ }
+
+ public void SetMethodSourceRange(ISymUnmanagedDocumentWriter startDoc, uint startLine, uint startColumn, ISymUnmanagedDocumentWriter endDoc, uint endLine, uint endColumn)
+ {
+ this.WrappedObject.SetMethodSourceRange(startDoc.WrappedObject, startLine, startColumn, endDoc.WrappedObject, endLine, endColumn);
+ }
+
+ public void SetScopeRange(uint scopeID, uint startOffset, uint endOffset)
+ {
+ this.WrappedObject.SetScopeRange(scopeID, startOffset, endOffset);
+ }
+
+ public void SetSymAttribute(uint parent, ref ushort name, uint cData, ref byte data)
+ {
+ this.WrappedObject.SetSymAttribute(parent, ref name, cData, ref data);
+ }
+
+ public void SetUserEntryPoint(uint entryMethod)
+ {
+ this.WrappedObject.SetUserEntryPoint(entryMethod);
+ }
+
+ public void UsingNamespace(ref ushort fullName)
+ {
+ this.WrappedObject.UsingNamespace(ref fullName);
+ }
+ }
+}
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/CorSymWriter_deprecated.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/CorSymWriter_deprecated.cs
new file mode 100644
index 0000000000..b1d539ba0a
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/CorSymWriter_deprecated.cs
@@ -0,0 +1,91 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Wrappers.CorSym
+{
+ using System;
+
+
+ public class CorSymWriter_deprecated
+ {
+
+ private Debugger.Interop.CorSym.CorSymWriter_deprecated wrappedObject;
+
+ internal Debugger.Interop.CorSym.CorSymWriter_deprecated WrappedObject
+ {
+ get
+ {
+ return this.wrappedObject;
+ }
+ }
+
+ public CorSymWriter_deprecated(Debugger.Interop.CorSym.CorSymWriter_deprecated wrappedObject)
+ {
+ this.wrappedObject = wrappedObject;
+ ResourceManager.TrackCOMObject(wrappedObject, typeof(CorSymWriter_deprecated));
+ }
+
+ public static CorSymWriter_deprecated Wrap(Debugger.Interop.CorSym.CorSymWriter_deprecated objectToWrap)
+ {
+ return new CorSymWriter_deprecated(objectToWrap);
+ }
+
+ ~CorSymWriter_deprecated()
+ {
+ object o = wrappedObject;
+ wrappedObject = null;
+ ResourceManager.ReleaseCOMObject(o, typeof(CorSymWriter_deprecated));
+ }
+
+ public bool Is() where T: class
+ {
+ try {
+ CastTo();
+ return true;
+ } catch {
+ return false;
+ }
+ }
+
+ public T As() where T: class
+ {
+ try {
+ return CastTo();
+ } catch {
+ return null;
+ }
+ }
+
+ public T CastTo() where T: class
+ {
+ return (T)Activator.CreateInstance(typeof(T), this.WrappedObject);
+ }
+
+ public static bool operator ==(CorSymWriter_deprecated o1, CorSymWriter_deprecated o2)
+ {
+ return ((object)o1 == null && (object)o2 == null) ||
+ ((object)o1 != null && (object)o2 != null && o1.WrappedObject == o2.WrappedObject);
+ }
+
+ public static bool operator !=(CorSymWriter_deprecated o1, CorSymWriter_deprecated o2)
+ {
+ return !(o1 == o2);
+ }
+
+ public override int GetHashCode()
+ {
+ return base.GetHashCode();
+ }
+
+ public override bool Equals(object o)
+ {
+ CorSymWriter_deprecated casted = o as CorSymWriter_deprecated;
+ return (casted != null) && (casted.WrappedObject == wrappedObject);
+ }
+
+ }
+}
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/CorSymWriter_deprecatedClass.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/CorSymWriter_deprecatedClass.cs
new file mode 100644
index 0000000000..c213f2294d
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/CorSymWriter_deprecatedClass.cs
@@ -0,0 +1,211 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Wrappers.CorSym
+{
+ using System;
+
+
+ public class CorSymWriter_deprecatedClass
+ {
+
+ private Debugger.Interop.CorSym.CorSymWriter_deprecatedClass wrappedObject;
+
+ internal Debugger.Interop.CorSym.CorSymWriter_deprecatedClass WrappedObject
+ {
+ get
+ {
+ return this.wrappedObject;
+ }
+ }
+
+ public CorSymWriter_deprecatedClass(Debugger.Interop.CorSym.CorSymWriter_deprecatedClass wrappedObject)
+ {
+ this.wrappedObject = wrappedObject;
+ ResourceManager.TrackCOMObject(wrappedObject, typeof(CorSymWriter_deprecatedClass));
+ }
+
+ public static CorSymWriter_deprecatedClass Wrap(Debugger.Interop.CorSym.CorSymWriter_deprecatedClass objectToWrap)
+ {
+ return new CorSymWriter_deprecatedClass(objectToWrap);
+ }
+
+ ~CorSymWriter_deprecatedClass()
+ {
+ object o = wrappedObject;
+ wrappedObject = null;
+ ResourceManager.ReleaseCOMObject(o, typeof(CorSymWriter_deprecatedClass));
+ }
+
+ public bool Is() where T: class
+ {
+ try {
+ CastTo();
+ return true;
+ } catch {
+ return false;
+ }
+ }
+
+ public T As() where T: class
+ {
+ try {
+ return CastTo();
+ } catch {
+ return null;
+ }
+ }
+
+ public T CastTo() where T: class
+ {
+ return (T)Activator.CreateInstance(typeof(T), this.WrappedObject);
+ }
+
+ public static bool operator ==(CorSymWriter_deprecatedClass o1, CorSymWriter_deprecatedClass o2)
+ {
+ return ((object)o1 == null && (object)o2 == null) ||
+ ((object)o1 != null && (object)o2 != null && o1.WrappedObject == o2.WrappedObject);
+ }
+
+ public static bool operator !=(CorSymWriter_deprecatedClass o1, CorSymWriter_deprecatedClass o2)
+ {
+ return !(o1 == o2);
+ }
+
+ public override int GetHashCode()
+ {
+ return base.GetHashCode();
+ }
+
+ public override bool Equals(object o)
+ {
+ CorSymWriter_deprecatedClass casted = o as CorSymWriter_deprecatedClass;
+ return (casted != null) && (casted.WrappedObject == wrappedObject);
+ }
+
+
+ public void Abort()
+ {
+ this.WrappedObject.Abort();
+ }
+
+ public void Close()
+ {
+ this.WrappedObject.Close();
+ }
+
+ public void CloseMethod()
+ {
+ this.WrappedObject.CloseMethod();
+ }
+
+ public void CloseNamespace()
+ {
+ this.WrappedObject.CloseNamespace();
+ }
+
+ public void CloseScope(uint endOffset)
+ {
+ this.WrappedObject.CloseScope(endOffset);
+ }
+
+ public void DefineConstant(ref ushort name, object value, uint cSig, ref byte signature)
+ {
+ this.WrappedObject.DefineConstant(ref name, value, cSig, ref signature);
+ }
+
+ public ISymUnmanagedDocumentWriter DefineDocument(ref ushort url, ref System.Guid language, ref System.Guid languageVendor, ref System.Guid documentType)
+ {
+ return ISymUnmanagedDocumentWriter.Wrap(this.WrappedObject.DefineDocument(ref url, ref language, ref languageVendor, ref documentType));
+ }
+
+ public void DefineField(uint parent, ref ushort name, uint attributes, uint cSig, ref byte signature, uint addrKind, uint addr1, uint addr2, uint addr3)
+ {
+ this.WrappedObject.DefineField(parent, ref name, attributes, cSig, ref signature, addrKind, addr1, addr2, addr3);
+ }
+
+ public void DefineGlobalVariable(ref ushort name, uint attributes, uint cSig, ref byte signature, uint addrKind, uint addr1, uint addr2, uint addr3)
+ {
+ this.WrappedObject.DefineGlobalVariable(ref name, attributes, cSig, ref signature, addrKind, addr1, addr2, addr3);
+ }
+
+ public void DefineLocalVariable(ref ushort name, uint attributes, uint cSig, ref byte signature, uint addrKind, uint addr1, uint addr2, uint addr3, uint startOffset, uint endOffset)
+ {
+ this.WrappedObject.DefineLocalVariable(ref name, attributes, cSig, ref signature, addrKind, addr1, addr2, addr3, startOffset, endOffset);
+ }
+
+ public void DefineParameter(ref ushort name, uint attributes, uint sequence, uint addrKind, uint addr1, uint addr2, uint addr3)
+ {
+ this.WrappedObject.DefineParameter(ref name, attributes, sequence, addrKind, addr1, addr2, addr3);
+ }
+
+ public void DefineSequencePoints(ISymUnmanagedDocumentWriter document, uint spCount, ref uint offsets, ref uint lines, ref uint columns, ref uint endLines, ref uint endColumns)
+ {
+ this.WrappedObject.DefineSequencePoints(document.WrappedObject, spCount, ref offsets, ref lines, ref columns, ref endLines, ref endColumns);
+ }
+
+ public void GetDebugInfo(ref uint pIDD, uint cData, out uint pcData, System.IntPtr data)
+ {
+ this.WrappedObject.GetDebugInfo(ref pIDD, cData, out pcData, data);
+ }
+
+ public void Initialize(object emitter, ref ushort filename, IStream pIStream, int fFullBuild)
+ {
+ this.WrappedObject.Initialize(emitter, ref filename, pIStream.WrappedObject, fFullBuild);
+ }
+
+ public void Initialize2(object emitter, ref ushort tempfilename, IStream pIStream, int fFullBuild, ref ushort finalfilename)
+ {
+ this.WrappedObject.Initialize2(emitter, ref tempfilename, pIStream.WrappedObject, fFullBuild, ref finalfilename);
+ }
+
+ public void OpenMethod(uint method)
+ {
+ this.WrappedObject.OpenMethod(method);
+ }
+
+ public void OpenNamespace(ref ushort name)
+ {
+ this.WrappedObject.OpenNamespace(ref name);
+ }
+
+ public uint OpenScope(uint startOffset)
+ {
+ return this.WrappedObject.OpenScope(startOffset);
+ }
+
+ public void RemapToken(uint oldToken, uint newToken)
+ {
+ this.WrappedObject.RemapToken(oldToken, newToken);
+ }
+
+ public void SetMethodSourceRange(ISymUnmanagedDocumentWriter startDoc, uint startLine, uint startColumn, ISymUnmanagedDocumentWriter endDoc, uint endLine, uint endColumn)
+ {
+ this.WrappedObject.SetMethodSourceRange(startDoc.WrappedObject, startLine, startColumn, endDoc.WrappedObject, endLine, endColumn);
+ }
+
+ public void SetScopeRange(uint scopeID, uint startOffset, uint endOffset)
+ {
+ this.WrappedObject.SetScopeRange(scopeID, startOffset, endOffset);
+ }
+
+ public void SetSymAttribute(uint parent, ref ushort name, uint cData, ref byte data)
+ {
+ this.WrappedObject.SetSymAttribute(parent, ref name, cData, ref data);
+ }
+
+ public void SetUserEntryPoint(uint entryMethod)
+ {
+ this.WrappedObject.SetUserEntryPoint(entryMethod);
+ }
+
+ public void UsingNamespace(ref ushort fullName)
+ {
+ this.WrappedObject.UsingNamespace(ref fullName);
+ }
+ }
+}
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/ISequentialStream.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/ISequentialStream.cs
new file mode 100644
index 0000000000..6e59468d80
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/ISequentialStream.cs
@@ -0,0 +1,105 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Wrappers.CorSym
+{
+ using System;
+
+
+ public class ISequentialStream
+ {
+
+ private Debugger.Interop.CorSym.ISequentialStream wrappedObject;
+
+ internal Debugger.Interop.CorSym.ISequentialStream WrappedObject
+ {
+ get
+ {
+ return this.wrappedObject;
+ }
+ }
+
+ public ISequentialStream(Debugger.Interop.CorSym.ISequentialStream wrappedObject)
+ {
+ this.wrappedObject = wrappedObject;
+ ResourceManager.TrackCOMObject(wrappedObject, typeof(ISequentialStream));
+ }
+
+ public static ISequentialStream Wrap(Debugger.Interop.CorSym.ISequentialStream objectToWrap)
+ {
+ return new ISequentialStream(objectToWrap);
+ }
+
+ ~ISequentialStream()
+ {
+ object o = wrappedObject;
+ wrappedObject = null;
+ ResourceManager.ReleaseCOMObject(o, typeof(ISequentialStream));
+ }
+
+ public bool Is() where T: class
+ {
+ try {
+ CastTo();
+ return true;
+ } catch {
+ return false;
+ }
+ }
+
+ public T As() where T: class
+ {
+ try {
+ return CastTo();
+ } catch {
+ return null;
+ }
+ }
+
+ public T CastTo() where T: class
+ {
+ return (T)Activator.CreateInstance(typeof(T), this.WrappedObject);
+ }
+
+ public static bool operator ==(ISequentialStream o1, ISequentialStream o2)
+ {
+ return ((object)o1 == null && (object)o2 == null) ||
+ ((object)o1 != null && (object)o2 != null && o1.WrappedObject == o2.WrappedObject);
+ }
+
+ public static bool operator !=(ISequentialStream o1, ISequentialStream o2)
+ {
+ return !(o1 == o2);
+ }
+
+ public override int GetHashCode()
+ {
+ return base.GetHashCode();
+ }
+
+ public override bool Equals(object o)
+ {
+ ISequentialStream casted = o as ISequentialStream;
+ return (casted != null) && (casted.WrappedObject == wrappedObject);
+ }
+
+
+ public uint RemoteRead(out byte pv, uint cb)
+ {
+ uint pcbRead;
+ this.WrappedObject.RemoteRead(out pv, cb, out pcbRead);
+ return pcbRead;
+ }
+
+ public uint RemoteWrite(ref byte pv, uint cb)
+ {
+ uint pcbWritten;
+ this.WrappedObject.RemoteWrite(ref pv, cb, out pcbWritten);
+ return pcbWritten;
+ }
+ }
+}
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/IStream.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/IStream.cs
new file mode 100644
index 0000000000..b330a7ab2c
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/IStream.cs
@@ -0,0 +1,158 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Wrappers.CorSym
+{
+ using System;
+
+
+ public class IStream
+ {
+
+ private Debugger.Interop.CorSym.IStream wrappedObject;
+
+ internal Debugger.Interop.CorSym.IStream WrappedObject
+ {
+ get
+ {
+ return this.wrappedObject;
+ }
+ }
+
+ public IStream(Debugger.Interop.CorSym.IStream wrappedObject)
+ {
+ this.wrappedObject = wrappedObject;
+ ResourceManager.TrackCOMObject(wrappedObject, typeof(IStream));
+ }
+
+ public static IStream Wrap(Debugger.Interop.CorSym.IStream objectToWrap)
+ {
+ return new IStream(objectToWrap);
+ }
+
+ ~IStream()
+ {
+ object o = wrappedObject;
+ wrappedObject = null;
+ ResourceManager.ReleaseCOMObject(o, typeof(IStream));
+ }
+
+ public bool Is() where T: class
+ {
+ try {
+ CastTo();
+ return true;
+ } catch {
+ return false;
+ }
+ }
+
+ public T As() where T: class
+ {
+ try {
+ return CastTo();
+ } catch {
+ return null;
+ }
+ }
+
+ public T CastTo() where T: class
+ {
+ return (T)Activator.CreateInstance(typeof(T), this.WrappedObject);
+ }
+
+ public static bool operator ==(IStream o1, IStream o2)
+ {
+ return ((object)o1 == null && (object)o2 == null) ||
+ ((object)o1 != null && (object)o2 != null && o1.WrappedObject == o2.WrappedObject);
+ }
+
+ public static bool operator !=(IStream o1, IStream o2)
+ {
+ return !(o1 == o2);
+ }
+
+ public override int GetHashCode()
+ {
+ return base.GetHashCode();
+ }
+
+ public override bool Equals(object o)
+ {
+ IStream casted = o as IStream;
+ return (casted != null) && (casted.WrappedObject == wrappedObject);
+ }
+
+
+ public uint RemoteRead(out byte pv, uint cb)
+ {
+ uint pcbRead;
+ this.WrappedObject.RemoteRead(out pv, cb, out pcbRead);
+ return pcbRead;
+ }
+
+ public uint RemoteWrite(ref byte pv, uint cb)
+ {
+ uint pcbWritten;
+ this.WrappedObject.RemoteWrite(ref pv, cb, out pcbWritten);
+ return pcbWritten;
+ }
+
+ public Debugger.Interop.CorSym._ULARGE_INTEGER RemoteSeek(Debugger.Interop.CorSym._LARGE_INTEGER dlibMove, uint dwOrigin)
+ {
+ Debugger.Interop.CorSym._ULARGE_INTEGER plibNewPosition;
+ this.WrappedObject.RemoteSeek(dlibMove, dwOrigin, out plibNewPosition);
+ return plibNewPosition;
+ }
+
+ public void SetSize(Debugger.Interop.CorSym._ULARGE_INTEGER libNewSize)
+ {
+ this.WrappedObject.SetSize(libNewSize);
+ }
+
+ public Debugger.Interop.CorSym._ULARGE_INTEGER RemoteCopyTo(IStream pstm, Debugger.Interop.CorSym._ULARGE_INTEGER cb, out Debugger.Interop.CorSym._ULARGE_INTEGER pcbRead)
+ {
+ Debugger.Interop.CorSym._ULARGE_INTEGER pcbWritten;
+ this.WrappedObject.RemoteCopyTo(pstm.WrappedObject, cb, out pcbRead, out pcbWritten);
+ return pcbWritten;
+ }
+
+ public void Commit(uint grfCommitFlags)
+ {
+ this.WrappedObject.Commit(grfCommitFlags);
+ }
+
+ public void Revert()
+ {
+ this.WrappedObject.Revert();
+ }
+
+ public void LockRegion(Debugger.Interop.CorSym._ULARGE_INTEGER libOffset, Debugger.Interop.CorSym._ULARGE_INTEGER cb, uint dwLockType)
+ {
+ this.WrappedObject.LockRegion(libOffset, cb, dwLockType);
+ }
+
+ public void UnlockRegion(Debugger.Interop.CorSym._ULARGE_INTEGER libOffset, Debugger.Interop.CorSym._ULARGE_INTEGER cb, uint dwLockType)
+ {
+ this.WrappedObject.UnlockRegion(libOffset, cb, dwLockType);
+ }
+
+ public void Stat(out Debugger.Interop.CorSym.tagSTATSTG pstatstg, uint grfStatFlag)
+ {
+ this.WrappedObject.Stat(out pstatstg, grfStatFlag);
+ }
+
+ public IStream Clone()
+ {
+ IStream ppstm;
+ Debugger.Interop.CorSym.IStream out_ppstm;
+ this.WrappedObject.Clone(out out_ppstm);
+ ppstm = IStream.Wrap(out_ppstm);
+ return ppstm;
+ }
+ }
+}
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/ISymUnmanagedBinder.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/ISymUnmanagedBinder.cs
new file mode 100644
index 0000000000..6ff5e57488
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/ISymUnmanagedBinder.cs
@@ -0,0 +1,101 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Wrappers.CorSym
+{
+ using System;
+
+
+ public class ISymUnmanagedBinder
+ {
+
+ private Debugger.Interop.CorSym.ISymUnmanagedBinder wrappedObject;
+
+ internal Debugger.Interop.CorSym.ISymUnmanagedBinder WrappedObject
+ {
+ get
+ {
+ return this.wrappedObject;
+ }
+ }
+
+ public ISymUnmanagedBinder(Debugger.Interop.CorSym.ISymUnmanagedBinder wrappedObject)
+ {
+ this.wrappedObject = wrappedObject;
+ ResourceManager.TrackCOMObject(wrappedObject, typeof(ISymUnmanagedBinder));
+ }
+
+ public static ISymUnmanagedBinder Wrap(Debugger.Interop.CorSym.ISymUnmanagedBinder objectToWrap)
+ {
+ return new ISymUnmanagedBinder(objectToWrap);
+ }
+
+ ~ISymUnmanagedBinder()
+ {
+ object o = wrappedObject;
+ wrappedObject = null;
+ ResourceManager.ReleaseCOMObject(o, typeof(ISymUnmanagedBinder));
+ }
+
+ public bool Is() where T: class
+ {
+ try {
+ CastTo();
+ return true;
+ } catch {
+ return false;
+ }
+ }
+
+ public T As() where T: class
+ {
+ try {
+ return CastTo();
+ } catch {
+ return null;
+ }
+ }
+
+ public T CastTo() where T: class
+ {
+ return (T)Activator.CreateInstance(typeof(T), this.WrappedObject);
+ }
+
+ public static bool operator ==(ISymUnmanagedBinder o1, ISymUnmanagedBinder o2)
+ {
+ return ((object)o1 == null && (object)o2 == null) ||
+ ((object)o1 != null && (object)o2 != null && o1.WrappedObject == o2.WrappedObject);
+ }
+
+ public static bool operator !=(ISymUnmanagedBinder o1, ISymUnmanagedBinder o2)
+ {
+ return !(o1 == o2);
+ }
+
+ public override int GetHashCode()
+ {
+ return base.GetHashCode();
+ }
+
+ public override bool Equals(object o)
+ {
+ ISymUnmanagedBinder casted = o as ISymUnmanagedBinder;
+ return (casted != null) && (casted.WrappedObject == wrappedObject);
+ }
+
+
+ public ISymUnmanagedReader GetReaderForFile(object importer, ref ushort filename, ref ushort searchPath)
+ {
+ return ISymUnmanagedReader.Wrap(this.WrappedObject.GetReaderForFile(importer, ref filename, ref searchPath));
+ }
+
+ public ISymUnmanagedReader GetReaderFromStream(object importer, IStream pstream)
+ {
+ return ISymUnmanagedReader.Wrap(this.WrappedObject.GetReaderFromStream(importer, pstream.WrappedObject));
+ }
+ }
+}
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/ISymUnmanagedDocument.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/ISymUnmanagedDocument.cs
new file mode 100644
index 0000000000..cd304ce184
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/ISymUnmanagedDocument.cs
@@ -0,0 +1,156 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Wrappers.CorSym
+{
+ using System;
+
+
+ public class ISymUnmanagedDocument
+ {
+
+ private Debugger.Interop.CorSym.ISymUnmanagedDocument wrappedObject;
+
+ internal Debugger.Interop.CorSym.ISymUnmanagedDocument WrappedObject
+ {
+ get
+ {
+ return this.wrappedObject;
+ }
+ }
+
+ public ISymUnmanagedDocument(Debugger.Interop.CorSym.ISymUnmanagedDocument wrappedObject)
+ {
+ this.wrappedObject = wrappedObject;
+ ResourceManager.TrackCOMObject(wrappedObject, typeof(ISymUnmanagedDocument));
+ }
+
+ public static ISymUnmanagedDocument Wrap(Debugger.Interop.CorSym.ISymUnmanagedDocument objectToWrap)
+ {
+ return new ISymUnmanagedDocument(objectToWrap);
+ }
+
+ ~ISymUnmanagedDocument()
+ {
+ object o = wrappedObject;
+ wrappedObject = null;
+ ResourceManager.ReleaseCOMObject(o, typeof(ISymUnmanagedDocument));
+ }
+
+ public bool Is() where T: class
+ {
+ try {
+ CastTo();
+ return true;
+ } catch {
+ return false;
+ }
+ }
+
+ public T As() where T: class
+ {
+ try {
+ return CastTo();
+ } catch {
+ return null;
+ }
+ }
+
+ public T CastTo() where T: class
+ {
+ return (T)Activator.CreateInstance(typeof(T), this.WrappedObject);
+ }
+
+ public static bool operator ==(ISymUnmanagedDocument o1, ISymUnmanagedDocument o2)
+ {
+ return ((object)o1 == null && (object)o2 == null) ||
+ ((object)o1 != null && (object)o2 != null && o1.WrappedObject == o2.WrappedObject);
+ }
+
+ public static bool operator !=(ISymUnmanagedDocument o1, ISymUnmanagedDocument o2)
+ {
+ return !(o1 == o2);
+ }
+
+ public override int GetHashCode()
+ {
+ return base.GetHashCode();
+ }
+
+ public override bool Equals(object o)
+ {
+ ISymUnmanagedDocument casted = o as ISymUnmanagedDocument;
+ return (casted != null) && (casted.WrappedObject == wrappedObject);
+ }
+
+
+ public void GetURL(uint cchUrl, out uint pcchUrl, System.IntPtr szUrl)
+ {
+ this.WrappedObject.GetURL(cchUrl, out pcchUrl, szUrl);
+ }
+
+ public System.Guid DocumentType
+ {
+ get
+ {
+ return this.WrappedObject.GetDocumentType();
+ }
+ }
+
+ public System.Guid Language
+ {
+ get
+ {
+ return this.WrappedObject.GetLanguage();
+ }
+ }
+
+ public System.Guid LanguageVendor
+ {
+ get
+ {
+ return this.WrappedObject.GetLanguageVendor();
+ }
+ }
+
+ public System.Guid CheckSumAlgorithmId
+ {
+ get
+ {
+ return this.WrappedObject.GetCheckSumAlgorithmId();
+ }
+ }
+
+ public void GetCheckSum(uint cData, out uint pcData, System.IntPtr data)
+ {
+ this.WrappedObject.GetCheckSum(cData, out pcData, data);
+ }
+
+ public uint FindClosestLine(uint line)
+ {
+ return this.WrappedObject.FindClosestLine(line);
+ }
+
+ public int HasEmbeddedSource()
+ {
+ return this.WrappedObject.HasEmbeddedSource();
+ }
+
+ public uint SourceLength
+ {
+ get
+ {
+ return this.WrappedObject.GetSourceLength();
+ }
+ }
+
+ public void GetSourceRange(uint startLine, uint startColumn, uint endLine, uint endColumn, uint cSourceBytes, out uint pcSourceBytes, System.IntPtr source)
+ {
+ this.WrappedObject.GetSourceRange(startLine, startColumn, endLine, endColumn, cSourceBytes, out pcSourceBytes, source);
+ }
+ }
+}
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/ISymUnmanagedDocumentWriter.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/ISymUnmanagedDocumentWriter.cs
new file mode 100644
index 0000000000..6716ac4859
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/ISymUnmanagedDocumentWriter.cs
@@ -0,0 +1,101 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Wrappers.CorSym
+{
+ using System;
+
+
+ public class ISymUnmanagedDocumentWriter
+ {
+
+ private Debugger.Interop.CorSym.ISymUnmanagedDocumentWriter wrappedObject;
+
+ internal Debugger.Interop.CorSym.ISymUnmanagedDocumentWriter WrappedObject
+ {
+ get
+ {
+ return this.wrappedObject;
+ }
+ }
+
+ public ISymUnmanagedDocumentWriter(Debugger.Interop.CorSym.ISymUnmanagedDocumentWriter wrappedObject)
+ {
+ this.wrappedObject = wrappedObject;
+ ResourceManager.TrackCOMObject(wrappedObject, typeof(ISymUnmanagedDocumentWriter));
+ }
+
+ public static ISymUnmanagedDocumentWriter Wrap(Debugger.Interop.CorSym.ISymUnmanagedDocumentWriter objectToWrap)
+ {
+ return new ISymUnmanagedDocumentWriter(objectToWrap);
+ }
+
+ ~ISymUnmanagedDocumentWriter()
+ {
+ object o = wrappedObject;
+ wrappedObject = null;
+ ResourceManager.ReleaseCOMObject(o, typeof(ISymUnmanagedDocumentWriter));
+ }
+
+ public bool Is() where T: class
+ {
+ try {
+ CastTo();
+ return true;
+ } catch {
+ return false;
+ }
+ }
+
+ public T As() where T: class
+ {
+ try {
+ return CastTo();
+ } catch {
+ return null;
+ }
+ }
+
+ public T CastTo() where T: class
+ {
+ return (T)Activator.CreateInstance(typeof(T), this.WrappedObject);
+ }
+
+ public static bool operator ==(ISymUnmanagedDocumentWriter o1, ISymUnmanagedDocumentWriter o2)
+ {
+ return ((object)o1 == null && (object)o2 == null) ||
+ ((object)o1 != null && (object)o2 != null && o1.WrappedObject == o2.WrappedObject);
+ }
+
+ public static bool operator !=(ISymUnmanagedDocumentWriter o1, ISymUnmanagedDocumentWriter o2)
+ {
+ return !(o1 == o2);
+ }
+
+ public override int GetHashCode()
+ {
+ return base.GetHashCode();
+ }
+
+ public override bool Equals(object o)
+ {
+ ISymUnmanagedDocumentWriter casted = o as ISymUnmanagedDocumentWriter;
+ return (casted != null) && (casted.WrappedObject == wrappedObject);
+ }
+
+
+ public void SetSource(uint sourceSize, ref byte source)
+ {
+ this.WrappedObject.SetSource(sourceSize, ref source);
+ }
+
+ public void SetCheckSum(System.Guid algorithmId, uint checkSumSize, ref byte checkSum)
+ {
+ this.WrappedObject.SetCheckSum(algorithmId, checkSumSize, ref checkSum);
+ }
+ }
+}
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/ISymUnmanagedMethod.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/ISymUnmanagedMethod.cs
new file mode 100644
index 0000000000..502a64d777
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/ISymUnmanagedMethod.cs
@@ -0,0 +1,179 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Wrappers.CorSym
+{
+ using System;
+
+
+ public class ISymUnmanagedMethod
+ {
+
+ private Debugger.Interop.CorSym.ISymUnmanagedMethod wrappedObject;
+
+ internal Debugger.Interop.CorSym.ISymUnmanagedMethod WrappedObject
+ {
+ get
+ {
+ return this.wrappedObject;
+ }
+ }
+
+ public ISymUnmanagedMethod(Debugger.Interop.CorSym.ISymUnmanagedMethod wrappedObject)
+ {
+ this.wrappedObject = wrappedObject;
+ ResourceManager.TrackCOMObject(wrappedObject, typeof(ISymUnmanagedMethod));
+ }
+
+ public static ISymUnmanagedMethod Wrap(Debugger.Interop.CorSym.ISymUnmanagedMethod objectToWrap)
+ {
+ return new ISymUnmanagedMethod(objectToWrap);
+ }
+
+ ~ISymUnmanagedMethod()
+ {
+ object o = wrappedObject;
+ wrappedObject = null;
+ ResourceManager.ReleaseCOMObject(o, typeof(ISymUnmanagedMethod));
+ }
+
+ public bool Is() where T: class
+ {
+ try {
+ CastTo();
+ return true;
+ } catch {
+ return false;
+ }
+ }
+
+ public T As() where T: class
+ {
+ try {
+ return CastTo();
+ } catch {
+ return null;
+ }
+ }
+
+ public T CastTo() where T: class
+ {
+ return (T)Activator.CreateInstance(typeof(T), this.WrappedObject);
+ }
+
+ public static bool operator ==(ISymUnmanagedMethod o1, ISymUnmanagedMethod o2)
+ {
+ return ((object)o1 == null && (object)o2 == null) ||
+ ((object)o1 != null && (object)o2 != null && o1.WrappedObject == o2.WrappedObject);
+ }
+
+ public static bool operator !=(ISymUnmanagedMethod o1, ISymUnmanagedMethod o2)
+ {
+ return !(o1 == o2);
+ }
+
+ public override int GetHashCode()
+ {
+ return base.GetHashCode();
+ }
+
+ public override bool Equals(object o)
+ {
+ ISymUnmanagedMethod casted = o as ISymUnmanagedMethod;
+ return (casted != null) && (casted.WrappedObject == wrappedObject);
+ }
+
+
+ public uint Token
+ {
+ get
+ {
+ return this.WrappedObject.GetToken();
+ }
+ }
+
+ public uint SequencePointCount
+ {
+ get
+ {
+ return this.WrappedObject.GetSequencePointCount();
+ }
+ }
+
+ public ISymUnmanagedScope RootScope
+ {
+ get
+ {
+ return ISymUnmanagedScope.Wrap(this.WrappedObject.GetRootScope());
+ }
+ }
+
+ public ISymUnmanagedScope GetScopeFromOffset(uint offset)
+ {
+ return ISymUnmanagedScope.Wrap(this.WrappedObject.GetScopeFromOffset(offset));
+ }
+
+ public uint GetOffset(ISymUnmanagedDocument document, uint line, uint column)
+ {
+ return this.WrappedObject.GetOffset(document.WrappedObject, line, column);
+ }
+
+ public void GetRanges(ISymUnmanagedDocument document, uint line, uint column, uint cRanges, out uint pcRanges, System.IntPtr ranges)
+ {
+ this.WrappedObject.GetRanges(document.WrappedObject, line, column, cRanges, out pcRanges, ranges);
+ }
+
+ public void GetParameters(uint cParams, out uint pcParams, System.IntPtr @params)
+ {
+ this.WrappedObject.GetParameters(cParams, out pcParams, @params);
+ }
+
+ public ISymUnmanagedNamespace Namespace
+ {
+ get
+ {
+ ISymUnmanagedNamespace pRetVal;
+ Debugger.Interop.CorSym.ISymUnmanagedNamespace out_pRetVal;
+ this.WrappedObject.GetNamespace(out out_pRetVal);
+ pRetVal = ISymUnmanagedNamespace.Wrap(out_pRetVal);
+ return pRetVal;
+ }
+ }
+
+ public int GetSourceStartEnd(ISymUnmanagedDocument[] docs, uint[] lines, uint[] columns)
+ {
+ int pRetVal;
+ Debugger.Interop.CorSym.ISymUnmanagedDocument[] array_docs = new Debugger.Interop.CorSym.ISymUnmanagedDocument[docs.Length];
+ for (int i = 0; (i < docs.Length); i = (i + 1))
+ {
+ if ((docs[i] != null))
+ {
+ array_docs[i] = docs[i].WrappedObject;
+ }
+ }
+ this.WrappedObject.GetSourceStartEnd(array_docs, lines, columns, out pRetVal);
+ for (int i = 0; (i < docs.Length); i = (i + 1))
+ {
+ if ((array_docs[i] != null))
+ {
+ docs[i] = ISymUnmanagedDocument.Wrap(array_docs[i]);
+ } else
+ {
+ docs[i] = null;
+ }
+ }
+ return pRetVal;
+ }
+
+ public void GetSequencePoints(uint cPoints, out uint pcPoints, ref uint offsets, ref ISymUnmanagedDocument documents, ref uint lines, ref uint columns, ref uint endLines, ref uint endColumns)
+ {
+ Debugger.Interop.CorSym.ISymUnmanagedDocument ref_documents = documents.WrappedObject;
+ this.WrappedObject.GetSequencePoints(cPoints, out pcPoints, ref offsets, ref ref_documents, ref lines, ref columns, ref endLines, ref endColumns);
+ documents = ISymUnmanagedDocument.Wrap(ref_documents);
+ }
+ }
+}
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/ISymUnmanagedNamespace.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/ISymUnmanagedNamespace.cs
new file mode 100644
index 0000000000..a1087a3f94
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/ISymUnmanagedNamespace.cs
@@ -0,0 +1,106 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Wrappers.CorSym
+{
+ using System;
+
+
+ public class ISymUnmanagedNamespace
+ {
+
+ private Debugger.Interop.CorSym.ISymUnmanagedNamespace wrappedObject;
+
+ internal Debugger.Interop.CorSym.ISymUnmanagedNamespace WrappedObject
+ {
+ get
+ {
+ return this.wrappedObject;
+ }
+ }
+
+ public ISymUnmanagedNamespace(Debugger.Interop.CorSym.ISymUnmanagedNamespace wrappedObject)
+ {
+ this.wrappedObject = wrappedObject;
+ ResourceManager.TrackCOMObject(wrappedObject, typeof(ISymUnmanagedNamespace));
+ }
+
+ public static ISymUnmanagedNamespace Wrap(Debugger.Interop.CorSym.ISymUnmanagedNamespace objectToWrap)
+ {
+ return new ISymUnmanagedNamespace(objectToWrap);
+ }
+
+ ~ISymUnmanagedNamespace()
+ {
+ object o = wrappedObject;
+ wrappedObject = null;
+ ResourceManager.ReleaseCOMObject(o, typeof(ISymUnmanagedNamespace));
+ }
+
+ public bool Is() where T: class
+ {
+ try {
+ CastTo();
+ return true;
+ } catch {
+ return false;
+ }
+ }
+
+ public T As() where T: class
+ {
+ try {
+ return CastTo();
+ } catch {
+ return null;
+ }
+ }
+
+ public T CastTo() where T: class
+ {
+ return (T)Activator.CreateInstance(typeof(T), this.WrappedObject);
+ }
+
+ public static bool operator ==(ISymUnmanagedNamespace o1, ISymUnmanagedNamespace o2)
+ {
+ return ((object)o1 == null && (object)o2 == null) ||
+ ((object)o1 != null && (object)o2 != null && o1.WrappedObject == o2.WrappedObject);
+ }
+
+ public static bool operator !=(ISymUnmanagedNamespace o1, ISymUnmanagedNamespace o2)
+ {
+ return !(o1 == o2);
+ }
+
+ public override int GetHashCode()
+ {
+ return base.GetHashCode();
+ }
+
+ public override bool Equals(object o)
+ {
+ ISymUnmanagedNamespace casted = o as ISymUnmanagedNamespace;
+ return (casted != null) && (casted.WrappedObject == wrappedObject);
+ }
+
+
+ public void GetName(uint cchName, out uint pcchName, System.IntPtr szName)
+ {
+ this.WrappedObject.GetName(cchName, out pcchName, szName);
+ }
+
+ public void GetNamespaces(uint cNameSpaces, out uint pcNameSpaces, System.IntPtr namespaces)
+ {
+ this.WrappedObject.GetNamespaces(cNameSpaces, out pcNameSpaces, namespaces);
+ }
+
+ public void GetVariables(uint cVars, out uint pcVars, System.IntPtr pVars)
+ {
+ this.WrappedObject.GetVariables(cVars, out pcVars, pVars);
+ }
+ }
+}
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/ISymUnmanagedReader.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/ISymUnmanagedReader.cs
new file mode 100644
index 0000000000..4261218944
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/ISymUnmanagedReader.cs
@@ -0,0 +1,183 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Wrappers.CorSym
+{
+ using System;
+
+
+ public class ISymUnmanagedReader
+ {
+
+ private Debugger.Interop.CorSym.ISymUnmanagedReader wrappedObject;
+
+ internal Debugger.Interop.CorSym.ISymUnmanagedReader WrappedObject
+ {
+ get
+ {
+ return this.wrappedObject;
+ }
+ }
+
+ public ISymUnmanagedReader(Debugger.Interop.CorSym.ISymUnmanagedReader wrappedObject)
+ {
+ this.wrappedObject = wrappedObject;
+ ResourceManager.TrackCOMObject(wrappedObject, typeof(ISymUnmanagedReader));
+ }
+
+ public static ISymUnmanagedReader Wrap(Debugger.Interop.CorSym.ISymUnmanagedReader objectToWrap)
+ {
+ return new ISymUnmanagedReader(objectToWrap);
+ }
+
+ ~ISymUnmanagedReader()
+ {
+ object o = wrappedObject;
+ wrappedObject = null;
+ ResourceManager.ReleaseCOMObject(o, typeof(ISymUnmanagedReader));
+ }
+
+ public bool Is() where T: class
+ {
+ try {
+ CastTo();
+ return true;
+ } catch {
+ return false;
+ }
+ }
+
+ public T As() where T: class
+ {
+ try {
+ return CastTo();
+ } catch {
+ return null;
+ }
+ }
+
+ public T CastTo() where T: class
+ {
+ return (T)Activator.CreateInstance(typeof(T), this.WrappedObject);
+ }
+
+ public static bool operator ==(ISymUnmanagedReader o1, ISymUnmanagedReader o2)
+ {
+ return ((object)o1 == null && (object)o2 == null) ||
+ ((object)o1 != null && (object)o2 != null && o1.WrappedObject == o2.WrappedObject);
+ }
+
+ public static bool operator !=(ISymUnmanagedReader o1, ISymUnmanagedReader o2)
+ {
+ return !(o1 == o2);
+ }
+
+ public override int GetHashCode()
+ {
+ return base.GetHashCode();
+ }
+
+ public override bool Equals(object o)
+ {
+ ISymUnmanagedReader casted = o as ISymUnmanagedReader;
+ return (casted != null) && (casted.WrappedObject == wrappedObject);
+ }
+
+
+ public ISymUnmanagedDocument GetDocument(ref ushort url, System.Guid language, System.Guid languageVendor, System.Guid documentType)
+ {
+ return ISymUnmanagedDocument.Wrap(this.WrappedObject.GetDocument(ref url, language, languageVendor, documentType));
+ }
+
+ public void GetDocuments(uint cDocs, out uint pcDocs, System.IntPtr pDocs)
+ {
+ this.WrappedObject.GetDocuments(cDocs, out pcDocs, pDocs);
+ }
+
+ public uint UserEntryPoint
+ {
+ get
+ {
+ return this.WrappedObject.GetUserEntryPoint();
+ }
+ }
+
+ public ISymUnmanagedMethod GetMethod(uint token)
+ {
+ return ISymUnmanagedMethod.Wrap(this.WrappedObject.GetMethod(token));
+ }
+
+ public ISymUnmanagedMethod GetMethodByVersion(uint token, int version)
+ {
+ return ISymUnmanagedMethod.Wrap(this.WrappedObject.GetMethodByVersion(token, version));
+ }
+
+ public void GetVariables(uint parent, uint cVars, out uint pcVars, System.IntPtr pVars)
+ {
+ this.WrappedObject.GetVariables(parent, cVars, out pcVars, pVars);
+ }
+
+ public void GetGlobalVariables(uint cVars, out uint pcVars, System.IntPtr pVars)
+ {
+ this.WrappedObject.GetGlobalVariables(cVars, out pcVars, pVars);
+ }
+
+ public ISymUnmanagedMethod GetMethodFromDocumentPosition(ISymUnmanagedDocument document, uint line, uint column)
+ {
+ return ISymUnmanagedMethod.Wrap(this.WrappedObject.GetMethodFromDocumentPosition(document.WrappedObject, line, column));
+ }
+
+ public void GetSymAttribute(uint parent, ref ushort name, uint cBuffer, out uint pcBuffer, System.IntPtr buffer)
+ {
+ this.WrappedObject.GetSymAttribute(parent, ref name, cBuffer, out pcBuffer, buffer);
+ }
+
+ public void GetNamespaces(uint cNameSpaces, out uint pcNameSpaces, System.IntPtr namespaces)
+ {
+ this.WrappedObject.GetNamespaces(cNameSpaces, out pcNameSpaces, namespaces);
+ }
+
+ public void Initialize(object importer, ref ushort filename, ref ushort searchPath, IStream pIStream)
+ {
+ this.WrappedObject.Initialize(importer, ref filename, ref searchPath, pIStream.WrappedObject);
+ }
+
+ public void UpdateSymbolStore(ref ushort filename, IStream pIStream)
+ {
+ this.WrappedObject.UpdateSymbolStore(ref filename, pIStream.WrappedObject);
+ }
+
+ public void ReplaceSymbolStore(ref ushort filename, IStream pIStream)
+ {
+ this.WrappedObject.ReplaceSymbolStore(ref filename, pIStream.WrappedObject);
+ }
+
+ public void GetSymbolStoreFileName(uint cchName, out uint pcchName, System.IntPtr szName)
+ {
+ this.WrappedObject.GetSymbolStoreFileName(cchName, out pcchName, szName);
+ }
+
+ public void GetMethodsFromDocumentPosition(ISymUnmanagedDocument document, uint line, uint column, uint cMethod, out uint pcMethod, System.IntPtr pRetVal)
+ {
+ this.WrappedObject.GetMethodsFromDocumentPosition(document.WrappedObject, line, column, cMethod, out pcMethod, pRetVal);
+ }
+
+ public int GetDocumentVersion(ISymUnmanagedDocument pDoc, out int version)
+ {
+ int pbCurrent;
+ this.WrappedObject.GetDocumentVersion(pDoc.WrappedObject, out version, out pbCurrent);
+ return pbCurrent;
+ }
+
+ public int GetMethodVersion(ISymUnmanagedMethod pMethod)
+ {
+ int version;
+ this.WrappedObject.GetMethodVersion(pMethod.WrappedObject, out version);
+ return version;
+ }
+ }
+}
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/ISymUnmanagedReaderSymbolSearchInfo.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/ISymUnmanagedReaderSymbolSearchInfo.cs
new file mode 100644
index 0000000000..5b1228407e
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/ISymUnmanagedReaderSymbolSearchInfo.cs
@@ -0,0 +1,110 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Wrappers.CorSym
+{
+ using System;
+
+
+ public class ISymUnmanagedReaderSymbolSearchInfo
+ {
+
+ private Debugger.Interop.CorSym.ISymUnmanagedReaderSymbolSearchInfo wrappedObject;
+
+ internal Debugger.Interop.CorSym.ISymUnmanagedReaderSymbolSearchInfo WrappedObject
+ {
+ get
+ {
+ return this.wrappedObject;
+ }
+ }
+
+ public ISymUnmanagedReaderSymbolSearchInfo(Debugger.Interop.CorSym.ISymUnmanagedReaderSymbolSearchInfo wrappedObject)
+ {
+ this.wrappedObject = wrappedObject;
+ ResourceManager.TrackCOMObject(wrappedObject, typeof(ISymUnmanagedReaderSymbolSearchInfo));
+ }
+
+ public static ISymUnmanagedReaderSymbolSearchInfo Wrap(Debugger.Interop.CorSym.ISymUnmanagedReaderSymbolSearchInfo objectToWrap)
+ {
+ return new ISymUnmanagedReaderSymbolSearchInfo(objectToWrap);
+ }
+
+ ~ISymUnmanagedReaderSymbolSearchInfo()
+ {
+ object o = wrappedObject;
+ wrappedObject = null;
+ ResourceManager.ReleaseCOMObject(o, typeof(ISymUnmanagedReaderSymbolSearchInfo));
+ }
+
+ public bool Is() where T: class
+ {
+ try {
+ CastTo();
+ return true;
+ } catch {
+ return false;
+ }
+ }
+
+ public T As() where T: class
+ {
+ try {
+ return CastTo();
+ } catch {
+ return null;
+ }
+ }
+
+ public T CastTo() where T: class
+ {
+ return (T)Activator.CreateInstance(typeof(T), this.WrappedObject);
+ }
+
+ public static bool operator ==(ISymUnmanagedReaderSymbolSearchInfo o1, ISymUnmanagedReaderSymbolSearchInfo o2)
+ {
+ return ((object)o1 == null && (object)o2 == null) ||
+ ((object)o1 != null && (object)o2 != null && o1.WrappedObject == o2.WrappedObject);
+ }
+
+ public static bool operator !=(ISymUnmanagedReaderSymbolSearchInfo o1, ISymUnmanagedReaderSymbolSearchInfo o2)
+ {
+ return !(o1 == o2);
+ }
+
+ public override int GetHashCode()
+ {
+ return base.GetHashCode();
+ }
+
+ public override bool Equals(object o)
+ {
+ ISymUnmanagedReaderSymbolSearchInfo casted = o as ISymUnmanagedReaderSymbolSearchInfo;
+ return (casted != null) && (casted.WrappedObject == wrappedObject);
+ }
+
+
+ public uint SymbolSearchInfoCount
+ {
+ get
+ {
+ uint pcSearchInfo;
+ this.WrappedObject.GetSymbolSearchInfoCount(out pcSearchInfo);
+ return pcSearchInfo;
+ }
+ }
+
+ public ISymUnmanagedSymbolSearchInfo GetSymbolSearchInfo(uint cSearchInfo, out uint pcSearchInfo)
+ {
+ ISymUnmanagedSymbolSearchInfo rgpSearchInfo;
+ Debugger.Interop.CorSym.ISymUnmanagedSymbolSearchInfo out_rgpSearchInfo;
+ this.WrappedObject.GetSymbolSearchInfo(cSearchInfo, out pcSearchInfo, out out_rgpSearchInfo);
+ rgpSearchInfo = ISymUnmanagedSymbolSearchInfo.Wrap(out_rgpSearchInfo);
+ return rgpSearchInfo;
+ }
+ }
+}
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/ISymUnmanagedScope.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/ISymUnmanagedScope.cs
new file mode 100644
index 0000000000..d24411c51b
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/ISymUnmanagedScope.cs
@@ -0,0 +1,146 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Wrappers.CorSym
+{
+ using System;
+
+
+ public class ISymUnmanagedScope
+ {
+
+ private Debugger.Interop.CorSym.ISymUnmanagedScope wrappedObject;
+
+ internal Debugger.Interop.CorSym.ISymUnmanagedScope WrappedObject
+ {
+ get
+ {
+ return this.wrappedObject;
+ }
+ }
+
+ public ISymUnmanagedScope(Debugger.Interop.CorSym.ISymUnmanagedScope wrappedObject)
+ {
+ this.wrappedObject = wrappedObject;
+ ResourceManager.TrackCOMObject(wrappedObject, typeof(ISymUnmanagedScope));
+ }
+
+ public static ISymUnmanagedScope Wrap(Debugger.Interop.CorSym.ISymUnmanagedScope objectToWrap)
+ {
+ return new ISymUnmanagedScope(objectToWrap);
+ }
+
+ ~ISymUnmanagedScope()
+ {
+ object o = wrappedObject;
+ wrappedObject = null;
+ ResourceManager.ReleaseCOMObject(o, typeof(ISymUnmanagedScope));
+ }
+
+ public bool Is() where T: class
+ {
+ try {
+ CastTo();
+ return true;
+ } catch {
+ return false;
+ }
+ }
+
+ public T As() where T: class
+ {
+ try {
+ return CastTo();
+ } catch {
+ return null;
+ }
+ }
+
+ public T CastTo() where T: class
+ {
+ return (T)Activator.CreateInstance(typeof(T), this.WrappedObject);
+ }
+
+ public static bool operator ==(ISymUnmanagedScope o1, ISymUnmanagedScope o2)
+ {
+ return ((object)o1 == null && (object)o2 == null) ||
+ ((object)o1 != null && (object)o2 != null && o1.WrappedObject == o2.WrappedObject);
+ }
+
+ public static bool operator !=(ISymUnmanagedScope o1, ISymUnmanagedScope o2)
+ {
+ return !(o1 == o2);
+ }
+
+ public override int GetHashCode()
+ {
+ return base.GetHashCode();
+ }
+
+ public override bool Equals(object o)
+ {
+ ISymUnmanagedScope casted = o as ISymUnmanagedScope;
+ return (casted != null) && (casted.WrappedObject == wrappedObject);
+ }
+
+
+ public ISymUnmanagedMethod Method
+ {
+ get
+ {
+ return ISymUnmanagedMethod.Wrap(this.WrappedObject.GetMethod());
+ }
+ }
+
+ public ISymUnmanagedScope Parent
+ {
+ get
+ {
+ return ISymUnmanagedScope.Wrap(this.WrappedObject.GetParent());
+ }
+ }
+
+ public void GetChildren(uint cChildren, out uint pcChildren, System.IntPtr children)
+ {
+ this.WrappedObject.GetChildren(cChildren, out pcChildren, children);
+ }
+
+ public uint StartOffset
+ {
+ get
+ {
+ return this.WrappedObject.GetStartOffset();
+ }
+ }
+
+ public uint EndOffset
+ {
+ get
+ {
+ return this.WrappedObject.GetEndOffset();
+ }
+ }
+
+ public uint LocalCount
+ {
+ get
+ {
+ return this.WrappedObject.GetLocalCount();
+ }
+ }
+
+ public void GetLocals(uint cLocals, out uint pcLocals, System.IntPtr locals)
+ {
+ this.WrappedObject.GetLocals(cLocals, out pcLocals, locals);
+ }
+
+ public void GetNamespaces(uint cNameSpaces, out uint pcNameSpaces, System.IntPtr namespaces)
+ {
+ this.WrappedObject.GetNamespaces(cNameSpaces, out pcNameSpaces, namespaces);
+ }
+ }
+}
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/ISymUnmanagedSymbolSearchInfo.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/ISymUnmanagedSymbolSearchInfo.cs
new file mode 100644
index 0000000000..1a90ddd80f
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/ISymUnmanagedSymbolSearchInfo.cs
@@ -0,0 +1,116 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Wrappers.CorSym
+{
+ using System;
+
+
+ public class ISymUnmanagedSymbolSearchInfo
+ {
+
+ private Debugger.Interop.CorSym.ISymUnmanagedSymbolSearchInfo wrappedObject;
+
+ internal Debugger.Interop.CorSym.ISymUnmanagedSymbolSearchInfo WrappedObject
+ {
+ get
+ {
+ return this.wrappedObject;
+ }
+ }
+
+ public ISymUnmanagedSymbolSearchInfo(Debugger.Interop.CorSym.ISymUnmanagedSymbolSearchInfo wrappedObject)
+ {
+ this.wrappedObject = wrappedObject;
+ ResourceManager.TrackCOMObject(wrappedObject, typeof(ISymUnmanagedSymbolSearchInfo));
+ }
+
+ public static ISymUnmanagedSymbolSearchInfo Wrap(Debugger.Interop.CorSym.ISymUnmanagedSymbolSearchInfo objectToWrap)
+ {
+ return new ISymUnmanagedSymbolSearchInfo(objectToWrap);
+ }
+
+ ~ISymUnmanagedSymbolSearchInfo()
+ {
+ object o = wrappedObject;
+ wrappedObject = null;
+ ResourceManager.ReleaseCOMObject(o, typeof(ISymUnmanagedSymbolSearchInfo));
+ }
+
+ public bool Is() where T: class
+ {
+ try {
+ CastTo();
+ return true;
+ } catch {
+ return false;
+ }
+ }
+
+ public T As() where T: class
+ {
+ try {
+ return CastTo();
+ } catch {
+ return null;
+ }
+ }
+
+ public T CastTo() where T: class
+ {
+ return (T)Activator.CreateInstance(typeof(T), this.WrappedObject);
+ }
+
+ public static bool operator ==(ISymUnmanagedSymbolSearchInfo o1, ISymUnmanagedSymbolSearchInfo o2)
+ {
+ return ((object)o1 == null && (object)o2 == null) ||
+ ((object)o1 != null && (object)o2 != null && o1.WrappedObject == o2.WrappedObject);
+ }
+
+ public static bool operator !=(ISymUnmanagedSymbolSearchInfo o1, ISymUnmanagedSymbolSearchInfo o2)
+ {
+ return !(o1 == o2);
+ }
+
+ public override int GetHashCode()
+ {
+ return base.GetHashCode();
+ }
+
+ public override bool Equals(object o)
+ {
+ ISymUnmanagedSymbolSearchInfo casted = o as ISymUnmanagedSymbolSearchInfo;
+ return (casted != null) && (casted.WrappedObject == wrappedObject);
+ }
+
+
+ public uint SearchPathLength
+ {
+ get
+ {
+ uint pcchPath;
+ this.WrappedObject.GetSearchPathLength(out pcchPath);
+ return pcchPath;
+ }
+ }
+
+ public void GetSearchPath(uint cchPath, out uint pcchPath, System.IntPtr szPath)
+ {
+ this.WrappedObject.GetSearchPath(cchPath, out pcchPath, szPath);
+ }
+
+ public int HRESULT
+ {
+ get
+ {
+ int phr;
+ this.WrappedObject.GetHRESULT(out phr);
+ return phr;
+ }
+ }
+ }
+}
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/ISymUnmanagedVariable.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/ISymUnmanagedVariable.cs
new file mode 100644
index 0000000000..1c94992e79
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/ISymUnmanagedVariable.cs
@@ -0,0 +1,157 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Wrappers.CorSym
+{
+ using System;
+
+
+ public class ISymUnmanagedVariable
+ {
+
+ private Debugger.Interop.CorSym.ISymUnmanagedVariable wrappedObject;
+
+ internal Debugger.Interop.CorSym.ISymUnmanagedVariable WrappedObject
+ {
+ get
+ {
+ return this.wrappedObject;
+ }
+ }
+
+ public ISymUnmanagedVariable(Debugger.Interop.CorSym.ISymUnmanagedVariable wrappedObject)
+ {
+ this.wrappedObject = wrappedObject;
+ ResourceManager.TrackCOMObject(wrappedObject, typeof(ISymUnmanagedVariable));
+ }
+
+ public static ISymUnmanagedVariable Wrap(Debugger.Interop.CorSym.ISymUnmanagedVariable objectToWrap)
+ {
+ return new ISymUnmanagedVariable(objectToWrap);
+ }
+
+ ~ISymUnmanagedVariable()
+ {
+ object o = wrappedObject;
+ wrappedObject = null;
+ ResourceManager.ReleaseCOMObject(o, typeof(ISymUnmanagedVariable));
+ }
+
+ public bool Is() where T: class
+ {
+ try {
+ CastTo();
+ return true;
+ } catch {
+ return false;
+ }
+ }
+
+ public T As() where T: class
+ {
+ try {
+ return CastTo();
+ } catch {
+ return null;
+ }
+ }
+
+ public T CastTo() where T: class
+ {
+ return (T)Activator.CreateInstance(typeof(T), this.WrappedObject);
+ }
+
+ public static bool operator ==(ISymUnmanagedVariable o1, ISymUnmanagedVariable o2)
+ {
+ return ((object)o1 == null && (object)o2 == null) ||
+ ((object)o1 != null && (object)o2 != null && o1.WrappedObject == o2.WrappedObject);
+ }
+
+ public static bool operator !=(ISymUnmanagedVariable o1, ISymUnmanagedVariable o2)
+ {
+ return !(o1 == o2);
+ }
+
+ public override int GetHashCode()
+ {
+ return base.GetHashCode();
+ }
+
+ public override bool Equals(object o)
+ {
+ ISymUnmanagedVariable casted = o as ISymUnmanagedVariable;
+ return (casted != null) && (casted.WrappedObject == wrappedObject);
+ }
+
+
+ public void GetName(uint cchName, out uint pcchName, System.IntPtr szName)
+ {
+ this.WrappedObject.GetName(cchName, out pcchName, szName);
+ }
+
+ public uint Attributes
+ {
+ get
+ {
+ return this.WrappedObject.GetAttributes();
+ }
+ }
+
+ public void GetSignature(uint cSig, out uint pcSig, System.IntPtr sig)
+ {
+ this.WrappedObject.GetSignature(cSig, out pcSig, sig);
+ }
+
+ public uint AddressKind
+ {
+ get
+ {
+ return this.WrappedObject.GetAddressKind();
+ }
+ }
+
+ public uint AddressField1
+ {
+ get
+ {
+ return this.WrappedObject.GetAddressField1();
+ }
+ }
+
+ public uint AddressField2
+ {
+ get
+ {
+ return this.WrappedObject.GetAddressField2();
+ }
+ }
+
+ public uint AddressField3
+ {
+ get
+ {
+ return this.WrappedObject.GetAddressField3();
+ }
+ }
+
+ public uint StartOffset
+ {
+ get
+ {
+ return this.WrappedObject.GetStartOffset();
+ }
+ }
+
+ public uint EndOffset
+ {
+ get
+ {
+ return this.WrappedObject.GetEndOffset();
+ }
+ }
+ }
+}
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/ISymUnmanagedWriter.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/ISymUnmanagedWriter.cs
new file mode 100644
index 0000000000..91e11072d1
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/ISymUnmanagedWriter.cs
@@ -0,0 +1,211 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Wrappers.CorSym
+{
+ using System;
+
+
+ public class ISymUnmanagedWriter
+ {
+
+ private Debugger.Interop.CorSym.ISymUnmanagedWriter wrappedObject;
+
+ internal Debugger.Interop.CorSym.ISymUnmanagedWriter WrappedObject
+ {
+ get
+ {
+ return this.wrappedObject;
+ }
+ }
+
+ public ISymUnmanagedWriter(Debugger.Interop.CorSym.ISymUnmanagedWriter wrappedObject)
+ {
+ this.wrappedObject = wrappedObject;
+ ResourceManager.TrackCOMObject(wrappedObject, typeof(ISymUnmanagedWriter));
+ }
+
+ public static ISymUnmanagedWriter Wrap(Debugger.Interop.CorSym.ISymUnmanagedWriter objectToWrap)
+ {
+ return new ISymUnmanagedWriter(objectToWrap);
+ }
+
+ ~ISymUnmanagedWriter()
+ {
+ object o = wrappedObject;
+ wrappedObject = null;
+ ResourceManager.ReleaseCOMObject(o, typeof(ISymUnmanagedWriter));
+ }
+
+ public bool Is() where T: class
+ {
+ try {
+ CastTo();
+ return true;
+ } catch {
+ return false;
+ }
+ }
+
+ public T As() where T: class
+ {
+ try {
+ return CastTo();
+ } catch {
+ return null;
+ }
+ }
+
+ public T CastTo() where T: class
+ {
+ return (T)Activator.CreateInstance(typeof(T), this.WrappedObject);
+ }
+
+ public static bool operator ==(ISymUnmanagedWriter o1, ISymUnmanagedWriter o2)
+ {
+ return ((object)o1 == null && (object)o2 == null) ||
+ ((object)o1 != null && (object)o2 != null && o1.WrappedObject == o2.WrappedObject);
+ }
+
+ public static bool operator !=(ISymUnmanagedWriter o1, ISymUnmanagedWriter o2)
+ {
+ return !(o1 == o2);
+ }
+
+ public override int GetHashCode()
+ {
+ return base.GetHashCode();
+ }
+
+ public override bool Equals(object o)
+ {
+ ISymUnmanagedWriter casted = o as ISymUnmanagedWriter;
+ return (casted != null) && (casted.WrappedObject == wrappedObject);
+ }
+
+
+ public ISymUnmanagedDocumentWriter DefineDocument(ref ushort url, ref System.Guid language, ref System.Guid languageVendor, ref System.Guid documentType)
+ {
+ return ISymUnmanagedDocumentWriter.Wrap(this.WrappedObject.DefineDocument(ref url, ref language, ref languageVendor, ref documentType));
+ }
+
+ public void SetUserEntryPoint(uint entryMethod)
+ {
+ this.WrappedObject.SetUserEntryPoint(entryMethod);
+ }
+
+ public void OpenMethod(uint method)
+ {
+ this.WrappedObject.OpenMethod(method);
+ }
+
+ public void CloseMethod()
+ {
+ this.WrappedObject.CloseMethod();
+ }
+
+ public uint OpenScope(uint startOffset)
+ {
+ return this.WrappedObject.OpenScope(startOffset);
+ }
+
+ public void CloseScope(uint endOffset)
+ {
+ this.WrappedObject.CloseScope(endOffset);
+ }
+
+ public void SetScopeRange(uint scopeID, uint startOffset, uint endOffset)
+ {
+ this.WrappedObject.SetScopeRange(scopeID, startOffset, endOffset);
+ }
+
+ public void DefineLocalVariable(ref ushort name, uint attributes, uint cSig, ref byte signature, uint addrKind, uint addr1, uint addr2, uint addr3, uint startOffset, uint endOffset)
+ {
+ this.WrappedObject.DefineLocalVariable(ref name, attributes, cSig, ref signature, addrKind, addr1, addr2, addr3, startOffset, endOffset);
+ }
+
+ public void DefineParameter(ref ushort name, uint attributes, uint sequence, uint addrKind, uint addr1, uint addr2, uint addr3)
+ {
+ this.WrappedObject.DefineParameter(ref name, attributes, sequence, addrKind, addr1, addr2, addr3);
+ }
+
+ public void DefineField(uint parent, ref ushort name, uint attributes, uint cSig, ref byte signature, uint addrKind, uint addr1, uint addr2, uint addr3)
+ {
+ this.WrappedObject.DefineField(parent, ref name, attributes, cSig, ref signature, addrKind, addr1, addr2, addr3);
+ }
+
+ public void DefineGlobalVariable(ref ushort name, uint attributes, uint cSig, ref byte signature, uint addrKind, uint addr1, uint addr2, uint addr3)
+ {
+ this.WrappedObject.DefineGlobalVariable(ref name, attributes, cSig, ref signature, addrKind, addr1, addr2, addr3);
+ }
+
+ public void Close()
+ {
+ this.WrappedObject.Close();
+ }
+
+ public void SetSymAttribute(uint parent, ref ushort name, uint cData, ref byte data)
+ {
+ this.WrappedObject.SetSymAttribute(parent, ref name, cData, ref data);
+ }
+
+ public void OpenNamespace(ref ushort name)
+ {
+ this.WrappedObject.OpenNamespace(ref name);
+ }
+
+ public void CloseNamespace()
+ {
+ this.WrappedObject.CloseNamespace();
+ }
+
+ public void UsingNamespace(ref ushort fullName)
+ {
+ this.WrappedObject.UsingNamespace(ref fullName);
+ }
+
+ public void SetMethodSourceRange(ISymUnmanagedDocumentWriter startDoc, uint startLine, uint startColumn, ISymUnmanagedDocumentWriter endDoc, uint endLine, uint endColumn)
+ {
+ this.WrappedObject.SetMethodSourceRange(startDoc.WrappedObject, startLine, startColumn, endDoc.WrappedObject, endLine, endColumn);
+ }
+
+ public void Initialize(object emitter, ref ushort filename, IStream pIStream, int fFullBuild)
+ {
+ this.WrappedObject.Initialize(emitter, ref filename, pIStream.WrappedObject, fFullBuild);
+ }
+
+ public void GetDebugInfo(ref uint pIDD, uint cData, out uint pcData, System.IntPtr data)
+ {
+ this.WrappedObject.GetDebugInfo(ref pIDD, cData, out pcData, data);
+ }
+
+ public void DefineSequencePoints(ISymUnmanagedDocumentWriter document, uint spCount, ref uint offsets, ref uint lines, ref uint columns, ref uint endLines, ref uint endColumns)
+ {
+ this.WrappedObject.DefineSequencePoints(document.WrappedObject, spCount, ref offsets, ref lines, ref columns, ref endLines, ref endColumns);
+ }
+
+ public void RemapToken(uint oldToken, uint newToken)
+ {
+ this.WrappedObject.RemapToken(oldToken, newToken);
+ }
+
+ public void Initialize2(object emitter, ref ushort tempfilename, IStream pIStream, int fFullBuild, ref ushort finalfilename)
+ {
+ this.WrappedObject.Initialize2(emitter, ref tempfilename, pIStream.WrappedObject, fFullBuild, ref finalfilename);
+ }
+
+ public void DefineConstant(ref ushort name, object value, uint cSig, ref byte signature)
+ {
+ this.WrappedObject.DefineConstant(ref name, value, cSig, ref signature);
+ }
+
+ public void Abort()
+ {
+ this.WrappedObject.Abort();
+ }
+ }
+}
diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/ISymUnmanagedWriter2.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/ISymUnmanagedWriter2.cs
new file mode 100644
index 0000000000..5dd38b3b5a
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Wrappers/CorSym/ISymUnmanagedWriter2.cs
@@ -0,0 +1,226 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+namespace Debugger.Wrappers.CorSym
+{
+ using System;
+
+
+ public class ISymUnmanagedWriter2
+ {
+
+ private Debugger.Interop.CorSym.ISymUnmanagedWriter2 wrappedObject;
+
+ internal Debugger.Interop.CorSym.ISymUnmanagedWriter2 WrappedObject
+ {
+ get
+ {
+ return this.wrappedObject;
+ }
+ }
+
+ public ISymUnmanagedWriter2(Debugger.Interop.CorSym.ISymUnmanagedWriter2 wrappedObject)
+ {
+ this.wrappedObject = wrappedObject;
+ ResourceManager.TrackCOMObject(wrappedObject, typeof(ISymUnmanagedWriter2));
+ }
+
+ public static ISymUnmanagedWriter2 Wrap(Debugger.Interop.CorSym.ISymUnmanagedWriter2 objectToWrap)
+ {
+ return new ISymUnmanagedWriter2(objectToWrap);
+ }
+
+ ~ISymUnmanagedWriter2()
+ {
+ object o = wrappedObject;
+ wrappedObject = null;
+ ResourceManager.ReleaseCOMObject(o, typeof(ISymUnmanagedWriter2));
+ }
+
+ public bool Is() where T: class
+ {
+ try {
+ CastTo();
+ return true;
+ } catch {
+ return false;
+ }
+ }
+
+ public T As() where T: class
+ {
+ try {
+ return CastTo();
+ } catch {
+ return null;
+ }
+ }
+
+ public T CastTo() where T: class
+ {
+ return (T)Activator.CreateInstance(typeof(T), this.WrappedObject);
+ }
+
+ public static bool operator ==(ISymUnmanagedWriter2 o1, ISymUnmanagedWriter2 o2)
+ {
+ return ((object)o1 == null && (object)o2 == null) ||
+ ((object)o1 != null && (object)o2 != null && o1.WrappedObject == o2.WrappedObject);
+ }
+
+ public static bool operator !=(ISymUnmanagedWriter2 o1, ISymUnmanagedWriter2 o2)
+ {
+ return !(o1 == o2);
+ }
+
+ public override int GetHashCode()
+ {
+ return base.GetHashCode();
+ }
+
+ public override bool Equals(object o)
+ {
+ ISymUnmanagedWriter2 casted = o as ISymUnmanagedWriter2;
+ return (casted != null) && (casted.WrappedObject == wrappedObject);
+ }
+
+
+ public ISymUnmanagedDocumentWriter DefineDocument(ref ushort url, ref System.Guid language, ref System.Guid languageVendor, ref System.Guid documentType)
+ {
+ return ISymUnmanagedDocumentWriter.Wrap(this.WrappedObject.DefineDocument(ref url, ref language, ref languageVendor, ref documentType));
+ }
+
+ public void SetUserEntryPoint(uint entryMethod)
+ {
+ this.WrappedObject.SetUserEntryPoint(entryMethod);
+ }
+
+ public void OpenMethod(uint method)
+ {
+ this.WrappedObject.OpenMethod(method);
+ }
+
+ public void CloseMethod()
+ {
+ this.WrappedObject.CloseMethod();
+ }
+
+ public uint OpenScope(uint startOffset)
+ {
+ return this.WrappedObject.OpenScope(startOffset);
+ }
+
+ public void CloseScope(uint endOffset)
+ {
+ this.WrappedObject.CloseScope(endOffset);
+ }
+
+ public void SetScopeRange(uint scopeID, uint startOffset, uint endOffset)
+ {
+ this.WrappedObject.SetScopeRange(scopeID, startOffset, endOffset);
+ }
+
+ public void DefineLocalVariable(ref ushort name, uint attributes, uint cSig, ref byte signature, uint addrKind, uint addr1, uint addr2, uint addr3, uint startOffset, uint endOffset)
+ {
+ this.WrappedObject.DefineLocalVariable(ref name, attributes, cSig, ref signature, addrKind, addr1, addr2, addr3, startOffset, endOffset);
+ }
+
+ public void DefineParameter(ref ushort name, uint attributes, uint sequence, uint addrKind, uint addr1, uint addr2, uint addr3)
+ {
+ this.WrappedObject.DefineParameter(ref name, attributes, sequence, addrKind, addr1, addr2, addr3);
+ }
+
+ public void DefineField(uint parent, ref ushort name, uint attributes, uint cSig, ref byte signature, uint addrKind, uint addr1, uint addr2, uint addr3)
+ {
+ this.WrappedObject.DefineField(parent, ref name, attributes, cSig, ref signature, addrKind, addr1, addr2, addr3);
+ }
+
+ public void DefineGlobalVariable(ref ushort name, uint attributes, uint cSig, ref byte signature, uint addrKind, uint addr1, uint addr2, uint addr3)
+ {
+ this.WrappedObject.DefineGlobalVariable(ref name, attributes, cSig, ref signature, addrKind, addr1, addr2, addr3);
+ }
+
+ public void Close()
+ {
+ this.WrappedObject.Close();
+ }
+
+ public void SetSymAttribute(uint parent, ref ushort name, uint cData, ref byte data)
+ {
+ this.WrappedObject.SetSymAttribute(parent, ref name, cData, ref data);
+ }
+
+ public void OpenNamespace(ref ushort name)
+ {
+ this.WrappedObject.OpenNamespace(ref name);
+ }
+
+ public void CloseNamespace()
+ {
+ this.WrappedObject.CloseNamespace();
+ }
+
+ public void UsingNamespace(ref ushort fullName)
+ {
+ this.WrappedObject.UsingNamespace(ref fullName);
+ }
+
+ public void SetMethodSourceRange(ISymUnmanagedDocumentWriter startDoc, uint startLine, uint startColumn, ISymUnmanagedDocumentWriter endDoc, uint endLine, uint endColumn)
+ {
+ this.WrappedObject.SetMethodSourceRange(startDoc.WrappedObject, startLine, startColumn, endDoc.WrappedObject, endLine, endColumn);
+ }
+
+ public void Initialize(object emitter, ref ushort filename, IStream pIStream, int fFullBuild)
+ {
+ this.WrappedObject.Initialize(emitter, ref filename, pIStream.WrappedObject, fFullBuild);
+ }
+
+ public void GetDebugInfo(ref uint pIDD, uint cData, out uint pcData, System.IntPtr data)
+ {
+ this.WrappedObject.GetDebugInfo(ref pIDD, cData, out pcData, data);
+ }
+
+ public void DefineSequencePoints(ISymUnmanagedDocumentWriter document, uint spCount, ref uint offsets, ref uint lines, ref uint columns, ref uint endLines, ref uint endColumns)
+ {
+ this.WrappedObject.DefineSequencePoints(document.WrappedObject, spCount, ref offsets, ref lines, ref columns, ref endLines, ref endColumns);
+ }
+
+ public void RemapToken(uint oldToken, uint newToken)
+ {
+ this.WrappedObject.RemapToken(oldToken, newToken);
+ }
+
+ public void Initialize2(object emitter, ref ushort tempfilename, IStream pIStream, int fFullBuild, ref ushort finalfilename)
+ {
+ this.WrappedObject.Initialize2(emitter, ref tempfilename, pIStream.WrappedObject, fFullBuild, ref finalfilename);
+ }
+
+ public void DefineConstant(ref ushort name, object value, uint cSig, ref byte signature)
+ {
+ this.WrappedObject.DefineConstant(ref name, value, cSig, ref signature);
+ }
+
+ public void Abort()
+ {
+ this.WrappedObject.Abort();
+ }
+
+ public void DefineLocalVariable2(ref ushort name, uint attributes, uint sigToken, uint addrKind, uint addr1, uint addr2, uint addr3, uint startOffset, uint endOffset)
+ {
+ this.WrappedObject.DefineLocalVariable2(ref name, attributes, sigToken, addrKind, addr1, addr2, addr3, startOffset, endOffset);
+ }
+
+ public void DefineGlobalVariable2(ref ushort name, uint attributes, uint sigToken, uint addrKind, uint addr1, uint addr2, uint addr3)
+ {
+ this.WrappedObject.DefineGlobalVariable2(ref name, attributes, sigToken, addrKind, addr1, addr2, addr3);
+ }
+
+ public void DefineConstant2(ref ushort name, object value, uint sigToken)
+ {
+ this.WrappedObject.DefineConstant2(ref name, value, sigToken);
+ }
+ }
+}
diff --git a/src/Tools/WrapperGenerator/CorDebugGenerator.cs b/src/Tools/WrapperGenerator/Debugger/CorDebugGenerator.cs
similarity index 100%
rename from src/Tools/WrapperGenerator/CorDebugGenerator.cs
rename to src/Tools/WrapperGenerator/Debugger/CorDebugGenerator.cs
diff --git a/src/Tools/WrapperGenerator/Debugger/CorSymGenerator.cs b/src/Tools/WrapperGenerator/Debugger/CorSymGenerator.cs
new file mode 100644
index 0000000000..eca84d4c3a
--- /dev/null
+++ b/src/Tools/WrapperGenerator/Debugger/CorSymGenerator.cs
@@ -0,0 +1,46 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+using System;
+using System.CodeDom;
+using System.CodeDom.Compiler;
+using System.Collections.Generic;
+using System.IO;
+using System.Reflection;
+
+using Microsoft.CSharp;
+
+namespace WrapperGenerator
+{
+ public class CorSymGenerator: CodeGenerator
+ {
+ string namespaceToWrap = "Debugger.Interop.CorSym";
+
+ public CorSymGenerator(Assembly assembly):base(assembly)
+ {
+ wrapperNamespace = "Debugger.Wrappers.CorSym";
+ }
+
+ protected override bool ShouldIncludeType(Type type)
+ {
+ return type.Namespace == namespaceToWrap &&
+ (type.IsClass || type.IsInterface || type.IsEnum);
+ }
+
+ protected override Type GetBaseClass(Type type)
+ {
+// Type[] interfaces = type.GetInterfaces();
+// if (interfaces.Length > 0) {
+// return interfaces[0];
+// }
+// if (type.Name.EndsWith("2")) {
+// return type.Assembly.GetType(type.FullName.Remove(type.FullName.Length - 1));
+// }
+ return null;
+ }
+ }
+}
diff --git a/src/Tools/WrapperGenerator/MainForm.cs b/src/Tools/WrapperGenerator/MainForm.cs
index 09f242fba1..8c4471ad2c 100644
--- a/src/Tools/WrapperGenerator/MainForm.cs
+++ b/src/Tools/WrapperGenerator/MainForm.cs
@@ -30,14 +30,17 @@ namespace WrapperGenerator
"\r\n";
//string dllFileName = Assembly.GetExecutingAssembly().Location;
string dllFileName = Path.Combine(Assembly.GetExecutingAssembly().Location, @"..\..\..\..\..\..\AddIns\AddIns\Misc\Debugger\Debugger.Core.dll");
- string saveDirectory = Path.Combine(Assembly.GetExecutingAssembly().Location, @"..\..\..\..\..\..\src\AddIns\Misc\Debugger\Debugger.Core\Project\Src\Wrappers\CorDebug");
+ string saveDirectory = Path.Combine(Assembly.GetExecutingAssembly().Location, @"..\..\..\..\..\..\src\AddIns\Misc\Debugger\Debugger.Core\Project\Src\Wrappers");
public MainForm()
{
InitializeComponent();
- CodeGenerator codeGenerator = new CorDebugGenerator(Assembly.LoadFile(dllFileName));
- textBox1.Text = new FileGenerator(codeGenerator, header).SaveFiles(saveDirectory);
+ CodeGenerator codeGenerator1 = new CorDebugGenerator(Assembly.LoadFile(dllFileName));
+ textBox1.Text = new FileGenerator(codeGenerator1, header).SaveFiles(saveDirectory + @"\CorDebug");
+
+ CodeGenerator codeGenerator2 = new CorSymGenerator(Assembly.LoadFile(dllFileName));
+ textBox1.Text += new FileGenerator(codeGenerator2, header).SaveFiles(saveDirectory + @"\CorSym");
}
[STAThread]
diff --git a/src/Tools/WrapperGenerator/Wrapper.cs b/src/Tools/WrapperGenerator/NotUsed/Wrapper.cs
similarity index 100%
rename from src/Tools/WrapperGenerator/Wrapper.cs
rename to src/Tools/WrapperGenerator/NotUsed/Wrapper.cs
diff --git a/src/Tools/WrapperGenerator/WrapperProxy.cs b/src/Tools/WrapperGenerator/NotUsed/WrapperProxy.cs
similarity index 100%
rename from src/Tools/WrapperGenerator/WrapperProxy.cs
rename to src/Tools/WrapperGenerator/NotUsed/WrapperProxy.cs
diff --git a/src/Tools/WrapperGenerator/WrappingClassAttribute.cs b/src/Tools/WrapperGenerator/NotUsed/WrappingClassAttribute.cs
similarity index 100%
rename from src/Tools/WrapperGenerator/WrappingClassAttribute.cs
rename to src/Tools/WrapperGenerator/NotUsed/WrappingClassAttribute.cs
diff --git a/src/Tools/WrapperGenerator/WrapperGenerator.csproj b/src/Tools/WrapperGenerator/WrapperGenerator.csproj
index 2c4fdf1328..d249d477bf 100644
--- a/src/Tools/WrapperGenerator/WrapperGenerator.csproj
+++ b/src/Tools/WrapperGenerator/WrapperGenerator.csproj
@@ -35,9 +35,13 @@
-
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Tools/WrapperGenerator/WrapperGenerator.sln b/src/Tools/WrapperGenerator/WrapperGenerator.sln
index e88e7a4dbd..abb28510f1 100644
--- a/src/Tools/WrapperGenerator/WrapperGenerator.sln
+++ b/src/Tools/WrapperGenerator/WrapperGenerator.sln
@@ -1,5 +1,5 @@
Microsoft Visual Studio Solution File, Format Version 9.00
-# SharpDevelop 2.0.0.920
+# SharpDevelop 2.0.0.1115
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WrapperGenerator", "WrapperGenerator.csproj", "{7ED425D8-30CA-422C-90DF-1CB901E46DE3}"
EndProject
Global