托管 Vspackage 可以使用自动化通过添加 选项 页扩展 (IDE) Visual Studio 集成开发环境 (ide) 工具 菜单。
工具选项 页基本上是用户控件以及与其他用户控件那样代码。 通常,会使用一个 Visual Studio IDE 的设计器创建对象并将用户控件。
备注
作为对话框中实现的工具选项 页,使用 DialogProc 处理 windows 消息,必须是无模式对话框,因此不能调用 EndDialog 功能。
您应使用 VSPackage 提供给环境支持用户控件属性的自动化对象。
自动为 " 工具选项 " 页支持实现与互操作程序集
若要支持自动化模型, VSPackage 必须创建并注册自动化对象。 有关更多信息,请参见提供自动化为 Vspackage。
当使用自动化模型中的代码调用特定 工具选项 页的特性集合 DTE.Properties , IDE 使用 GetAutomationObject 的 VSPackage 中实现提供的自动化对象返回集合和允许访问其构成 Property 对象的访问。
(VSPackage 中支持多个自动化对象),请注意GetAutomationObject 返回的自动化对象取决于提供的 GUID。 有关实现自动化对象的更多信息,请参见 自动为选项卡页支持。
工具选项 页由两个标识符指定。 第一个标识符是指示包含在 工具 菜单的 选项 部分的项目文件夹的字符串。 第二个标识符是指示在文件夹的特定项的字符串。 有关更多信息,请参见 使用选项卡页。
两个注册表项需要注册自动化对象:
在 HKEY_LOCAL_MACHINE \SOFTWARE\Microsoft\VisualStudio \<release \ PackageGUID \Automation 下 \Packages
在 HKEY_LOCAL_MACHINE \Version\AutomationProperties 下 \SOFTWARE\Microsoft\VisualStudio
其中 <Version> 是 Visual Studio 的版本 (如 8.0) 和 <PackageGUID> 是实现自动化对象 VSPackage 的 GUID。
根据 AutomationProperties 注册表项下的配置,当用户在 工具 菜单时,的 导入/导出设置 命令, 工具选项 页面的状态可以通过 Visual Studio 设置结构自动保存和还原。 有关保存 工具选项 页导航的更多信息,请参见 注册自定义选项卡页。
应用程序可能无法使用自动化模型实现 工具选项 页的属性和设置的支持。
这可能出于多种原因是所需的:
工具选项 页处理的设置是复杂在结构相比相对简单的自动化属性模型支持。
需要阻止其他应用程序编程方式管理其 工具选项 页。
需要特殊访问控件或安全功能。
在这些情况下, Vspackage 可以实现 工具选项 页既适用于支持。 但是,它们必须:
柄 工具选项 页的属性。
通过 Visual Studio 组托管 工具选项 页状态持久性。
对于其他应用程序使用 工具选项 页提供一个 API,如果需要,。
字体和颜色 对话框的属性不能通过自动化模型中修改 工具选项 页的示例。 相反,单独的 API 基于 IVsFontAndColorDefaults 接口提供,它允许 字体和颜色工具选项 页的编程方式处理。 有关控件 字体和颜色工具选项 页的更多信息,请参见 字体。
自动为 " 工具选项 " 页在托管包范围内支持
设置实现的注册 ProvideOptionPageAttribute 实例的 SupportsAutomation 属性指示 工具选项 页的一个托管包 framework 基础实现支持自动化。
从 DialogPage 派生的工具选项 页提供的默认自动化对象,可以重写。
如果 工具选项 页面实现不支持自动化,则实现必须提供自己的 API 允许访问 工具选项 页的编程访问。
备注
IDE 的 字体和颜色 页不支持自动化 工具选项 页的示例,但是,通过自己的 API 提供对 工具选项 页。有关更多信息,请参见 字体。