How to: Provide Context for a Tool Window
To implement context-sensitive Help, you must create a context bag that stores metadata for a particular environment component, such as a tool window. The procedure below receives a pointer to the context bag already created on the IVsWindowFrame object. For more information, see How to: Create a Context Bag or Subcontext Bag. Follow the steps to manage context for a tool window.
To manage context for a tool window
This returns a variant.
Cast the returned variant to a IVsUserContext interface.
You can use the following sample code.
VARIANT v; IVsWindowFrame::GetProperty(VSFPROPID_UserContext, &v); IUnknown* pUnk; IVsUserContext* pContext; pUnk = v.pUnkVal; pUnk -> QI(IID_IVsUserContext, &pContext);
For tool windows, you should update the context bag as frequently as context changes in the window.
Following is a recommended schema for attributes and keywords:
Supply one generic keyword topic for the tool window.
For this option, use an F1 keyword that is unique to the tool window.
Supply one topic for the tool window and one for a selection or command within the tool window.
This option is used for a tool window that includes a selection or command for which you want to supply F1 Help. An example of such a tool window is the Command window. In this instance, use a general keyword for the command window and specific keywords for the commands. The keyword for the command window is added to the tool window's context bag, while the keyword for the command is added to the tool window's subcontext bag.
Attributes are generally not added for a tool window.