How to: Provide automation for windows
Applies to: Visual Studio Visual Studio for Mac
Note
This article applies to Visual Studio 2017. If you're looking for the latest Visual Studio documentation, see Visual Studio documentation. We recommend upgrading to the latest version of Visual Studio. Download it here
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.