Used by projects to query the environment for permission to add, remove, or rename a file or directory in a solution.
Assembly: Microsoft.VisualStudio.Shell.Interop (in Microsoft.VisualStudio.Shell.Interop.dll)
Thetype exposes the following members.
|AdviseTrackProjectDocumentsEvents||This method enables clients to receive notifications of project documents events.|
|BeginBatch||This method starts a batch of IVsTrackProjectDocuments2.OnAfter* method calls.|
|EndBatch||This method ends the batch started by BeginBatch and displays any user interface (UI) that was generated within the batch.|
|Flush||This method displays the UI for the calls completed so far without ending the batch.|
|OnAfterAddDirectories||This method is called by a project after directories have been added to the project.|
|OnAfterAddDirectoriesEx||This method is called by a project after directories have been added to the project. This method is equivalent to OnAfterAddDirectories, but it also takes flags.|
|OnAfterAddFiles||This method is called by a project after files have been added to the project.|
|OnAfterAddFilesEx||This method is called by a project after files have been added to the project.|
|OnAfterRemoveDirectories||This method is called by a project after directories have been removed from the project.|
|OnAfterRemoveFiles||This method is called by a project after files have been removed from the project.|
|OnAfterRenameDirectories||This method is called by a project after a directory has been renamed in the project.|
|OnAfterRenameFile||This method is called by a project after a file has been renamed in the project.|
|OnAfterRenameFiles||This method is called by a project after files have been renamed in the project.|
|OnAfterSccStatusChanged||This method is called by the Source Control Stub to inform listeners that source control status has changed. Do not call this method.|
|OnQueryAddDirectories||This method is called by a project to determine whether directories can be added to the project.|
|OnQueryAddFiles||This method is called by a project to determine whether files can be added to the project.|
|OnQueryRemoveDirectories||This method is called by a project to determine whether directories can be removed from the project.|
|OnQueryRemoveFiles||This method is called by a project to determine whether files can be removed from the project.|
|OnQueryRenameDirectories||This method is called by a project to determine whether directories in the project can be renamed.|
|OnQueryRenameFile||This method is called by a project to determine whether a file in the project can be renamed.|
|OnQueryRenameFiles||This method is called by a project to determine whether files can be renamed in the project.|
|UnadviseTrackProjectDocumentsEvents||This method prevents clients from receiving notifications of project documents events.|
Use the IVsTrackProjectDocuments2 interface to request permission from the environment to add, remove, or rename any file or directory in a project and (if permission is granted) to inform the environment when these actions are completed. You need to make these calls even if your project does not support source control. You must use IVsTrackProjectDocuments2 for all files, not just master files. For example, if you have a form with a .resx file and other files, you need to tell the environment about all of the files. Do not call the methods of IVsTrackProjectDocuments2 at project open or close. Any entity that requires the information provided through IVsTrackProjectDocuments2 at startup can wait for the OnAfterOpenSolution event and iterate through the solution to find the information required. On shutdown, this information is not needed. Access to IVsTrackProjectDocuments2 is provided from the SVsTrackProjectDocuments service.
For each call on IVsTrackProjectDocuments2, there are two methods, the OnQuery* method and the OnAfter* method. Call the appropriate OnQuery* method to request permission to add, remove, or rename a file or directory in a project. From this call, you might receive notification that the operation cannot proceed. For example, if the Enterprise Framework and Template (EFT) project system does not permit the user to add a file that does not meet policy, the project must be prepared to not perform the add, remove, or rename. If permission is granted, the project must complete the add, rename, or remove action and then call the appropriate OnAfter* method to inform the environment of the changes made to the project.
The IVsTrackProjectDocuments2 method also applies to directories, but directory calls are optional. If your project system has directory information, then provide this information to the environment using these methods. However, if the project system does not have this information, then the environment will infer it.
All directory calls are optional. However, if you call one of the OnQuery* directory methods and the call was successful, then you are required to call the corresponding OnAfter* directory method.
IVsTrackProjectDocuments2 is accessed using the SVsTrackProjectDocuments service.Notes to Implementers
Implemented by the environment. This interface is the mechanism for gathering the information regarding when a file or directory is added, removed, or renamed in a project.Notes to Callers
Called by projects to query the environment as to whether a file or directory can be added, removed, or renamed in a solution. For all actions approved by the environment, the appropriate method is then called after the action is completed. IVsTrackProjectDocuments2 must be used by all projects, regardless of whether they support source control.