This documentation is archived and is not being maintained.

IVsTrackProjectDocuments2.OnQueryAddFiles Method

This method is called by a project to determine whether files can be added to the project.

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

int OnQueryAddFiles (
	[InAttribute] IVsProject pProject,
	[InAttribute] int cFiles,
	[InAttribute] string[] rgpszMkDocuments,
	[InAttribute] VSQUERYADDFILEFLAGS[] rgFlags,
	[OutAttribute] VSQUERYADDFILERESULTS[] pSummaryResult,
	[OutAttribute] VSQUERYADDFILERESULTS[] rgResults
int OnQueryAddFiles (
	/** @attribute InAttribute() */ IVsProject pProject, 
	/** @attribute InAttribute() */ int cFiles, 
	/** @attribute InAttribute() */ String[] rgpszMkDocuments, 
	/** @attribute InAttribute() */ VSQUERYADDFILEFLAGS[] rgFlags, 
	/** @attribute OutAttribute() */ VSQUERYADDFILERESULTS[] pSummaryResult, 
	/** @attribute OutAttribute() */ VSQUERYADDFILERESULTS[] rgResults
function OnQueryAddFiles (
	pProject : IVsProject, 
	cFiles : int, 
	rgpszMkDocuments : String[], 
) : int



[in] Project to which the files will be added.


[in] Number of files to add. It is not valid for cFiles to be zero.


[in] Array of paths for the files to be added. This is the same size as cFiles.


[in] Array of flags associated with each file. For more information, see VSQUERYADDFILEFLAGS.


[out] Summary result object. This object is a summation of the yes and no results for the array of files passed in rgpszMkDocuments. If the result for a single file in the array is no, then pSummaryResult is equal to VSQUERYADDFILERESULTS_AddNotOK; if the results for all files are yes, then pSummaryResult is equal to VSQUERYADDFILERESULTS_AddOK. For a list of pSummaryResult values, see VSQUERYADDFILERESULTS.


[out] Array of results for each individual file. For a list of rgResults values, see VSQUERYADDFILERESULTS.


If you pass in a null reference (Nothing in Visual Basic) for this parameter, then only the summary result will be returned (pSummaryResult).

Return Value

If the method succeeds, it returns S_OK. If it fails, it returns an error code.

COM Signature

From IVsTrackProjectDocuments2.idl

HRESULT IVsTrackProjectDocuments2::OnQueryAddFiles(
   [in] IVsProject *pProject,
   [in] int cFiles,
   [in, size_is(cFiles)] const LPCOLESTR rgpszMkDocuments[],
   [in, size_is(cFiles)] const VSQUERYADDFILEFLAGS rgFlags[],
   [out] VSQUERYADDFILERESULTS *pSummaryResult,
   [out, size_is(cFiles)] VSQUERYADDFILERESULTS rgResults[]

Call this method when you want to add files to your project. This method must be called before the files are added to the project. The environment will return a flag indicating which files can be added. After you have received authorization to add the files and you have added the files, call OnAfterAddFilesEx or OnAfterAddFiles to confirm that the files have been added.