|
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
namespace System.Windows.Forms;
/// <summary>
/// Specifies events that are reported by accessible applications.
/// </summary>
public enum AccessibleEvents
{
/// <summary>
/// <c>EVENT_SYSTEM_SOUND</c>
/// Sent when a sound is played. Currently nothing is generating this, we
/// are going to be cleaning up the SOUNDSENTRY feature in the control panel
/// and will use this at that time. Applications implementing WinEvents
/// are perfectly welcome to use it. Clients of IAccessible* will simply
/// turn around and get back a non-visual object that describes the sound.
/// </summary>
SystemSound = 0x0001,
/// <summary>
/// <c>EVENT_SYSTEM_ALERT</c>
/// Sent when an alert needs to be given to the user. MessageBoxes generate
/// alerts for example.
/// </summary>
SystemAlert = 0x0002,
/// <summary>
/// <c>EVENT_SYSTEM_FOREGROUND</c>
/// Sent when the foreground (active) window changes, even if it is changing
/// to another window in the same thread as the previous one.
/// </summary>
SystemForeground = 0x0003,
/// <summary>
/// <c>EVENT_SYSTEM_MENUSTART</c>
/// Sent when entering into menu mode (system, app bar, and track popups).
/// </summary>
/// <seealso cref="SystemMenuEnd"/>.
SystemMenuStart = 0x0004,
/// <summary>
/// <c>EVENT_SYSTEM_MENUEND</c>
/// Sent when leaving from menu mode (system, app bar, and track popups).
/// </summary>
/// <seealso cref="SystemMenuStart"/>.
SystemMenuEnd = 0x0005,
/// <summary>
/// <c>EVENT_SYSTEM_MENUPOPUPSTART</c>
/// Sent when a menu popup comes up.
/// </summary>
/// <remarks>
/// <para>
/// <seealso cref="SystemMenuPopupEnd"/> is the matching end event.
/// </para>
/// <para>
/// For a call to TrackPopupMenu(), a client will see <c>EVENT_SYSTEM_MENUSTART</c>
/// followed almost immediately by <c>EVENT_SYSTEM_MENUPOPUPSTART</c> for the popup being shown.
/// </para>
/// </remarks>
/// <seealso cref="SystemMenuPopupEnd"/>.
SystemMenuPopupStart = 0x0006,
/// <summary>
/// <c>EVENT_SYSTEM_MENUPOPUPEND</c>
/// Sent when a menu popup just before it is taken down.
/// </summary>
/// <remarks>
/// <para>
/// <seealso cref="SystemMenuPopupStart"/> is the matching start event.
/// </para>
/// <para>
/// For a call to TrackPopupMenu(), a client will see <c>EVENT_SYSTEM_MENUSTART</c>
/// followed almost immediately by <c>EVENT_SYSTEM_MENUPOPUPSTART</c> for the popup being shown.
/// </para>
/// </remarks>
SystemMenuPopupEnd = 0x0007,
/// <summary>
/// <c>EVENT_SYSTEM_CAPTURESTART</c>
/// Sent when a window takes the capture.
/// </summary>
/// <seealso cref="SystemCaptureEnd"/>.
SystemCaptureStart = 0x0008,
/// <summary>
/// <c>EVENT_SYSTEM_CAPTUREEND</c>
/// Sent when a window releases the capture.
/// </summary>
/// <seealso cref="SystemCaptureStart"/>.
SystemCaptureEnd = 0x0009,
/// <summary>
/// <c>EVENT_SYSTEM_MOVESIZESTART</c>
/// Sent when a window enters move-size dragging mode.
/// </summary>
/// <seealso cref="SystemMoveSizeEnd"/>.
SystemMoveSizeStart = 0x000A,
/// <summary>
/// <c>EVENT_SYSTEM_MOVESIZEEND</c>
/// Sent when a window leaves move-size dragging mode.
/// </summary>
/// <seealso cref="SystemMoveSizeStart"/>.
SystemMoveSizeEnd = 0x000B,
/// <summary>
/// <c>EVENT_SYSTEM_CONTEXTHELPSTART</c>
/// Sent when a window enters context sensitive help mode.
/// </summary>
/// <seealso cref="SystemContextHelpEnd"/>.
SystemContextHelpStart = 0x000C,
/// <summary>
/// <c>EVENT_SYSTEM_CONTEXTHELPEND</c>
/// Sent when a window leaves context sensitive help mode.
/// </summary>
/// <seealso cref="SystemContextHelpStart"/>.
SystemContextHelpEnd = 0x000D,
/// <summary>
/// <c>EVENT_SYSTEM_DRAGDROPSTART</c>
/// Sent when a window enters drag drop mode.
/// </summary>
/// <remarks>
/// <para>
/// <seealso cref="SystemDragDropEnd"/> is the matching end event.
/// </para>
/// <para>
/// It is up to apps and OLE to generate this, since the system doesn't know.
/// Like <c>EVENT_SYSTEM_SOUND</c>, it will be a while before this is prevalent.
/// </para>
/// </remarks>
SystemDragDropStart = 0x000E,
/// <summary>
/// <c>EVENT_SYSTEM_DRAGDROPEND</c>
/// Sent when a window leaves drag drop mode.
/// </summary>
/// <remarks>
/// <para>
/// <seealso cref="SystemDragDropStart"/> is the matching start event.
/// </para>
/// <para>
/// It is up to apps and OLE to generate this, since the system doesn't know.
/// Like <c>EVENT_SYSTEM_SOUND</c>, it will be a while before this is prevalent.
/// </para>
/// </remarks>
/// <seealso cref="SystemDragDropStart"/>.
SystemDragDropEnd = 0x000F,
/// <summary>
/// <c>EVENT_SYSTEM_DIALOGSTART</c>
/// Sent when a dialog comes up.
/// </summary>
/// <seealso cref="SystemDialogEnd"/>.
SystemDialogStart = 0x0010,
/// <summary>
/// <c>EVENT_SYSTEM_DIALOGEND</c>
/// Sent when a dialog just before it goes away.
/// </summary>
/// <seealso cref="SystemDialogStart"/>.
SystemDialogEnd = 0x0011,
/// <summary>
/// <c>EVENT_SYSTEM_SCROLLINGSTART</c>
/// Sent when beginning the tracking of a scrollbar in a window, and also for scrollbar controls.
/// </summary>
/// <seealso cref="SystemScrollingEnd"/>.
SystemScrollingStart = 0x0012,
/// <summary>
/// <c>EVENT_SYSTEM_SCROLLINGEND</c>
/// Sent when ending the tracking of a scrollbar in a window, and also for scrollbar controls.
/// </summary>
/// <seealso cref="SystemScrollingStart"/>.
SystemScrollingEnd = 0x0013,
/// <summary>
/// <c>EVENT_SYSTEM_SWITCHSTART</c>
/// Sent when beginning alt-tab mode with the switch window.
/// </summary>
/// <seealso cref="SystemSwitchEnd"/>.
SystemSwitchStart = 0x0014,
/// <summary>
/// <c>EVENT_SYSTEM_SWITCHEND</c>
/// Sent when ending alt-tab mode with the switch window.
/// </summary>
/// <seealso cref="SystemSwitchStart"/>.
SystemSwitchEnd = 0x0015,
/// <summary>
/// <c>EVENT_SYSTEM_MINIMIZESTART</c>
/// Sent when a window minimizes and just before it restores.
/// </summary>
/// <seealso cref="SystemMinimizeEnd"/>.
SystemMinimizeStart = 0x0016,
/// <summary>
/// <c>EVENT_SYSTEM_MINIMIZED</c>
/// Sent when a window minimizes and just before it restores.
/// </summary>
/// <seealso cref="SystemMinimizeStart"/>.
SystemMinimizeEnd = 0x0017,
// Object events
//
// The system AND apps generate these. The system generates these for
// real windows. Apps generate these for objects within their window which
// act like a separate control, e.g. an item in a list view.
//
// For all events, if you want detailed accessibility information, callers
// should
// * Call AccessibleObjectFromWindow() with the hwnd, idObject parameters
// of the event, and IID_IAccessible as the REFIID, to get back an
// IAccessible* to talk to
// * Initialize and fill in a VARIANT as VT_I4 with lVal the idChild
// parameter of the event.
// * If idChild isn't zero, call get_accChild() in the container to see
// if the child is an object in its own right. If so, you will get
// back an IDispatch* object for the child. You should release the
// parent, and call QueryInterface() on the child object to get its
// IAccessible*. Then you talk directly to the child. Otherwise,
// if get_accChild() returns you nothing, you should continue to
// use the child VARIANT. You will ask the container for the properties
// of the child identified by the VARIANT. In other words, the
// child in this case is accessible but not a full object.
// Like a button on a titlebar which is 'small' and has no children.
/// <summary>
/// <c>EVENT_OBJECT_CREATE</c>
/// Sent when an object has been created.
/// The system sends this event for the following user interface elements:
/// caret, header control, list-view control, tab control, toolbar control, tree view control,
/// and window object. Server applications send this event for their accessible objects.
/// </summary>
Create = 0x8000, // hwnd + ID + idChild is created item
/// <summary>
/// <c>EVENT_OBJECT_DESTROY</c>
/// Sent when an object has been destroyed.
/// The system sends this event for the following user interface elements:
/// caret, header control, list-view control, tab control, toolbar control, tree view control,
/// and window object. Server applications send this event for their accessible objects.
/// </summary>
Destroy = 0x8001, // hwnd + ID + idChild is destroyed item
/// <summary>
/// <c>EVENT_OBJECT_SHOW</c>
/// Sent when a hidden object is shown.
/// The system sends this event for the following user interface elements:
/// caret, cursor, and window object. Server applications send this event for their accessible objects.
/// Clients assume that when this event is sent by a parent object, all child objects are already displayed.
/// Therefore, server applications do not send this event for the child objects.
/// </summary>
Show = 0x8002, // hwnd + ID + idChild is shown item
/// <summary>
/// <c>EVENT_OBJECT_HIDE</c>
/// Sent when an object is hidden.
/// The system sends this event for the following user interface elements: caret and cursor.
/// Server applications send this event for their accessible objects.
/// When this event is generated for a parent object, all child objects are already hidden.
/// Server applications do not send this event for the child objects.
/// </summary>
Hide = 0x8003, // hwnd + ID + idChild is hidden item
/// <summary>
/// <c>EVENT_OBJECT_REORDER</c>
/// Sent when a container object has added, removed, or reordered its children.
/// The system sends this event for the following user interface elements:
/// header control, list-view control, toolbar control, and window object.
/// Server applications send this event as appropriate for their accessible objects.
/// </summary>
Reorder = 0x8004, // hwnd + ID + idChild is parent of zordering children
/// <summary>
/// Minimize the number of notifications!
/// When you are hiding a parent object, obviously all child objects are no
/// longer visible on screen. They still have the same "visible" status,
/// but are not truly visible. Hence do not send HIDE notifications for the
/// children also. One implies all. The same goes for SHOW.
/// </summary>
Focus = 0x8005, // hwnd + ID + idChild is focused item
Selection = 0x8006, // hwnd + ID + idChild is selected item (if only one), or idChild is OBJID_WINDOW if complex
SelectionAdd = 0x8007, // hwnd + ID + idChild is item added
SelectionRemove = 0x8008, // hwnd + ID + idChild is item removed
SelectionWithin = 0x8009, // hwnd + ID + idChild is parent of changed selected items
/// <summary>
/// There is only one "focused" child item in a parent. This is the place
/// keystrokes are going at a given moment. Hence only send a notification
/// about where the NEW focus is going. A NEW item getting the focus already
/// implies that the OLD item is losing it.
///
/// SELECTION however can be multiple. Hence the different SELECTION
/// notifications. Here's when to use each:
///
/// (1) Send a SELECTION notification in the simple single selection
/// case (like the focus) when the item with the selection is
/// merely moving to a different item within a container. hwnd + ID
/// is the container control, idChildItem is the new child with the
/// selection.
///
/// (2) Send a SELECTIONADD notification when a new item has simply been added
/// to the selection within a container. This is appropriate when the
/// number of newly selected items is very small. hwnd + ID is the
/// container control, idChildItem is the new child added to the selection.
///
/// (3) Send a SELECTIONREMOVE notification when a new item has simply been
/// removed from the selection within a container. This is appropriate
/// when the number of newly selected items is very small, just like
/// SELECTIONADD. hwnd + ID is the container control, idChildItem is the
/// new child removed from the selection.
///
/// (4) Send a SELECTIONWITHIN notification when the selected items within a
/// control have changed substantially. Rather than propagate a large
/// number of changes to reflect removal for some items, addition of
/// others, just tell somebody who cares that a lot happened. It will
/// be faster an easier for somebody watching to just turn around and
/// query the container control what the new bunch of selected items
/// are.
/// </summary>
StateChange = 0x800A, // hwnd + ID + idChild is item w/ state change
LocationChange = 0x800B, // hwnd + ID + idChild is moved/sized item
NameChange = 0x800C, // hwnd + ID + idChild is item w/ name change
DescriptionChange = 0x800D, // hwnd + ID + idChild is item w/ desc change
ValueChange = 0x800E, // hwnd + ID + idChild is item w/ value change
ParentChange = 0x800F, // hwnd + ID + idChild is item w/ new parent
HelpChange = 0x8010, // hwnd + ID + idChild is item w/ help change
DefaultActionChange = 0x8011, // hwnd + ID + idChild is item w/ def action change
AcceleratorChange = 0x8012, // hwnd + ID + idChild is item w/ keybd accel change
}
|