1 // Licensed under the Apache License, Version 2.0
2 // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
3 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
4 // All files in the project carrying such notice may not be copied, modified, or distributed
5 // except according to those terms
6 //! Common Language Runtime Debugging Symbol Reader/Writer/Binder Interfaces
7 use shared::basetsd::ULONG32;
8 use um::objidlbase::IStream;
9 use um::unknwnbase::{IUnknown, IUnknownVtbl};
10 use um::winnt::{HRESULT, WCHAR};
11 DEFINE_GUID!{CorSym_LanguageType_C,
12     0x63a08714, 0xfc37, 0x11d2, 0x90, 0x4c, 0x0, 0xc0, 0x4f, 0xa3, 0x02, 0xa1}
13 DEFINE_GUID!{CorSym_LanguageType_CPlusPlus,
14     0x3a12d0b7, 0xc26c, 0x11d0, 0xb4, 0x42, 0x0, 0xa0, 0x24, 0x4a, 0x1d, 0xd2}
15 DEFINE_GUID!{CorSym_LanguageType_CSharp,
16     0x3f5162f8, 0x07c6, 0x11d3, 0x90, 0x53, 0x0, 0xc0, 0x4f, 0xa3, 0x02, 0xa1}
17 DEFINE_GUID!{CorSym_LanguageType_Basic,
18     0x3a12d0b8, 0xc26c, 0x11d0, 0xb4, 0x42, 0x0, 0xa0, 0x24, 0x4a, 0x1d, 0xd2}
19 DEFINE_GUID!{CorSym_LanguageType_Java,
20     0x3a12d0b4, 0xc26c, 0x11d0, 0xb4, 0x42, 0x0, 0xa0, 0x24, 0x4a, 0x1d, 0xd2}
21 DEFINE_GUID!{CorSym_LanguageType_Cobol,
22     0xaf046cd1, 0xd0e1, 0x11d2, 0x97, 0x7c, 0x0, 0xa0, 0xc9, 0xb4, 0xd5, 0xc}
23 DEFINE_GUID!{CorSym_LanguageType_Pascal,
24     0xaf046cd2, 0xd0e1, 0x11d2, 0x97, 0x7c, 0x0, 0xa0, 0xc9, 0xb4, 0xd5, 0xc}
25 DEFINE_GUID!{CorSym_LanguageType_ILAssembly,
26     0xaf046cd3, 0xd0e1, 0x11d2, 0x97, 0x7c, 0x0, 0xa0, 0xc9, 0xb4, 0xd5, 0xc}
27 DEFINE_GUID!{CorSym_LanguageType_JScript,
28     0x3a12d0b6, 0xc26c, 0x11d0, 0xb4, 0x42, 0x00, 0xa0, 0x24, 0x4a, 0x1d, 0xd2}
29 DEFINE_GUID!{CorSym_LanguageType_SMC,
30     0xd9b9f7b, 0x6611, 0x11d3, 0xbd, 0x2a, 0x0, 0x0, 0xf8, 0x8, 0x49, 0xbd}
31 DEFINE_GUID!{CorSym_LanguageType_MCPlusPlus,
32     0x4b35fde8, 0x07c6, 0x11d3, 0x90, 0x53, 0x0, 0xc0, 0x4f, 0xa3, 0x02, 0xa1}
33 DEFINE_GUID!{CorSym_LanguageVendor_Microsoft,
34     0x994b45c4, 0xe6e9, 0x11d2, 0x90, 0x3f, 0x00, 0xc0, 0x4f, 0xa3, 0x02, 0xa1}
35 DEFINE_GUID!{CorSym_DocumentType_Text,
36     0x5a869d0b, 0x6611, 0x11d3, 0xbd, 0x2a, 0x0, 0x0, 0xf8, 0x8, 0x49, 0xbd}
37 DEFINE_GUID!{CorSym_DocumentType_MC,
38     0xeb40cb65, 0x3c1f, 0x4352, 0x9d, 0x7b, 0xba, 0xf, 0xc4, 0x7a, 0x9d, 0x77}
39 DEFINE_GUID!{CorSym_SourceHash_MD5,
40     0x406ea660, 0x64cf, 0x4c82, 0xb6, 0xf0, 0x42, 0xd4, 0x81, 0x72, 0xa7, 0x99}
41 DEFINE_GUID!{CorSym_SourceHash_SHA1,
42     0xff1816ec, 0xaa5e, 0x4d10, 0x87, 0xf7, 0x6f, 0x49, 0x63, 0x83, 0x34, 0x60}
43 ENUM!{enum CorSymAddrKind {
44     ADDR_IL_OFFSET = 1,
45     ADDR_NATIVE_RVA = 2,
46     ADDR_NATIVE_REGISTER = 3,
47     ADDR_NATIVE_REGREL = 4,
48     ADDR_NATIVE_OFFSET = 5,
49     ADDR_NATIVE_REGREG = 6,
50     ADDR_NATIVE_REGSTK = 7,
51     ADDR_NATIVE_STKREG = 8,
52     ADDR_BITFIELD = 9,
53     ADDR_NATIVE_ISECTOFFSET = 10,
54 }}
55 ENUM!{enum CorSymVarFlag {
56     VAR_IS_COMP_GEN = 1,
57 }}
58 RIDL!{#[uuid(0xaa544d42, 0x28cb, 0x11d3, 0xbd, 0x22, 0x00, 0x00, 0xf8, 0x08, 0x49, 0xbd)]
59 interface ISymUnmanagedBinder(ISymUnmanagedBinderVtbl): IUnknown(IUnknownVtbl) {
60     fn GetReaderForFile(
61         importer: *mut IUnknown,
62         fileName: *const WCHAR,
63         searchPath: *const WCHAR,
64         pRetVal: *mut *mut ISymUnmanagedReader,
65     ) -> HRESULT,
66     fn GetReaderFromStream(
67         importer: *mut IUnknown,
68         pstream: *mut IStream,
69         pRetVal: *mut *mut ISymUnmanagedReader,
70     ) -> HRESULT,
71 }}
72 ENUM!{enum CorSymSearchPolicyAttributes {
73     AllowRegistryAccess = 0x1,
74     AllowSymbolServerAccess = 0x2,
75     AllowOriginalPathAccess = 0x4,
76     AllowReferencePathAccess = 0x8,
77 }}
78 RIDL!{#[uuid(0xaccee350, 0x89af, 0x4ccb, 0x8b, 0x40, 0x1c, 0x2c, 0x4c, 0x6f, 0x94, 0x34)]
79 interface ISymUnmanagedBinder2(ISymUnmanagedBinder2Vtbl):
80     ISymUnmanagedBinder(ISymUnmanagedBinderVtbl) {
81     fn GetReaderForFile2(
82         importer: *mut IUnknown,
83         fileName: *const WCHAR,
84         searchPath: *const WCHAR,
85         searchPolicy: ULONG32,
86         pRetVal: *mut *mut ISymUnmanagedReader,
87     ) -> HRESULT,
88 }}
89 pub enum ISymUnmanagedReader {} // TODO
90