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
'Déclaration
<GuidAttribute("53544C4D-9097-4325-9270-754EB85A6351")> _
<InterfaceTypeAttribute()> _
Public Interface IVsTrackProjectDocuments3
'Utilisation
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
[<GuidAttribute("53544C4D-9097-4325-9270-754EB85A6351")>]
[<InterfaceTypeAttribute()>]
type IVsTrackProjectDocuments3 = interface end
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.
Notes
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.