| Index: obsolete/Microsoft.VisualStudio.Project/ReferenceNode.cs
|
| diff --git a/obsolete/Microsoft.VisualStudio.Project/ReferenceNode.cs b/obsolete/Microsoft.VisualStudio.Project/ReferenceNode.cs
|
| deleted file mode 100644
|
| index 6b501cbffb830fb3e3c33bb7f848ac4fcc2ca557..0000000000000000000000000000000000000000
|
| --- a/obsolete/Microsoft.VisualStudio.Project/ReferenceNode.cs
|
| +++ /dev/null
|
| @@ -1,319 +0,0 @@
|
| -/// Copyright (c) Microsoft Corporation. All rights reserved.
|
| -
|
| -using System;
|
| -using System.Diagnostics;
|
| -using System.Globalization;
|
| -using System.IO;
|
| -using System.Runtime.InteropServices;
|
| -using System.Security.Permissions;
|
| -using System.Text;
|
| -using Microsoft.VisualStudio;
|
| -using Microsoft.VisualStudio.Shell;
|
| -using Microsoft.VisualStudio.Shell.Interop;
|
| -using OleConstants = Microsoft.VisualStudio.OLE.Interop.Constants;
|
| -using VsCommands2K = Microsoft.VisualStudio.VSConstants.VSStd2KCmdID;
|
| -
|
| -namespace Microsoft.VisualStudio.Project
|
| -{
|
| - [CLSCompliant(false), ComVisible(true)]
|
| - public abstract class ReferenceNode : HierarchyNode
|
| - {
|
| - protected delegate void CannotAddReferenceErrorMessage();
|
| -
|
| - #region ctors
|
| - /// <summary>
|
| - /// constructor for the ReferenceNode
|
| - /// </summary>
|
| - protected ReferenceNode(ProjectNode root, ProjectElement element)
|
| - : base(root, element)
|
| - {
|
| - this.ExcludeNodeFromScc = true;
|
| - }
|
| -
|
| - /// <summary>
|
| - /// constructor for the ReferenceNode
|
| - /// </summary>
|
| - protected ReferenceNode(ProjectNode root)
|
| - : base(root)
|
| - {
|
| - this.ExcludeNodeFromScc = true;
|
| - }
|
| -
|
| - #endregion
|
| -
|
| - #region overridden properties
|
| - public override int MenuCommandId
|
| - {
|
| - get { return VsMenus.IDM_VS_CTXT_REFERENCE; }
|
| - }
|
| -
|
| - public override Guid ItemTypeGuid
|
| - {
|
| - get { return Guid.Empty; }
|
| - }
|
| -
|
| - public override string Url
|
| - {
|
| - get
|
| - {
|
| - return String.Empty;
|
| - }
|
| - }
|
| -
|
| - public override string Caption
|
| - {
|
| - get
|
| - {
|
| - return String.Empty;
|
| - }
|
| - }
|
| - #endregion
|
| -
|
| - #region overridden methods
|
| - protected override NodeProperties CreatePropertiesObject()
|
| - {
|
| - return new ReferenceNodeProperties(this);
|
| - }
|
| -
|
| - /// <summary>
|
| - /// Get an instance of the automation object for ReferenceNode
|
| - /// </summary>
|
| - /// <returns>An instance of Automation.OAReferenceItem type if succeeded</returns>
|
| - public override object GetAutomationObject()
|
| - {
|
| - if(this.ProjectMgr == null || this.ProjectMgr.IsClosed)
|
| - {
|
| - return null;
|
| - }
|
| -
|
| - return new Automation.OAReferenceItem(this.ProjectMgr.GetAutomationObject() as Automation.OAProject, this);
|
| - }
|
| -
|
| - /// <summary>
|
| - /// Disable inline editing of Caption of a ReferendeNode
|
| - /// </summary>
|
| - /// <returns>null</returns>
|
| - public override string GetEditLabel()
|
| - {
|
| - return null;
|
| - }
|
| -
|
| -
|
| - public override object GetIconHandle(bool open)
|
| - {
|
| - int offset = (this.CanShowDefaultIcon() ? (int)ProjectNode.ImageName.Reference : (int)ProjectNode.ImageName.DanglingReference);
|
| - return this.ProjectMgr.ImageHandler.GetIconHandle(offset);
|
| - }
|
| -
|
| - /// <summary>
|
| - /// This method is called by the interface method GetMkDocument to specify the item moniker.
|
| - /// </summary>
|
| - /// <returns>The moniker for this item</returns>
|
| - public override string GetMkDocument()
|
| - {
|
| - return this.Url;
|
| - }
|
| -
|
| - /// <summary>
|
| - /// Not supported.
|
| - /// </summary>
|
| - protected override int ExcludeFromProject()
|
| - {
|
| - return (int)OleConstants.OLECMDERR_E_NOTSUPPORTED;
|
| - }
|
| -
|
| - /// <summary>
|
| - /// References node cannot be dragged.
|
| - /// </summary>
|
| - /// <returns>A stringbuilder.</returns>
|
| - protected internal override StringBuilder PrepareSelectedNodesForClipBoard()
|
| - {
|
| - return null;
|
| - }
|
| -
|
| - protected override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result)
|
| - {
|
| - if(cmdGroup == VsMenus.guidStandardCommandSet2K)
|
| - {
|
| - if((VsCommands2K)cmd == VsCommands2K.QUICKOBJECTSEARCH)
|
| - {
|
| - result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
|
| - return VSConstants.S_OK;
|
| - }
|
| - }
|
| - else
|
| - {
|
| - return (int)OleConstants.OLECMDERR_E_UNKNOWNGROUP;
|
| - }
|
| - return base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result);
|
| - }
|
| -
|
| - protected override int ExecCommandOnNode(Guid cmdGroup, uint cmd, uint nCmdexecopt, IntPtr pvaIn, IntPtr pvaOut)
|
| - {
|
| - if(cmdGroup == VsMenus.guidStandardCommandSet2K)
|
| - {
|
| - if((VsCommands2K)cmd == VsCommands2K.QUICKOBJECTSEARCH)
|
| - {
|
| - return this.ShowObjectBrowser();
|
| - }
|
| - }
|
| -
|
| - return base.ExecCommandOnNode(cmdGroup, cmd, nCmdexecopt, pvaIn, pvaOut);
|
| - }
|
| -
|
| - #endregion
|
| -
|
| - #region methods
|
| -
|
| -
|
| - /// <summary>
|
| - /// Links a reference node to the project and hierarchy.
|
| - /// </summary>
|
| - public virtual void AddReference()
|
| - {
|
| - ReferenceContainerNode referencesFolder = this.ProjectMgr.FindChild(ReferenceContainerNode.ReferencesNodeVirtualName) as ReferenceContainerNode;
|
| - Debug.Assert(referencesFolder != null, "Could not find the References node");
|
| -
|
| - CannotAddReferenceErrorMessage referenceErrorMessageHandler = null;
|
| -
|
| - if(!this.CanAddReference(out referenceErrorMessageHandler))
|
| - {
|
| - if(referenceErrorMessageHandler != null)
|
| - {
|
| - referenceErrorMessageHandler.DynamicInvoke(new object[] { });
|
| - }
|
| - return;
|
| - }
|
| -
|
| - // Link the node to the project file.
|
| - this.BindReferenceData();
|
| -
|
| - // At this point force the item to be refreshed
|
| - this.ItemNode.RefreshProperties();
|
| -
|
| - referencesFolder.AddChild(this);
|
| -
|
| - return;
|
| - }
|
| -
|
| - /// <summary>
|
| - /// Refreshes a reference by re-resolving it and redrawing the icon.
|
| - /// </summary>
|
| - internal virtual void RefreshReference()
|
| - {
|
| - this.ResolveReference();
|
| - this.ReDraw(UIHierarchyElement.Icon);
|
| - }
|
| -
|
| - /// <summary>
|
| - /// Resolves references.
|
| - /// </summary>
|
| - protected virtual void ResolveReference()
|
| - {
|
| -
|
| - }
|
| -
|
| - /// <summary>
|
| - /// Validates that a reference can be added.
|
| - /// </summary>
|
| - /// <param name="errorHandler">A CannotAddReferenceErrorMessage delegate to show the error message.</param>
|
| - /// <returns>true if the reference can be added.</returns>
|
| - protected virtual bool CanAddReference(out CannotAddReferenceErrorMessage errorHandler)
|
| - {
|
| - // When this method is called this refererence has not yet been added to the hierarchy, only instantiated.
|
| - errorHandler = null;
|
| - if(this.IsAlreadyAdded())
|
| - {
|
| - return false;
|
| - }
|
| -
|
| - return true;
|
| - }
|
| -
|
| -
|
| - /// <summary>
|
| - /// Checks if a reference is already added. The method parses all references and compares the Url.
|
| - /// </summary>
|
| - /// <returns>true if the assembly has already been added.</returns>
|
| - protected virtual bool IsAlreadyAdded()
|
| - {
|
| - ReferenceContainerNode referencesFolder = this.ProjectMgr.FindChild(ReferenceContainerNode.ReferencesNodeVirtualName) as ReferenceContainerNode;
|
| - Debug.Assert(referencesFolder != null, "Could not find the References node");
|
| -
|
| - for(HierarchyNode n = referencesFolder.FirstChild; n != null; n = n.NextSibling)
|
| - {
|
| - ReferenceNode refererenceNode = n as ReferenceNode;
|
| - if(null != refererenceNode)
|
| - {
|
| - // We check if the Url of the assemblies is the same.
|
| - if(NativeMethods.IsSamePath(refererenceNode.Url, this.Url))
|
| - {
|
| - return true;
|
| - }
|
| - }
|
| - }
|
| -
|
| - return false;
|
| - }
|
| -
|
| -
|
| - /// <summary>
|
| - /// Shows the Object Browser
|
| - /// </summary>
|
| - /// <returns></returns>
|
| - protected virtual int ShowObjectBrowser()
|
| - {
|
| - if(String.IsNullOrEmpty(this.Url) || !File.Exists(this.Url))
|
| - {
|
| - return (int)OleConstants.OLECMDERR_E_NOTSUPPORTED;
|
| - }
|
| -
|
| - // Request unmanaged code permission in order to be able to creaet the unmanaged memory representing the guid.
|
| - new SecurityPermission(SecurityPermissionFlag.UnmanagedCode).Demand();
|
| -
|
| - Guid guid = VSConstants.guidCOMPLUSLibrary;
|
| - IntPtr ptr = System.Runtime.InteropServices.Marshal.AllocCoTaskMem(guid.ToByteArray().Length);
|
| -
|
| - System.Runtime.InteropServices.Marshal.StructureToPtr(guid, ptr, false);
|
| - int returnValue = VSConstants.S_OK;
|
| - try
|
| - {
|
| - VSOBJECTINFO[] objInfo = new VSOBJECTINFO[1];
|
| -
|
| - objInfo[0].pguidLib = ptr;
|
| - objInfo[0].pszLibName = this.Url;
|
| -
|
| - IVsObjBrowser objBrowser = this.ProjectMgr.Site.GetService(typeof(SVsObjBrowser)) as IVsObjBrowser;
|
| -
|
| - ErrorHandler.ThrowOnFailure(objBrowser.NavigateTo(objInfo, 0));
|
| - }
|
| - catch(COMException e)
|
| - {
|
| - Trace.WriteLine("Exception" + e.ErrorCode);
|
| - returnValue = e.ErrorCode;
|
| - }
|
| - finally
|
| - {
|
| - if(ptr != IntPtr.Zero)
|
| - {
|
| - System.Runtime.InteropServices.Marshal.FreeCoTaskMem(ptr);
|
| - }
|
| - }
|
| -
|
| - return returnValue;
|
| - }
|
| -
|
| - protected override bool CanDeleteItem(__VSDELETEITEMOPERATION deleteOperation)
|
| - {
|
| - if(deleteOperation == __VSDELETEITEMOPERATION.DELITEMOP_RemoveFromProject)
|
| - {
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - protected abstract void BindReferenceData();
|
| -
|
| - #endregion
|
| - }
|
| -}
|
|
|