It is probably looking to see what the editable/readonly status is of the file. It could be related to determining source control status. Checked out Here is some more information related to QueryEditFiles, it lists reasons why it might be called: http://msdn2.microsoft.com/en-us/library/microsoft.visualstudio.shell.interop.ivsqueryeditquerysave2.queryeditfiles(VS.80).aspx Additionally here is a snippet of comments taken from the Iron Python example related to QueryEditFiles: // Note that this function can popup a dialog to ask the user to checkout the file. // When this dialog is visible, it is possible to receive other request to change // the file and this is the reason for the recursion guard. int hr = queryEditQuerySave.QueryEditFiles( 0, // Flags 1, // Number of elements in the array documents, // Files to edit null, // Input flags null, // Input array of VSQEQS_FILE_ATTRIBUTE_DATA out result, // result of the checkout out outFlags // Additional flags );