File: ProjectSystemShim\Interop\ICSharpProjectRoot.cs
Web Access
Project: src\src\VisualStudio\CSharp\Impl\Microsoft.VisualStudio.LanguageServices.CSharp_umgxp3ty_wpftmp.csproj (Microsoft.VisualStudio.LanguageServices.CSharp)
// 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
 
// <auto-generated/>
 
using System;
using System.Runtime.InteropServices;
using Microsoft.VisualStudio.Shell.Interop;
 
namespace Microsoft.VisualStudio.LanguageServices.CSharp.ProjectSystemShim.Interop
{
    [ComImport]
    [InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)]
    [Guid(Guids.CSharpProjectRootIdString)]
    internal interface ICSharpProjectRoot
    {
        // Sets the site for this project object.
        void SetProjectSite(ICSharpProjectSite site);
 
        // Get the site object for this project (any interface; IID_ICSharpProjectSite is
        // guaranteed)
        [return: MarshalAs(UnmanagedType.IUnknown)]
        object GetProjectSite([In] ref Guid riid);
 
        // Returns the path containing the project file.
        [return: MarshalAs(UnmanagedType.BStr)]
        string GetProjectLocation();
 
        // Returns the full path name of the project file, or some other entity which is guaranteed
        // to be unique across all open projects.
        [return: MarshalAs(UnmanagedType.BStr)]
        string GetFullProjectName();
 
        // Determines whether the given file is contained in this project
        [PreserveSig]
        int BelongsToProject([MarshalAs(UnmanagedType.LPWStr)] string pszFileName);
 
        // Returns the name of the active configuration
        [return: MarshalAs(UnmanagedType.BStr)]
        string GetActiveConfigurationName();
 
        // Constructs a suitable name for a per-project per-configuration cache file
        [return: MarshalAs(UnmanagedType.BStr)]
        string BuildPerConfigCacheFileName();
 
        // Configure the given compiler and input set objects based on all current
        // settings of the project, including configuration (debug/retail/goo, etc.)
        void ConfigureCompiler(
            [MarshalAs(UnmanagedType.Interface)] ICSCompiler compiler,
            [MarshalAs(UnmanagedType.Interface)] ICSInputSet inputSet,
            bool addSources);
 
        // Determines whether the project can create a file code model object for the given file
        bool CanCreateFileCodeModel([MarshalAs(UnmanagedType.LPWStr)] string pszFile);
 
        // Create a file code model object for the given file
        [return: MarshalAs(UnmanagedType.IUnknown)]
        object CreateFileCodeModel([MarshalAs(UnmanagedType.LPWStr)] string pszFile, [In] ref Guid riid);
 
        // Get the VS hierarchy/item ID for the given file
        [PreserveSig]
        int GetHierarchyAndItemID(
            [MarshalAs(UnmanagedType.LPWStr)] string pszFile,
            [MarshalAs(UnmanagedType.Interface)] out IVsHierarchy ppHier,
            out uint pItemID);
 
        // Get the VS hierarchy/item ID for the given file, optionally for files that are not in
        // project
        void GetHierarchyAndItemIDOptionallyInProject(
            [MarshalAs(UnmanagedType.LPWStr)] string pszFile,
            [MarshalAs(UnmanagedType.Interface)] out IVsHierarchy ppHier,
            out uint pItemID,
            bool mustBeInProject);
    }
}