如何:为 Windows 提供自动化
适用范围:Visual Studio
Visual Studio for Mac
Visual Studio Code
可以为文档和工具窗口提供自动化。 每当你想要使自动化对象在窗口上可用,并且环境尚未提供现成的自动化对象时,建议提供自动化,就像使用任务列表一样。
工具窗口自动化
环境通过返回标准 Window 对象,在工具窗口上提供自动化,如以下过程中所述:
GetProperty使用 __VSFPROPID 通过 环境调用 方法。VSFPROPID_ExtWindowObject作为
VSFPROPID
参数来获取Window
对象。当调用方通过 Object为工具窗口请求特定于 VSPackage 的自动化对象时,环境会调用
QueryInterface
IExtensibleObject
、 IVsExtensibleObject或IDispatch
接口。 和IVsExtensibleObject
都IExtensibleObject
提供 方法GetAutomationObject。当环境随后调用
GetAutomationObject
传递NULL
的方法时,通过传回特定于 VSPackage 的对象进行响应。如果调用
QueryInterface
IExtensibleObject
和IVsExtensibleObject
失败,则环境会为IDispatch
调用QueryInterface
。
文档窗口的自动化
标准Document对象也可以从环境中使用,尽管编辑器可以通过实现 IExtensibleObject
接口和响应 GetAutomationObject
来拥有自己的 对象的实现Document。
此外,编辑器可以通过实现 IVsExtensibleObject
或 IExtensibleObject
接口来提供 VSPackage 特定的自动化对象,该对象通过 Object 方法检索。 VSSDK 示例提供 RTF 文档特定的自动化对象。