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