/*********************************************************************/ /* */ /* AgentService Framework */ /* www.agentservice.it */ /* */ /* Copyright (C) 2007 l.i.d.o. - DIST, University of Genoa, Italy */ /* GNU Lesser General Public License */ /* */ /* This library is free software; you can redistribute it and/or */ /* modify it under the terms of the GNU Lesser General Public */ /* License as published by the Free Software Foundation, */ /* version 2.1 of the License. */ /* */ /* This library is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU */ /* Lesser General Public License for more details. */ /* */ /* You should have received a copy of the GNU Lesser General Public */ /* License along with this library; if not, write to the */ /* Free Software Foundation, Inc., 59 Temple Place - Suite 330, */ /* Boston, MA 02111-1307, USA. */ /* */ /*********************************************************************/ using System; using System.Collections; using System.Linq; using System.Text; using EnvDTE80; using EnvDTE; namespace lido.VSVisioEditor { class findDTE { public findDTE() { //no initialized are requested } //torvare il percorso della soluzione partendo dal percorso del file di visio public Solution2 findSolution(string PathVSD) { string solution = PathVSD.Replace("\\PlatformDiagram\\AgentServicePlatformFile.vsd", ".sln"); // trova istanza giusta del Visual Studio per settare parametro dte2 Hashtable runningObjects = Msdev.GetIDEInstances(false); IDictionaryEnumerator enumerator = runningObjects.GetEnumerator(); string solutionFile = ""; DTE2 dte2 = null; while (solutionFile != solution) { enumerator.MoveNext(); string name = (string)enumerator.Key; EnvDTE.DTE ide = enumerator.Value as EnvDTE.DTE; solutionFile = ide.Solution.FullName; dte2 = (DTE2)ide; } Solution2 sol = (Solution2)dte2.Solution; return sol; } public DTE2 FindDTE2(string PathVSD) { string solution = PathVSD.Replace("\\PlatformDiagram\\AgentServicePlatformFile.vsd", ".sln"); // trova istanza giusta del Visual Studio per settare parametro dte2 Hashtable runningObjects = Msdev.GetIDEInstances(false); IDictionaryEnumerator enumerator = runningObjects.GetEnumerator(); string solutionFile = ""; DTE2 dte2 = null; while (solutionFile != solution) { enumerator.MoveNext(); string name = (string)enumerator.Key; EnvDTE.DTE ide = enumerator.Value as EnvDTE.DTE; solutionFile = ide.Solution.FullName; dte2 = (DTE2)ide; } return dte2; } } }