为窗口提供自动化

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

工具窗口自动化

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

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

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

  3. 然后,当环境调用 GetAutomationObject 方法传递 NULL时,通过传递 VSPackage 特定的对象来响应。

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

文档窗口的自动化

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

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