FlavoredProjectBase 类

定义

作为内部项目的子类型/风格的项目。

public ref class FlavoredProjectBase abstract : IServiceProvider, Microsoft::VisualStudio::OLE::Interop::IOleCommandTarget, Microsoft::VisualStudio::Shell::Flavor::IVsAggregatableProjectCorrected, Microsoft::VisualStudio::Shell::Interop::IVsUIHierarchy
public abstract class FlavoredProjectBase : IServiceProvider, Microsoft.VisualStudio.OLE.Interop.IOleCommandTarget, Microsoft.VisualStudio.Shell.Flavor.IVsAggregatableProjectCorrected, Microsoft.VisualStudio.Shell.Interop.IVsUIHierarchy
type FlavoredProjectBase = class
    interface IVsAggregatableProjectCorrected
    interface IServiceProvider
    interface IVsHierarchy
    interface IVsUIHierarchy
    interface IOleCommandTarget
Public MustInherit Class FlavoredProjectBase
Implements IOleCommandTarget, IServiceProvider, IVsAggregatableProjectCorrected, IVsUIHierarchy
继承
FlavoredProjectBase
实现

注解

所有方法的默认行为是委托给内部项目。 对于要更改的任何行为,只需自行处理请求。

serviceProvider 尝试加载项目之前,必须设置此类的字段。

构造函数

FlavoredProjectBase()

初始化 FlavoredProjectBase 的新实例。

字段

_innerOleCommandTarget

内部命令目标。

_innerVsAggregatableProject

可聚合项目。

_innerVsHierarchy

内部层次结构。

_innerVsUIHierarchy

内部 UI 层次结构。

serviceProvider

服务提供程序。

方法

AdviseHierarchyEvents(IVsHierarchyEvents)

建议层次结构事件。

Close()

关闭层次结构。

ExecCommand(UInt32, Guid, UInt32, UInt32, IntPtr, IntPtr)

执行指定的命令。

FreeInterfaces()

释放构成层次结构的不同对象。

GetCanonicalName(UInt32, String)

获取指定元素的规范名称。

GetComInterface<Interface_T>()

派生自此基类的项目将使用本机 COM 组件进行聚合, (在 flavoring 的情况下,还可以聚合内部项目的 ProjectAggregator) 对象。

GetGuidProperty(UInt32, Int32)

获取指定项的 GUID。

GetNestedHierarchy(UInt32, Guid, IntPtr, UInt32)

获取嵌套的项目。

GetProperty(UInt32, Int32, Object)
GetSite()
InitializeForOuter(String, String, String, UInt32, Guid, Boolean)

允许项目初始化自身。 此时,可以调用内部项目。 此方法还允许取消项目创建过程。

OnAggregationComplete()

当聚合中的所有对象都已收到 InitializeForOuter 调用时,将调用此项。 此时聚合已完成,并且完全正常运行。

ParseCanonicalName(String, UInt32)
QueryClose()
QueryStatusCommand(UInt32, Guid, UInt32, OLECMD[], IntPtr)
SetGuidProperty(UInt32, Int32, Guid)
SetInnerProject(IntPtr)

对于内部对象上的接口,这是所有 QI,然后将 InitializeForOuter 调用以执行实际初始化

SetProperty(UInt32, Int32, Object)
UnadviseHierarchyEvents(UInt32)
Unused0()
Unused1()
Unused2()
Unused3()
Unused4()

事件

DirectoryAdded

在将目录添加到此项目后调用。

DirectoryRemoved

从此项目中移除目录后调用。

DirectoryRenamed

在此项目中重命名目录后调用。

FileAdded

在将文件添加到此项目后调用。

FileRemoved

从此项目中移除文件后调用。

FileRenamed

在此项目中重命名文件后调用。

SccStatusChanged

在此项目中的文件的源代码管理状态更改后调用。

显式接口实现

IOleCommandTarget.Exec(Guid, UInt32, UInt32, IntPtr, IntPtr)
IOleCommandTarget.QueryStatus(Guid, UInt32, OLECMD[], IntPtr)
IServiceProvider.GetService(Type)
IVsAggregatableProjectCorrected.GetAggregateProjectTypeGuids(String)

这必须 delegetated 到最内部的项目

IVsAggregatableProjectCorrected.InitializeForOuter(String, String, String, UInt32, Guid, IntPtr, Int32)

在此处进行初始化 (例如从项目加载特定于口味的信息)

IVsAggregatableProjectCorrected.OnAggregationComplete()

当聚合中的所有对象都已收到 InitializeForOuter 调用时,将调用此项。 此时聚合已完成,并且完全正常运行。

IVsAggregatableProjectCorrected.SetAggregateProjectTypeGuids(String)

这必须委托给最内层的项目

IVsAggregatableProjectCorrected.SetInnerProject(IntPtr)

这是内部对象上的接口的所有 QI 应发生的位置,然后将 "内部项目等待" 设置为调用 InitializeForOuter 来执行实际初始化

IVsHierarchy.AdviseHierarchyEvents(IVsHierarchyEvents, UInt32)
IVsHierarchy.Close()
IVsHierarchy.GetCanonicalName(UInt32, String)
IVsHierarchy.GetGuidProperty(UInt32, Int32, Guid)
IVsHierarchy.GetNestedHierarchy(UInt32, Guid, IntPtr, UInt32)
IVsHierarchy.GetProperty(UInt32, Int32, Object)
IVsHierarchy.GetSite(IServiceProvider)
IVsHierarchy.ParseCanonicalName(String, UInt32)
IVsHierarchy.QueryClose(Int32)
IVsHierarchy.SetGuidProperty(UInt32, Int32, Guid)
IVsHierarchy.SetProperty(UInt32, Int32, Object)
IVsHierarchy.SetSite(IServiceProvider)
IVsHierarchy.UnadviseHierarchyEvents(UInt32)
IVsHierarchy.Unused0()
IVsHierarchy.Unused1()
IVsHierarchy.Unused2()
IVsHierarchy.Unused3()
IVsHierarchy.Unused4()
IVsUIHierarchy.AdviseHierarchyEvents(IVsHierarchyEvents, UInt32)
IVsUIHierarchy.Close()
IVsUIHierarchy.ExecCommand(UInt32, Guid, UInt32, UInt32, IntPtr, IntPtr)
IVsUIHierarchy.GetCanonicalName(UInt32, String)
IVsUIHierarchy.GetGuidProperty(UInt32, Int32, Guid)
IVsUIHierarchy.GetNestedHierarchy(UInt32, Guid, IntPtr, UInt32)
IVsUIHierarchy.GetProperty(UInt32, Int32, Object)
IVsUIHierarchy.GetSite(IServiceProvider)
IVsUIHierarchy.ParseCanonicalName(String, UInt32)
IVsUIHierarchy.QueryClose(Int32)
IVsUIHierarchy.QueryStatusCommand(UInt32, Guid, UInt32, OLECMD[], IntPtr)
IVsUIHierarchy.SetGuidProperty(UInt32, Int32, Guid)
IVsUIHierarchy.SetProperty(UInt32, Int32, Object)
IVsUIHierarchy.SetSite(IServiceProvider)
IVsUIHierarchy.UnadviseHierarchyEvents(UInt32)
IVsUIHierarchy.Unused0()
IVsUIHierarchy.Unused1()
IVsUIHierarchy.Unused2()
IVsUIHierarchy.Unused3()
IVsUIHierarchy.Unused4()

扩展方法

IsCapabilityMatch(IVsHierarchy, String)

检查给定的项目是否与 AppliesTo 表达式中规定的要求匹配。

EnumImportingProjects(IVsHierarchy)

枚举所有正在导入由给定共享项目层次结构拥有的共享资产的项目。

EnumOwningProjectsOfSharedAssets(IVsHierarchy)

枚举所有拥有和管理给定项目所导入的共享资产的共享项目。

GetActiveProjectContext(IVsHierarchy)

获取活动项目上下文。

GetSharedItemsImportFullPaths(IVsHierarchy)

获取给定项目导入的共享 "projitems" 文件的完整路径。

IsProjectImportingSharedAssets(IVsHierarchy)

给定的项目是否正在导入共享资产?

IsSharedAssetsProject(IVsHierarchy)

给定的项目是否为共享项目?

SetActiveProjectContext(IVsHierarchy, IVsHierarchy)

设置活动项目上下文。

适用于