| File: MS\Internal\Tasks\IVsMSBuildTaskFileManager.cs | Web Access |
| Project: src\wpf\src\Microsoft.DotNet.Wpf\src\PresentationBuildTasks\PresentationBuildTasks.csproj (PresentationBuildTasks) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. //--------------------------------------------------------------------------- // // Description: // Managed declaration for IVsMSBuildTaskFileManager used for // getting HostObject that is implemented by VS project system for // MarkupCompile tasks. // // ***********************IMPORTANT************************** // // The managed side declaration of this interface should match with // the native side declaration which lives in VS.NET project tree. // //--------------------------------------------------------------------------- using System; using System.Runtime.InteropServices; namespace MS.Internal { // <summary> // Internal interface used for Interop in VS.NET hosting scenarios. // VS.NET project system prepares the hostobject instance which implements // this interface, The markupcompiler task wants to call this interface // to get file content from editor buffer and get last modification time. // </summary> [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("33372170-A08F-47F9-B1AE-CD9F2C3BB7C9")] internal interface IVsMSBuildTaskFileManager { // Returns the contents of the specified file based on whats in-memory else what's // on disk if not in-memory. string GetFileContents([In, MarshalAs(UnmanagedType.LPWStr)] string wszFilename); // <summary> // Returns the live punkDocData object for the file if it is registered in the RDT, // else returns NULL. // </summary> [return:MarshalAs(UnmanagedType.IUnknown)] object GetFileDocData([In, MarshalAs(UnmanagedType.LPWStr)] string wszFilename); // Returns the time of the last change to the file. If open in memory, then this is the // time of the last edit as reported via IVsLastChangeTimeProvider::GetLastChangeTime // on the open document. If the file is not open, then the last change time of the file // on disk is returned. //System.Runtime.InteropServices.ComTypes.FILETIME GetFileLastChangeTime([In, MarshalAs(UnmanagedType.LPWStr)] string wszFilename); long GetFileLastChangeTime([In, MarshalAs(UnmanagedType.LPWStr)] string wszFilename); // PutGeneratedFileContents -- puts the contents for the generated file // into an in memory TextBuffer and registers it in the RDT with a RDT_ReadLock. // This holds the file open in memory until the project is closed (when the // project will call IVsMSBuildHostObject::Close). If this is an actual // build operation (ie. UICONTEXT_SolutionBuilding is on) then the file will // also be saved to disk. If this is only a generation at design time for // intellisense purposes then the file contents are only put into memory // and the disk is not modified. The in-memory TextBuffer is always marked // as clean so the user will not be prompted to save the generated file. void PutGeneratedFileContents([In, MarshalAs(UnmanagedType.LPWStr)] string wszFilename, [In, MarshalAs(UnmanagedType.LPWStr)] string strFileContents); // IsRealBuildOperation -- returns TRUE if this is a real Build operation else // if this is a design-time only generation for intellisense purposes it returns // FALSE. [return:MarshalAs(UnmanagedType.Bool)] bool IsRealBuildOperation(); // Delete -- deletes a file on disk and removes it from the RDT void Delete([In, MarshalAs(UnmanagedType.LPWStr)] string wszFilename); // Exists -- determines whether or not a file exists in the RDT or on disk [return:MarshalAs(UnmanagedType.Bool)] bool Exists([In, MarshalAs(UnmanagedType.LPWStr)] string wszFilename, [In, MarshalAs(UnmanagedType.Bool)] bool fOnlyCheckOnDisk); } }