[This is preliminary documentation and subject to change.]
The Server sample application (Server.exe) was written purposely to be inaccessible. It does, however, expose the Active Accessibility interface to allow a client to operate it. It takes left mouse clicks to select an object from the dialog box's choices of icons. There are no menu choices. If the #define KEYBOARD_SUPPORT is used, then the left and right arrows are enabled, along with the spacebar.
Note: A server application developer should have what parent-child reciprocity : While Parent A's child is Child X (obtained by ::accNavigate NAVDIR_FIRSTCHILD or NAVDIR_LASTCHILD, or ::accChild), and while ::accParent on Child X is Parent B, Parent A is expected to equal Parent B.
Server application developers must remember to eliminate sending redundant messages to client applications, because this is a major performance issue If a control is constantly being updated, a EVENT_OBJECT_VALUECHANGE or EVENT_OBJECT_STATECHANGE should only be sent if the value or state is different that the previous value. For example, if text field repaints every second, the EVENT_OBJECT_VALUECHANGE should only be sent when the actual contents change, not each second.
In addition to Server's executable file, the SDK includes the sample's source code, header files, and Microsoft® Visual C++® project workspace files. This tutorial sequentially discusses the tasks that Server performs and, in doing so, presents the basic information you need to develop your own Active Accessibility server application.
The tutorial contains the following steps.
Additionally, the following topic contains background information.