您可以為文件和工具視窗提供自動化。 每當您想要在視窗上提供自動化物件,而環境尚未提供現成的自動化物件 (如工作清單),就建議提供自動化。
工具視窗的自動化
環境透過傳回標準 Window 物件,在工具視窗上提供自動化,如以下程序所述:
使用 __VSFPROPID.VSFPROPID_ExtWindowObject 為
VSFPROPID參數,透過環境呼叫 GetProperty 方法取得Window物件。當呼叫者透過 Object 向工具視窗要求 VSPackage 特定的自動化物件時,環境會呼叫
QueryInterface取得IExtensibleObject、IVsExtensibleObject 或IDispatch介面。IExtensibleObject和IVsExtensibleObject都提供 GetAutomationObject 方法。當環境接著呼叫傳遞
NULL的GetAutomationObject方法時,會透過傳回 VSPackage 特定物件進行回應。如果為
IExtensibleObject和IVsExtensibleObject呼叫QueryInterface失敗,則環境會為IDispatch呼叫QueryInterface。
文件視窗的自動化
環境也提供一個標準的 Document 物件,不過編輯器可以透過實作 IExtensibleObject 介面和回應 GetAutomationObject 來實作自己的 Document 物件。
此外,編輯器可以藉由實作 IVsExtensibleObject 或 IExtensibleObject 介面,提供透過 Object 方法檢索的 VSPackage 特定自動化物件。 VSSDK 範例提供 RTF 文件特定的自動化物件。