如何:为 Windows 提供自动化

适用范围:yesVisual Studio noVisual Studio for Mac noVisual Studio Code

可以为文档和工具窗口提供自动化。 每当你想要使自动化对象在窗口上可用,并且环境尚未提供现成的自动化对象时,建议提供自动化,就像使用任务列表一样。

工具窗口自动化

环境通过返回标准 Window 对象,在工具窗口上提供自动化,如以下过程中所述:

  1. GetProperty使用 __VSFPROPID 通过 环境调用 方法。VSFPROPID_ExtWindowObject作为 VSFPROPID 参数来获取 Window 对象。

  2. 当调用方通过 Object为工具窗口请求特定于 VSPackage 的自动化对象时,环境会调用 QueryInterfaceIExtensibleObjectIVsExtensibleObjectIDispatch 接口。 和 IVsExtensibleObjectIExtensibleObject提供 方法GetAutomationObject

  3. 当环境随后调用 GetAutomationObject 传递 NULL的方法时,通过传回特定于 VSPackage 的对象进行响应。

  4. 如果调用 QueryInterfaceIExtensibleObjectIVsExtensibleObject 失败,则环境会为 IDispatch调用 QueryInterface

文档窗口的自动化

标准Document对象也可以从环境中使用,尽管编辑器可以通过实现 IExtensibleObject 接口和响应 GetAutomationObject来拥有自己的 对象的实现Document

此外,编辑器可以通过实现 IVsExtensibleObjectIExtensibleObject 接口来提供 VSPackage 特定的自动化对象,该对象通过 Object 方法检索。 VSSDK 示例提供 RTF 文档特定的自动化对象。

另请参阅