IVsQueryEditQuerySave2 Interface

Indicates to the environment or source control package that a file is about to be changed in memory or saved.

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

public interface IVsQueryEditQuerySave2

The IVsQueryEditQuerySave2 type exposes the following members.

Public methodBeginQuerySaveBatchCreates a batch of a sequence of documents before attempting to save them to disk.
Public methodDeclareReloadableFileStates that a file will be reloaded if it changes on disk.
Public methodDeclareUnreloadableFileStates that a file will not be reloaded if it changes on disk
Public methodEndQuerySaveBatchEnds the batch started by the BeginQuerySaveBatch method and displays any user interface (UI) generated within the batch.
Public methodIsReloadableReturns the SVsQueryEditQuerySave service's understanding of whether this file is reloadable
Public methodOnAfterSaveUnreloadableFileSynchronizes or refreshes the file date and size after an editor saves an unreloadable file.
Public methodQueryEditFilesCalled when a file is about to be edited.
Public methodQuerySaveFileNotifies the environment that a file is about to be saved.
Public methodQuerySaveFilesNotifies the environment that multiple files are about to be saved.

IVsQueryEditQuerySave2 is implemented by Visual Studio and the individual source control packages in the SVsQueryEditQuerySave service, and is called by editor and project packages. This interface allows the environment to ensure that the file is made writable or checked out at the correct time. A project or editor must request permission to transition to the changed (dirty) state by calling QueryEditFiles method. Before an editor saves a file, it must call QuerySaveFile or QuerySaveFiles. For project files, these calls are automatically completed by the solution, which knows when to save a project file. Editors are responsible for making these calls unless the editor implementation of the IVsPersistDocData2 interface uses the helper function SaveDocDataToFile method. If your editor implements the IVsPersistDocData2 interface in this way, then the call to QuerySaveFile or QuerySaveFiles is made for you.

Calls to QuerySaveFiles can be batched using the BeginQuerySaveBatch and EndQuerySaveBatch methods.

The DeclareReloadableFile and DeclareUnreloadableFile methods inform the environment whether the editor is capable of reloading the particular file. These methods are not required if the editor supports IVsPersistDocData or IVsPersistDocData2.

OnAfterSaveUnreloadableFile method is called by the environment for nonreloadable files.

Notes to Implementers

This interface is implemented by the source control package. It is recommended that this interface be implemented. The environment always implements this interface and forwards all calls, if possible, to the current source control package. If this interface is not implemented, the user may need to manually check out the files from source control and reload them in the IDE.

Notes to Callers

The methods of the IVsQueryEditQuerySave2 interface should be called immediately before a document is edited for the first time, and immediately before a document is saved.

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