為視窗提供自動化
您可以為文件和工具視窗提供自動化。 每當您想要在視窗上提供自動化物件,而環境尚未提供現成的自動化物件 (如工作清單),就建議提供自動化。
工具視窗的自動化
環境透過傳回標準 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 文件特定的自動化物件。