/*************************************************************************** Copyright (c) Microsoft Corporation. All rights reserved. This code is licensed under the Visual Studio SDK license terms. THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT. ***************************************************************************/ using System; using System.Diagnostics.CodeAnalysis; using System.Runtime.InteropServices; using Microsoft.VisualStudio; using Microsoft.VisualStudio.Shell.Interop; namespace Microsoft.VisualStudio.Project.Automation { [SuppressMessage("Microsoft.Interoperability", "CA1405:ComVisibleTypeBaseTypesShouldBeComVisible")] [ComVisible(true), CLSCompliant(false)] public class OANestedProjectItem : OAProjectItem { #region fields EnvDTE.Project nestedProject; #endregion #region ctors public OANestedProjectItem(OAProject project, NestedProjectNode node) : base(project, node) { if (node == null) { throw new ArgumentNullException("node"); } object nestedproject; if(ErrorHandler.Succeeded(node.NestedHierarchy.GetProperty(VSConstants.VSITEMID_ROOT, (int)__VSHPROPID.VSHPROPID_ExtObject, out nestedproject))) { this.nestedProject = nestedproject as EnvDTE.Project; } } #endregion #region overridden methods /// /// Returns the collection of project items defined in the nested project /// public override EnvDTE.ProjectItems ProjectItems { get { if(this.nestedProject != null) { return this.nestedProject.ProjectItems; } return null; } } /// /// Returns the nested project. /// public override EnvDTE.Project SubProject { get { return this.nestedProject; } } #endregion } }