| File: Interop\IClrMetaHost.cs | Web Access |
| Project: src\roslyn\src\Compilers\Core\Portable\Microsoft.CodeAnalysis.csproj (Microsoft.CodeAnalysis) |
// 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. #nullable disable using System; using System.Runtime.InteropServices; using System.Security; using System.Text; #pragma warning disable CS0436 // Type conflicts with imported type: SuppressUnmanagedCodeSecurity namespace Microsoft.CodeAnalysis.Interop { [ComImport, InterfaceType(ComInterfaceType.InterfaceIsIUnknown), Guid("D332DB9E-B9B3-4125-8207-A14884F53216"), SuppressUnmanagedCodeSecurity] internal interface IClrMetaHost { [return: MarshalAs(UnmanagedType.Interface)] object GetRuntime( [In, MarshalAs(UnmanagedType.LPWStr)] string version, [In, MarshalAs(UnmanagedType.LPStruct)] Guid interfaceId); [PreserveSig] int GetVersionFromFile( [In, MarshalAs(UnmanagedType.LPWStr)] string filePath, [Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder buffer, [In, Out, MarshalAs(UnmanagedType.U4)] ref int bufferLength); [return: MarshalAs(UnmanagedType.Interface)] object EnumerateInstalledRuntimes(); [return: MarshalAs(UnmanagedType.Interface)] object EnumerateLoadedRuntimes( [In] IntPtr processHandle); // Placeholder for RequestRuntimeLoadedNotification [PreserveSig] int Reserved01( [In] IntPtr reserved1); [return: MarshalAs(UnmanagedType.Interface)] object QueryLegacyV2RuntimeBinding( [In, MarshalAs(UnmanagedType.LPStruct)] Guid interfaceId); void ExitProcess( [In, MarshalAs(UnmanagedType.U4)] int exitCode); } }