/*----------------------------------------------------------------------------- Copyright (c) Microsoft Corporation. All rights reserved. Module IVsTrackProjectDocuments110.idl - Track Project Documents service interfaces used to broadcast document events| The point of the SVsTrackProjectDocuments is to bottleneck certain shell events. Packages can Advise with the service at SetSite time. See also IVsTrackProjectDocuments80.idl Owner: Source Control Integration Team -----------------------------------------------------------------------------*/ #if !defined(CTC_INVOKED) && !defined(RGS_INVOKED) cpp_quote("#pragma once") //---------------------------- // Includes //---------------------------- #include "SCGuids.h" #include "vsshelluuids.h" // to get access to uuid_VsPreserveSigAttribute //---------------------------- // Imports //---------------------------- #ifndef INTEROPLIB // Imports - all imports should go here (inside the ifndef) import "oaidl.idl"; import "IVsTrackProjectDocuments80.idl"; import "IVsTrackProjectDocumentsEvents110.idl"; #endif /*----------------------------------------------------------------------------- Interface: IVsTrackProjectDocuments4 This interface is implemented by the Environment. It can be retrieved via QueryInterface on the SID_SVsTrackProjectDocuments service object. Project systems will call these methods to cause IVsTrackProjectDocumentEvents to be fired to the many clients that try to keep track of changes to the contents of a project. See IVsTrackProjectDocumentsEvents110.idl for the definition of the flags used by this interface. @base public | IUnknown -----------------------------------------------------------------------------*/ [ uuid(uuid_IVsTrackProjectDocuments4) ] [custom(uuid_VsPreserveSigAttribute, "preservesig")] interface IVsTrackProjectDocuments4 : IUnknown { HRESULT OnQueryRemoveFilesEx( [in] IVsProject *pProject, [in] int cFiles, [in, size_is(cFiles)] const LPCOLESTR rgpszMkDocuments[], [in, size_is(cFiles)] const VSQUERYREMOVEFILEFLAGS2 rgFlags[], [out] VSQUERYREMOVEFILERESULTS *pSummaryResult, [out, size_is(cFiles)] VSQUERYREMOVEFILERESULTS rgResults[]); HRESULT OnQueryRemoveDirectoriesEx( [in] IVsProject *pProject, [in] int cDirectories, [in, size_is(cDirectories)] const LPCOLESTR rgpszMkDocuments[], [in, size_is(cDirectories)] const VSQUERYREMOVEDIRECTORYFLAGS2 rgFlags[], [out] VSQUERYREMOVEDIRECTORYRESULTS *pSummaryResult, [out, size_is(cDirectories)] VSQUERYREMOVEDIRECTORYRESULTS rgResults[]); HRESULT OnAfterRemoveFilesEx( [in] IVsProject *pProject, [in] int cFiles, [in, size_is(cFiles)] const LPCOLESTR rgpszMkDocuments[], [in, size_is(cFiles)] const VSREMOVEFILEFLAGS2 rgFlags[]); HRESULT OnAfterRemoveDirectoriesEx( [in] IVsProject *pProject, [in] int cDirectories, [in, size_is(cDirectories)] const LPCOLESTR rgpszMkDocuments[], [in, size_is(cDirectories)] const VSREMOVEDIRECTORYFLAGS2 rgFlags[]); }; #endif