/// <summary> /// Sets the VSQUERYREMOVEFILEFLAGS that will be used to call the IVsTrackProjectDocumentsEvents2 OnQueryRemoveFiles /// </summary> /// <param name="files">The files to which an array of VSQUERYREMOVEFILEFLAGS has to be specified.</param> /// <returns></returns> public /*protected, but public for FSharp.Project.dll*/ override VSQUERYREMOVEFILEFLAGS[] GetQueryRemoveFileFlags(string[] files) { if (files == null || files.Length == 0) { return(new VSQUERYREMOVEFILEFLAGS[1] { VSQUERYREMOVEFILEFLAGS.VSQUERYREMOVEFILEFLAGS_NoFlags }); } VSQUERYREMOVEFILEFLAGS[] queryRemoveFileFlags = new VSQUERYREMOVEFILEFLAGS[files.Length]; for (int i = 0; i < files.Length; i++) { queryRemoveFileFlags[i] = VSQUERYREMOVEFILEFLAGS.VSQUERYREMOVEFILEFLAGS_IsNestedProjectFile; } return(queryRemoveFileFlags); }
/// <summary> /// Asks the environment for permission to remove files. /// </summary> /// <param name="files">an array of files to remove</param> /// <param name="flags">The VSQUERYREMOVEFILEFLAGS associated to the files to be removed.</param> /// <returns>true if the files can be removed, false if not.</returns> internal bool CanRemoveItems(string[] files, VSQUERYREMOVEFILEFLAGS[] flags) { // If we are silent then we assume that the file can be removed, since we do not want to trigger this event. if((this.projectMgr.EventTriggeringFlag & ProjectNode.EventTriggering.DoNotTriggerTrackerEvents) != 0) { return true; } if(files == null || files.Length == 0) { return false; } int length = files.Length; VSQUERYREMOVEFILERESULTS[] summary = new VSQUERYREMOVEFILERESULTS[1]; ErrorHandler.ThrowOnFailure(this.GetIVsTrackProjectDocuments2().OnQueryRemoveFiles(this.projectMgr, length, files, flags, summary, null)); if(summary[0] == VSQUERYREMOVEFILERESULTS.VSQUERYREMOVEFILERESULTS_RemoveNotOK) { return false; } return true; }
int IVsTrackProjectDocumentsEvents2.OnQueryRemoveFiles( IVsProject pProject, int cFiles, string[] rgpszMkDocuments, VSQUERYREMOVEFILEFLAGS[] rgFlags, VSQUERYREMOVEFILERESULTS[] pSummaryResult, VSQUERYREMOVEFILERESULTS[] rgResults) { return VSConstants.S_OK; }
public virtual int OnQueryRemoveFiles(IVsProject pProject, int cFiles, string[] rgpszMkDocuments, VSQUERYREMOVEFILEFLAGS[] rgFlags, VSQUERYREMOVEFILERESULTS[] pSummaryResult, VSQUERYREMOVEFILERESULTS[] rgResults) { return VSConstants.E_NOTIMPL; }
public int OnQueryRemoveFiles(IVsProject pProject, int cFiles, string[] rgpszMkDocuments, VSQUERYREMOVEFILEFLAGS[] rgFlags, VSQUERYREMOVEFILERESULTS[] pSummaryResult, VSQUERYREMOVEFILERESULTS[] rgResults) { return 0; }
/// <summary> /// Sets the VSQUERYREMOVEFILEFLAGS that will be used to call the IVsTrackProjectDocumentsEvents2 OnQueryRemoveFiles /// </summary> /// <param name="files">The files to which an array of VSQUERYREMOVEFILEFLAGS has to be specified.</param> /// <returns></returns> protected internal override VSQUERYREMOVEFILEFLAGS[] GetQueryRemoveFileFlags(string[] files) { if (files == null || files.Length == 0) { return new VSQUERYREMOVEFILEFLAGS[1] { VSQUERYREMOVEFILEFLAGS.VSQUERYREMOVEFILEFLAGS_NoFlags }; } VSQUERYREMOVEFILEFLAGS[] queryRemoveFileFlags = new VSQUERYREMOVEFILEFLAGS[files.Length]; for (int i = 0; i < files.Length; i++) { queryRemoveFileFlags[i] = VSQUERYREMOVEFILEFLAGS.VSQUERYREMOVEFILEFLAGS_IsNestedProjectFile; } return queryRemoveFileFlags; }
public int OnQueryRemoveFiles(IVsProject pProject, int cFiles, string[] rgpszMkDocuments, VSQUERYREMOVEFILEFLAGS[] rgFlags, VSQUERYREMOVEFILERESULTS[] pSummaryResult, VSQUERYREMOVEFILERESULTS[] rgResults) { if (pSummaryResult != null) { pSummaryResult[0] = VSQUERYREMOVEFILERESULTS.VSQUERYREMOVEFILERESULTS_RemoveOK; } if (rgResults != null) { for (int i = 0; i < cFiles; i++) { rgResults[i] = VSQUERYREMOVEFILERESULTS.VSQUERYREMOVEFILERESULTS_RemoveOK; } } return VSConstants.S_OK; }
int IVsTrackProjectDocumentsEvents2.OnQueryRemoveFiles(IVsProject pProject, int cFiles, string[] rgpszMkDocuments, VSQUERYREMOVEFILEFLAGS[] rgFlags, VSQUERYREMOVEFILERESULTS[] pSummaryResult, VSQUERYREMOVEFILERESULTS[] rgResults) { return NativeMethods.S_OK; // We are not interested in this one }
public int OnQueryRemoveFiles(IVsProject pProject, int cFiles, string[] rgpszMkDocuments, VSQUERYREMOVEFILEFLAGS[] rgFlags, VSQUERYREMOVEFILERESULTS[] pSummaryResult, VSQUERYREMOVEFILERESULTS[] rgResults) { throw new NotImplementedException(); }
public int OnQueryRemoveFiles( IVsProject pProject, int cFiles, string[] rgpszMkDocuments, VSQUERYREMOVEFILEFLAGS[] rgFlags, VSQUERYREMOVEFILERESULTS[] pSummaryResult, VSQUERYREMOVEFILERESULTS[] rgResults) { var hr = VSConstants.S_OK; var handler = QueryRemoveFile; if (handler != null) { if (cFiles <= rgpszMkDocuments.Length) { for (var fileCount = 0; fileCount < cFiles; fileCount++) { var args = new ModelChangeEventArgs(); args.OldFileName = rgpszMkDocuments[fileCount]; args.ProjectObj = VSHelpers.GetProject(pProject as IVsHierarchy); if (args.ProjectObj == null) { continue; } hr = handler(this, args); } } } return hr; }
public int OnQueryRemoveFiles(IVsProject pProject, int cFiles, string[] rgpszMkDocuments, VSQUERYREMOVEFILEFLAGS[] rgFlags, VSQUERYREMOVEFILERESULTS[] pSummaryResult, VSQUERYREMOVEFILERESULTS[] rgResults) { TraceAdviseEvent("OnQueryRemoveFiles", rgpszMkDocuments); return VSConstants.E_NOTIMPL; }
public int OnQueryRemoveFiles(IVsProject pProject, int cFiles, string[] rgpszMkDocuments, VSQUERYREMOVEFILEFLAGS[] rgFlags, VSQUERYREMOVEFILERESULTS[] pSummaryResult, VSQUERYREMOVEFILERESULTS[] rgResults) { foreach (var file in rgpszMkDocuments) { DocumentEvents.Add("OnQueryRemoveFiles " + file); CodeDocumentEvents.Add("OnQueryRemoveFiles(" + GetRelativePath(pProject, file) + ")"); } return VSConstants.S_OK; }