Provide automation for windows
You can provide automation for document and tool windows. Providing automation is advisable whenever you want to make automation objects available on a window, and the environment does not already provide a ready-made automation object, as it does with a task list.
Automation for tool windows
The environment provides automation on a tool window by returning a standard Window object as explained in the following procedure:
Call the GetProperty method via the environment with __VSFPROPID.VSFPROPID_ExtWindowObject as
VSFPROPID
parameter to get theWindow
object.When a caller requests a VSPackage-specific automation object for your tool window through Object, the environment calls
QueryInterface
forIExtensibleObject
, IVsExtensibleObject, or theIDispatch
interfaces. BothIExtensibleObject
andIVsExtensibleObject
provide a GetAutomationObject method.When the environment then calls the
GetAutomationObject
method passingNULL
, respond by passing back your VSPackage-specific object.If calling
QueryInterface
forIExtensibleObject
andIVsExtensibleObject
fails, then the environment callsQueryInterface
forIDispatch
.
Automation for document windows
A standard Document object is also available from the environment, although an editor can have its own implementation of the Document object by implementing IExtensibleObject
interface and responding to GetAutomationObject
.
In addition, an editor can provide a VSPackage-specific automation object, retrieved through the Object method, by implementing the IVsExtensibleObject
or IExtensibleObject
interfaces. The VSSDK samples contributes an RTF document-specific automation object.