IVsTrackProjectDocuments2 Interface

Used by projects to query the environment for permission to add, remove, or rename a file or directory in a solution.

Namespace:  Microsoft.VisualStudio.Shell.Interop
Assembly:  Microsoft.VisualStudio.Shell.Interop (in Microsoft.VisualStudio.Shell.Interop.dll)

[InterfaceTypeAttribute()]
[GuidAttribute("53544C4D-6639-11D3-A60D-005004775AB1")]
public interface IVsTrackProjectDocuments2

The IVsTrackProjectDocuments2 type exposes the following members.

  NameDescription
Public methodAdviseTrackProjectDocumentsEventsThis method enables clients to receive notifications of project documents events.
Public methodBeginBatchThis method starts a batch of IVsTrackProjectDocuments2.OnAfter* method calls.
Public methodEndBatchThis method ends the batch started by BeginBatch and displays any user interface (UI) that was generated within the batch.
Public methodFlushThis method displays the UI for the IVsTrackProjectDocuments2 calls completed so far without ending the batch.
Public methodOnAfterAddDirectoriesThis method is called by a project after directories have been added to the project.
Public methodOnAfterAddDirectoriesExThis 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.
Public methodOnAfterAddFilesThis method is called by a project after files have been added to the project.
Public methodOnAfterAddFilesExThis method is called by a project after files have been added to the project.
Public methodOnAfterRemoveDirectoriesThis method is called by a project after directories have been removed from the project.
Public methodOnAfterRemoveFilesThis method is called by a project after files have been removed from the project.
Public methodOnAfterRenameDirectoriesThis method is called by a project after a directory has been renamed in the project.
Public methodOnAfterRenameFileThis method is called by a project after a file has been renamed in the project.
Public methodOnAfterRenameFilesThis method is called by a project after files have been renamed in the project.
Public methodOnAfterSccStatusChangedThis method is called by the Source Control Stub to inform listeners that source control status has changed. Do not call this method.
Public methodOnQueryAddDirectoriesThis method is called by a project to determine whether directories can be added to the project.
Public methodOnQueryAddFilesThis method is called by a project to determine whether files can be added to the project.
Public methodOnQueryRemoveDirectoriesThis method is called by a project to determine whether directories can be removed from the project.
Public methodOnQueryRemoveFilesThis method is called by a project to determine whether files can be removed from the project.
Public methodOnQueryRenameDirectoriesThis method is called by a project to determine whether directories in the project can be renamed.
Public methodOnQueryRenameFileThis method is called by a project to determine whether a file in the project can be renamed.
Public methodOnQueryRenameFilesThis method is called by a project to determine whether files can be renamed in the project.
Public methodUnadviseTrackProjectDocumentsEventsThis method prevents clients from receiving notifications of project documents events.
Top

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.

NoteNote

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.

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

ADD
Show:
© 2015 Microsoft