summaryrefslogtreecommitdiff
path: root/src/mscorlib/src/System/Diagnostics/SymbolStore/ISymBinder.cs
blob: 1ce870f9837c7d791fa8d9db2fb5c32a652747f1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.


/*============================================================
**
**
**
** Represents a symbol binder for managed code.
**
** 
===========================================================*/
namespace System.Diagnostics.SymbolStore {
    
    using System;
    using System.Text;
    using System.Runtime.InteropServices;
    
    // Interface does not need to be marked with the serializable attribute
[System.Runtime.InteropServices.ComVisible(true)]
    public interface ISymbolBinder
    {
        // The importer parameter should be an IntPtr, not an int. This interface can not be modified without
        // a breaking change, and so ISymbolBinderEx.GetReader() has been added with the correct marshalling layout.
        [Obsolete("The recommended alternative is ISymbolBinder1.GetReader. ISymbolBinder1.GetReader takes the importer interface pointer as an IntPtr instead of an Int32, and thus works on both 32-bit and 64-bit architectures. http://go.microsoft.com/fwlink/?linkid=14202=14202")]
        ISymbolReader GetReader(int importer, String filename,
                                String searchPath);
    }

    // This interface has a revised ISymbolBinder.GetReader() with the proper signature.
    // It is not called ISymbolBinder2 because it maps to the IUnmanagedSymbolBinder interfaces, and 
    // does not wrap the IUnmanagedSymbolBinder2 interfaces declared in CorSym.idl.
[System.Runtime.InteropServices.ComVisible(true)]
    public interface ISymbolBinder1
    {
    
        ISymbolReader GetReader(IntPtr importer, String filename,
                                String searchPath);
    }

}