IVsTrackProjectDocuments3 Interface
This interface allows for batch processing, coordination of locks on files, and an advanced OnQueryAddFiles method.
Namespace: Microsoft.VisualStudio.Shell.Interop
Assembly: Microsoft.VisualStudio.Shell.Interop.8.0 (in Microsoft.VisualStudio.Shell.Interop.8.0.dll)
Syntax
'Declaration
<GuidAttribute("53544C4D-9097-4325-9270-754EB85A6351")> _
<InterfaceTypeAttribute()> _
Public Interface IVsTrackProjectDocuments3
'Usage
Dim instance As IVsTrackProjectDocuments3
[GuidAttribute("53544C4D-9097-4325-9270-754EB85A6351")]
[InterfaceTypeAttribute()]
public interface IVsTrackProjectDocuments3
[GuidAttribute(L"53544C4D-9097-4325-9270-754EB85A6351")]
[InterfaceTypeAttribute()]
public interface class IVsTrackProjectDocuments3
public interface IVsTrackProjectDocuments3
Remarks
The advanced version of the OnQueryAddFiles method supports projects that copy files to new locations within the project directory after extraction from source control.
The batch process methods must be balanced; that is, every call to the BeginQueryBatch method must be matched with a call to the EndQueryBatch method or the CancelQueryBatch method. The batch process methods are used so that the user is presented with a single dialog box concerning the operation on all the files instead of multiple dialog boxes, one for each file. If any query says it is not okay to continue the operation, the CancelQueryBatch should be called to cancel the entire batch operation. Otherwise, if all queries indicate it is okay to continue, the EndQueryBatch method should be called. For example:
BOOL fRenameCanCont = FALSE;
pTrackProjectDocuments3->BeginQueryBatch();
QueryFolderRename(pFolderNode, strOldPath, strNewPath, &fRenameCanCont);
if (fRenameCanCont)
pTrackProjectDocuments3->EndQueryBatch(&fRenameCanCont);
else
pTrackProjectDocuments3->CancelQueryBatch();
bool fRenameCanCont = false;
pTrackProjectDocuments3.BeginQueryBatch();
QueryFolderRename(pFolderNode, strOldPath, strNewPath, fRenameCanCont);
if (fRenameCanCont)
pTrackProjectDocuments3.EndQueryBatch(&fRenameCanCont);
else
pTrackProjectDocuments3.CancelQueryBatch();
In this example, QueryFolderRename is assumed to be a user-defined helper function that causes a series of events to repeatedly call the OnQueryRenameFile method.
Notes to Implementers:
This interface is implemented by Visual Studio source control package. Visual Studio routes calls to this interface to the currently active source control package if that package implements the IVsTrackProjectDocumentsEvents3 interface.
Note
This interface is not derived from the IVsTrackProjectDocuments2 interface, although it is normally implemented on the same object. The IVsTrackProjectDocuments3 interface can be obtained by asking for it from the SVsTrackProjectDocuments service.
Notes to Callers:
This interface provides a batch-processing mechanism that allows multiple accesses to a source control system without needing to provide a prompt for each individual file. In addition, this interface synchronizes read/write access to files and provides an extension to the OnQueryAddFiles method.