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