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)

Syntax

'Declaration
<InterfaceTypeAttribute()> _
<GuidAttribute("53544C4D-6639-11D3-A60D-005004775AB1")> _
Public Interface IVsTrackProjectDocuments2
[InterfaceTypeAttribute()]
[GuidAttribute("53544C4D-6639-11D3-A60D-005004775AB1")]
public interface IVsTrackProjectDocuments2
[InterfaceTypeAttribute()]
[GuidAttribute(L"53544C4D-6639-11D3-A60D-005004775AB1")]
public interface class IVsTrackProjectDocuments2
[<InterfaceTypeAttribute()>]
[<GuidAttribute("53544C4D-6639-11D3-A60D-005004775AB1")>]
type IVsTrackProjectDocuments2 =  interface end
public interface IVsTrackProjectDocuments2

The IVsTrackProjectDocuments2 type exposes the following members.

Methods

  Name Description
Public method AdviseTrackProjectDocumentsEvents This method enables clients to receive notifications of project documents events.
Public method BeginBatch This method starts a batch of IVsTrackProjectDocuments2.OnAfter* method calls.
Public method EndBatch This method ends the batch started by BeginBatch and displays any user interface (UI) that was generated within the batch.
Public method Flush This method displays the UI for the IVsTrackProjectDocuments2 calls completed so far without ending the batch.
Public method OnAfterAddDirectories This method is called by a project after directories have been added to the project.
Public method 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.
Public method OnAfterAddFiles This method is called by a project after files have been added to the project.
Public method OnAfterAddFilesEx This method is called by a project after files have been added to the project.
Public method OnAfterRemoveDirectories This method is called by a project after directories have been removed from the project.
Public method OnAfterRemoveFiles This method is called by a project after files have been removed from the project.
Public method OnAfterRenameDirectories This method is called by a project after a directory has been renamed in the project.
Public method OnAfterRenameFile This method is called by a project after a file has been renamed in the project.
Public method OnAfterRenameFiles This method is called by a project after files have been renamed in the project.
Public method OnAfterSccStatusChanged This method is called by the Source Control Stub to inform listeners that source control status has changed. Do not call this method.
Public method OnQueryAddDirectories This method is called by a project to determine whether directories can be added to the project.
Public method OnQueryAddFiles This method is called by a project to determine whether files can be added to the project.
Public method OnQueryRemoveDirectories This method is called by a project to determine whether directories can be removed from the project.
Public method OnQueryRemoveFiles This method is called by a project to determine whether files can be removed from the project.
Public method OnQueryRenameDirectories This method is called by a project to determine whether directories in the project can be renamed.
Public method OnQueryRenameFile This method is called by a project to determine whether a file in the project can be renamed.
Public method OnQueryRenameFiles This method is called by a project to determine whether files can be renamed in the project.
Public method UnadviseTrackProjectDocumentsEvents This method prevents clients from receiving notifications of project documents events.

Top

Remarks

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.

Note

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.

See Also

Reference

Microsoft.VisualStudio.Shell.Interop Namespace