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)
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.