summaryrefslogtreecommitdiff
path: root/src/mscorlib/src/System/IAppDomain.cs
blob: bd8b8765771c070eefcce45f47402643ece827d0 (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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
// 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.

/*============================================================
**
** Interface:  IAppDomain
** 
** 
**
**
** Purpose: Properties and methods exposed to COM
**
** 
===========================================================*/
namespace System {
    using System.Reflection;
    using System.Runtime.CompilerServices;
    using SecurityManager = System.Security.SecurityManager;
    using System.Security.Permissions;
    using IEvidenceFactory = System.Security.IEvidenceFactory;
#if FEATURE_IMPERSONATION
    using System.Security.Principal;
#endif
    using System.Security.Policy;
    using System.Security;
    using System.Security.Util;
    using System.Collections;
    using System.Text;
    using System.Configuration.Assemblies;
    using System.Threading;
    using System.Runtime.InteropServices;
    using System.Runtime.Remoting;
    using System.Reflection.Emit;
    using CultureInfo = System.Globalization.CultureInfo;
    using System.IO;
    using System.Runtime.Versioning;

    [GuidAttribute("05F696DC-2B29-3663-AD8B-C4389CF2A713")]
    [InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)]
    [CLSCompliant(false)]
[System.Runtime.InteropServices.ComVisible(true)]
    public interface _AppDomain
    {
#if !FEATURE_CORECLR
        void GetTypeInfoCount(out uint pcTInfo);

        void GetTypeInfo(uint iTInfo, uint lcid, IntPtr ppTInfo);

        void GetIDsOfNames([In] ref Guid riid, IntPtr rgszNames, uint cNames, uint lcid, IntPtr rgDispId);

        void Invoke(uint dispIdMember, [In] ref Guid riid, uint lcid, short wFlags, IntPtr pDispParams, IntPtr pVarResult, IntPtr pExcepInfo, IntPtr puArgErr);

        String ToString();

        bool Equals (Object other);

        int GetHashCode ();

        Type GetType ();

#if FEATURE_REMOTING        
        [System.Security.SecurityCritical]  // auto-generated_required
        Object InitializeLifetimeService ();

        [System.Security.SecurityCritical]  // auto-generated_required
        Object GetLifetimeService ();
#endif // FEATURE_REMOTING        

#if FEATURE_CAS_POLICY
        Evidence Evidence { get; }
#endif // FEATURE_CAS_POLICY
        event EventHandler DomainUnload;

        [method:System.Security.SecurityCritical]
        event AssemblyLoadEventHandler AssemblyLoad;

        event EventHandler ProcessExit;

        [method:System.Security.SecurityCritical]
        event ResolveEventHandler TypeResolve;

        [method:System.Security.SecurityCritical]
        event ResolveEventHandler ResourceResolve;

        [method:System.Security.SecurityCritical]
        event ResolveEventHandler AssemblyResolve;

        [method:System.Security.SecurityCritical]
        event UnhandledExceptionEventHandler UnhandledException;

        AssemblyBuilder DefineDynamicAssembly(AssemblyName            name,
                                              AssemblyBuilderAccess   access);

        AssemblyBuilder DefineDynamicAssembly(AssemblyName            name,
                                              AssemblyBuilderAccess   access,
                                              String                  dir);

        AssemblyBuilder DefineDynamicAssembly(AssemblyName            name,
                                              AssemblyBuilderAccess   access,
                                              Evidence                evidence);

        AssemblyBuilder DefineDynamicAssembly(AssemblyName            name,
                                              AssemblyBuilderAccess   access,
                                              PermissionSet           requiredPermissions,
                                              PermissionSet           optionalPermissions,
                                              PermissionSet           refusedPermissions);

        AssemblyBuilder DefineDynamicAssembly(AssemblyName            name,
                                              AssemblyBuilderAccess   access,
                                              String                  dir,
                                              Evidence                evidence);

        AssemblyBuilder DefineDynamicAssembly(AssemblyName            name,
                                              AssemblyBuilderAccess   access,
                                              String                  dir,
                                              PermissionSet           requiredPermissions,
                                              PermissionSet           optionalPermissions,
                                              PermissionSet           refusedPermissions);

        AssemblyBuilder DefineDynamicAssembly(AssemblyName            name,
                                              AssemblyBuilderAccess   access,
                                              Evidence                evidence,
                                              PermissionSet           requiredPermissions,
                                              PermissionSet           optionalPermissions,
                                              PermissionSet           refusedPermissions);

        AssemblyBuilder DefineDynamicAssembly(AssemblyName            name,
                                              AssemblyBuilderAccess   access,
                                              String                  dir,
                                              Evidence                evidence,
                                              PermissionSet           requiredPermissions,
                                              PermissionSet           optionalPermissions,
                                              PermissionSet           refusedPermissions);

        AssemblyBuilder DefineDynamicAssembly(AssemblyName            name,
                                              AssemblyBuilderAccess   access,
                                              String                  dir,
                                              Evidence                evidence,
                                              PermissionSet           requiredPermissions,
                                              PermissionSet           optionalPermissions,
                                              PermissionSet           refusedPermissions,
                                              bool                    isSynchronized);

        ObjectHandle CreateInstance(String assemblyName,
                                    String typeName);

                                         
        ObjectHandle CreateInstanceFrom(String assemblyFile,
                                        String typeName);

                                         
        ObjectHandle CreateInstance(String assemblyName,
                                    String typeName,
                                    Object[] activationAttributes);

        ObjectHandle CreateInstanceFrom(String assemblyFile,
                                        String typeName,
                                        Object[] activationAttributes);

       ObjectHandle CreateInstance(String assemblyName, 
                                   String typeName, 
                                   bool ignoreCase,
                                   BindingFlags bindingAttr, 
                                   Binder binder,
                                   Object[] args,
                                    CultureInfo culture,
                                   Object[] activationAttributes,
                                   Evidence securityAttributes);

       ObjectHandle CreateInstanceFrom(String assemblyFile,
                                       String typeName, 
                                       bool ignoreCase,
                                       BindingFlags bindingAttr, 
                                       Binder binder,
                                        Object[] args,
                                       CultureInfo culture,
                                       Object[] activationAttributes,
                                       Evidence securityAttributes);

        Assembly Load(AssemblyName assemblyRef);

        Assembly Load(String assemblyString);

        Assembly Load(byte[] rawAssembly);

        Assembly Load(byte[] rawAssembly,
                      byte[] rawSymbolStore);

        Assembly Load(byte[] rawAssembly,
                      byte[] rawSymbolStore,
                      Evidence securityEvidence);

        Assembly Load(AssemblyName assemblyRef, 
                      Evidence assemblySecurity);     

        Assembly Load(String assemblyString, 
                      Evidence assemblySecurity);

        int ExecuteAssembly(String assemblyFile, 
                            Evidence assemblySecurity);

        int ExecuteAssembly(String assemblyFile);

        int ExecuteAssembly(String assemblyFile, 
                            Evidence assemblySecurity, 
                            String[] args);

        String FriendlyName
        { get; }
#if FEATURE_FUSION
        String BaseDirectory
        {
            get;
        }

        String RelativeSearchPath
        { get; }

        bool ShadowCopyFiles
        { get; }
#endif
        Assembly[] GetAssemblies();
#if FEATURE_FUSION
        [System.Security.SecurityCritical]  // auto-generated_required
        void AppendPrivatePath(String path);

        [System.Security.SecurityCritical]  // auto-generated_required
        void ClearPrivatePath();

        [System.Security.SecurityCritical]  // auto-generated_required
        void SetShadowCopyPath (String s);

        [System.Security.SecurityCritical]  // auto-generated_required
        void ClearShadowCopyPath ( );

        [System.Security.SecurityCritical]  // auto-generated_required
        void SetCachePath (String s);
#endif //FEATURE_FUSION
        [System.Security.SecurityCritical]  // auto-generated_required
        void SetData(String name, Object data);

        #if FEATURE_CORECLR
        [System.Security.SecurityCritical] // auto-generated
        #endif
        Object GetData(string name);

#if FEATURE_CAS_POLICY        
        [System.Security.SecurityCritical]  // auto-generated_required
        void SetAppDomainPolicy(PolicyLevel domainPolicy);

#if FEATURE_IMPERSONATION
        void SetThreadPrincipal(IPrincipal principal);
#endif // FEATURE_IMPERSONATION

        void SetPrincipalPolicy(PrincipalPolicy policy);
#endif

#if FEATURE_REMOTING
        void DoCallBack(CrossAppDomainDelegate theDelegate);
#endif

        String DynamicDirectory
        { get; }
#endif
    }
}