/Mono.Cecil/symbols/pdb/Mono.Cecil.Pdb/ISymUnmanagedWriter2.cs

http://github.com/icsharpcode/ILSpy · C# · 103 lines · 68 code · 8 blank · 27 comment · 0 complexity · 31ba03213081f444aed591641f559c75 MD5 · raw file

  1. //
  2. // ISymUnmanagedWriter2.cs
  3. //
  4. // Author:
  5. // Juerg Billeter (j@bitron.ch)
  6. //
  7. // (C) 2008 Juerg Billeter
  8. //
  9. // Permission is hereby granted, free of charge, to any person obtaining
  10. // a copy of this software and associated documentation files (the
  11. // "Software"), to deal in the Software without restriction, including
  12. // without limitation the rights to use, copy, modify, merge, publish,
  13. // distribute, sublicense, and/or sell copies of the Software, and to
  14. // permit persons to whom the Software is furnished to do so, subject to
  15. // the following conditions:
  16. //
  17. // The above copyright notice and this permission notice shall be
  18. // included in all copies or substantial portions of the Software.
  19. //
  20. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  21. // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  22. // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  23. // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
  24. // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
  25. // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
  26. // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  27. //
  28. using System;
  29. using System.Diagnostics.SymbolStore;
  30. using System.Runtime.InteropServices;
  31. using System.Runtime.InteropServices.ComTypes;
  32. using Mono.Cecil.Cil;
  33. #if !READ_ONLY
  34. namespace Mono.Cecil.Pdb {
  35. [Guid ("0B97726E-9E6D-4f05-9A26-424022093CAA")]
  36. [InterfaceType (ComInterfaceType.InterfaceIsIUnknown)]
  37. [ComImport]
  38. interface ISymUnmanagedWriter2 {
  39. void DefineDocument (
  40. [In, MarshalAs (UnmanagedType.LPWStr)] string url,
  41. [In] ref Guid langauge,
  42. [In] ref Guid languageVendor,
  43. [In] ref Guid documentType,
  44. [Out, MarshalAs (UnmanagedType.Interface)] out ISymUnmanagedDocumentWriter pRetVal);
  45. void SetUserEntryPoint ([In] SymbolToken method);
  46. void OpenMethod ([In] SymbolToken method);
  47. void CloseMethod ();
  48. void OpenScope ([In] int startOffset, [Out] out int pRetVal);
  49. void CloseScope ([In] int endOffset);
  50. void SetScopeRange_Placeholder ();
  51. void DefineLocalVariable_Placeholder ();
  52. void DefineParameter_Placeholder ();
  53. void DefineField_Placeholder ();
  54. void DefineGlobalVariable_Placeholder ();
  55. void Close ();
  56. void SetSymAttribute_Placeholder ();
  57. void OpenNamespace ([In, MarshalAs (UnmanagedType.LPWStr)] string name);
  58. void CloseNamespace ();
  59. void UsingNamespace ([In, MarshalAs (UnmanagedType.LPWStr)] string fullName);
  60. void SetMethodSourceRange_Placeholder ();
  61. void Initialize (
  62. [In, MarshalAs (UnmanagedType.IUnknown)] object emitter,
  63. [In, MarshalAs (UnmanagedType.LPWStr)] string filename,
  64. [In] IStream pIStream,
  65. [In] bool fFullBuild);
  66. void GetDebugInfo (
  67. [Out] out ImageDebugDirectory pIDD,
  68. [In] int cData,
  69. [Out] out int pcData,
  70. [In, Out, MarshalAs (UnmanagedType.LPArray, SizeParamIndex = 1)] byte [] data);
  71. void DefineSequencePoints (
  72. [In, MarshalAs (UnmanagedType.Interface)] ISymUnmanagedDocumentWriter document,
  73. [In] int spCount,
  74. [In, MarshalAs (UnmanagedType.LPArray, SizeParamIndex = 1)] int [] offsets,
  75. [In, MarshalAs (UnmanagedType.LPArray, SizeParamIndex = 1)] int [] lines,
  76. [In, MarshalAs (UnmanagedType.LPArray, SizeParamIndex = 1)] int [] columns,
  77. [In, MarshalAs (UnmanagedType.LPArray, SizeParamIndex = 1)] int [] endLines,
  78. [In, MarshalAs (UnmanagedType.LPArray, SizeParamIndex = 1)] int [] endColumns);
  79. void RemapToken_Placeholder ();
  80. void Initialize2_Placeholder ();
  81. void DefineConstant_Placeholder ();
  82. void Abort_Placeholder ();
  83. void DefineLocalVariable2 (
  84. [In, MarshalAs (UnmanagedType.LPWStr)] string name,
  85. [In] int attributes,
  86. [In] SymbolToken sigToken,
  87. [In] int addrKind,
  88. [In] int addr1,
  89. [In] int addr2,
  90. [In] int addr3,
  91. [In] int startOffset,
  92. [In] int endOffset);
  93. }
  94. }
  95. #endif