Share via


IVsUserContext Interface

Manages attributes and keywords (context and subcontext) in the context or subcontext bag.

Namespace:  Microsoft.VisualStudio.Shell.Interop
Assembly:  Microsoft.VisualStudio.Shell.Interop (in Microsoft.VisualStudio.Shell.Interop.dll)

Syntax

'Declaration
<GuidAttribute("761081DF-D45F-4683-9B9E-1B7241E56F5C")> _
<InterfaceTypeAttribute()> _
Public Interface IVsUserContext
[GuidAttribute("761081DF-D45F-4683-9B9E-1B7241E56F5C")]
[InterfaceTypeAttribute()]
public interface IVsUserContext
[GuidAttribute(L"761081DF-D45F-4683-9B9E-1B7241E56F5C")]
[InterfaceTypeAttribute()]
public interface class IVsUserContext
[<GuidAttribute("761081DF-D45F-4683-9B9E-1B7241E56F5C")>]
[<InterfaceTypeAttribute()>]
type IVsUserContext =  interface end
public interface IVsUserContext

The IVsUserContext type exposes the following members.

Methods

  Name Description
Public method AddAttribute Adds an attribute, lookup keyword, or F1 keyword to the context or subcontext bag.
Public method AddSubcontext Links a subcontext bag to a parent context bag.
Public method AdviseUpdate Enables clients to receive notification when the user context property bag is changed.
Public method CountAttributes Returns the number of attributes or keywords present in the context or subcontext bag.
Public method CountSubcontexts Returns the number of subcontext bags associated with the context bag.
Public method GetAttribute Returns the specified attribute or keyword from the context or subcontext bag based on index position or name.
Public method GetAttributePri Returns a specified attribute or keyword from the context or subcontext bag based on index position, name, or priority.
Public method GetAttrUsage Returns the type of context (attribute, lookup keyword, or F1 keyword) that is present at a specified index position in the context or subcontext bag.
Public method GetPriority Determines the priority of an attribute or keyword in the context or subcontext bag.
Public method GetSubcontext Returns a specified subcontext bag from the parent context bag.
Public method IsDirty Determines whether the user context has changed in the context or subcontext bag.
Public method RemoveAllSubcontext Removes all subcontext bags associated with the context bag.
Public method RemoveAttribute Removes an attribute or keyword from a context or subcontext bag.
Public method RemoveAttributeIncludeChildren Removes an attribute or keyword from the context bag and from any associated subcontext bags.
Public method RemoveSubcontext Removes the specified subcontext bag.
Public method SetDirty Flags the context or subcontext bag for update.
Public method UnadviseUpdate Disables clients from receiving notification of updates to the user context.
Public method Update Updates user context.

Top

Remarks

Context and subcontext are comprised of F1 keywords, lookup keywords, and attributes. Context and subcontext bags are COM objects (IVsUserContext objects) that are used to group keywords and attributes associated with a particular context provider. Context providers are environment components that are involved in selection, such as tool windows, editors, and language services. Subcontext is a selection within an editor, tool window or language service. Examples of subcontext elements include a key language term in a language service or a command in a tool window.

The context provider associates the context bag with the selection. The subcontext bag is a separate IVsUserContext object that is linked to the context bag. Because the context bag points to any subcontext bags that are linked to it, the keywords and attributes present in both the context and subcontext bags comprise the entire context for the component. The union of the context and subcontext bags for each context provider within the active selection describes the overall context in the environment at a particular time.

Before you can use the methods of IVsUserContext to manage the context bag, you first need to set up the environment component as a context provider by creating a context bag for it. To create a new context bag, call QueryService on the SVsMonitorUserContext service to get a pointer to the IVsMonitorUserContext interface. Once you have the pointer to this interface, call CreateEmptyContext to create a new context bag and to receive a pointer to IVsUserContext. You can then call the AddAttribute method to add attributes, lookup keywords, or F1 keywords to the context bag. Use this same procedure to create and populate a subcontext bag, and then call AddSubcontext to link the subcontext bag to the context bag.

Notes to Callers

Call this interface to add, remove, enumerate, or flag context and subcontext.

See Also

Reference

Microsoft.VisualStudio.Shell.Interop Namespace