HOW TO: Write a Simple Active Accessibility Client by Using Visual Basic (315519)
The information in this article applies to:
- Microsoft Visual Basic Enterprise Edition for Windows 6.0
- Microsoft Internet Explorer 4.x (40-bit and 128-bit)
This article was previously published under Q315519 SUMMARY
This article describes how to get started with Microsoft Active Accessibility Software Development Kit (SDK) and how to write a simple demonstration client application for Active Accessibility by using Visual Basic 6.0.
back to the top
Requirements
The following list outlines the recommended hardware, software, network infrastructure, and service packs that are required:
- Microsoft Visual Basic 6.0
- Microsoft Internet Explorer 4.01 or later
- Microsoft Active Accessibility SDK 1.3
This article assumes that you are familiar with Visual Basic 6.0 programming.
back to the top
Create a Test HTML Document
In this section, you create a simple Hypertext Markup Language (HTML) document that can be displayed in Microsoft Internet Explorer. Internet Explorer is an Active Accessibility server, which means that Internet Explorer exposes information to Active Accessibility clients.
- Open a text editor such as Notepad, and then add the following HTML code:
<HTML>
<HEAD>
<TITLE>Sample Page</TITLE>
</HEAD>
<BODY>
<TABLE>
<THEAD>
<TH>Month</TH><TH>Amount</TH>
</THEAD>
<TR>
<TD>Jan</TD><TD>$10.00</TD>
</TR>
<TR>
<TD>Feb</TD><TD>$30.00</TD>
</TR>
<TR>
<TD>Mar</TD><TD>$5.00</TD>
</TR>
</TABLE>
<HR>
Amount owed: <SPAN STYLE="color:red">$45.00</SPAN>.
</BODY>
</HTML>
- Save this file as AADemo.htm.
back to the top
Create a Test Application in Visual Basic 6.0
In this section, you create a Visual Basic application to display data. This application uses the following Win32 application programming interface (API) functions to display the data:
- GetCursorPos. This function retrieves the position of the pointer in screen coordinates.
- SetCursorPos. This function moves the pointer to a position that you specify.
- SetWindowPos. This function manipulates the size and the position of a window.
- AccessibleObjectFromPoint. This function retrieves the IAccessible interface pointer of the object at the position that you specify. You use the IAccessible interface to obtain information about the user interface of the object and the data that the object contains.
To create this Visual Basic application, follow these steps:
- Start Visual Basic 6.0, and then create a new Standard EXE project. By default, Form1 is added to the project.
- Add a Timer control to Form1. By default, the control is named Timer1. Set the Interval property of Timer1 to 1000.
- On the Project menu, click Add Form. In the Add Form dialog box, click Form, and then click Open. This adds a new form named Form2 to the project.
- Set the following properties for Form2:
- Set the BorderStyle property to 1 - Fixed Single.
- Set the Caption property to an empty string.
- Set the ControlBox property to False.
- Set the Height property to 600.
- Set the Font property to use a size of 14 points.
- In Project Explorer, right-click Form1, and then click View Code. Add the following statement to the beginning of the code:
Option Explicit
- Add the following code to declare useful constants for your application:
Private Const HWND_TOP As Integer = 0
Private Const HWND_BOTTOM As Integer = 1
Private Const HWND_TOPMOST As Integer = -1
Private Const HWND_NOTOPMOST As Integer = -2
Private Const SWP_NOSIZE As Integer = 1
Private Const SWP_NOMOVE As Integer = 2
- Add the following type definition to represent an (x, y) point on the screen:
Private Type POINTAPI
x As Long
y As Long
End Type
- Add the following code to declare entry points in the Windows API:
Private Declare Function GetCursorPos Lib "user32" _
(lpPoint As POINTAPI) As Long
Private Declare Function SetCursorPos Lib "user32" _
(ByVal x As Long, ByVal y As Long) As Long
Private Declare Function SetWindowPos Lib "user32" _
(ByVal hWnd As Long, _
ByVal hWndAfter As Long, _
ByVal x As Long, _
ByVal y As Long, _
ByVal cx As Long, _
ByVal xy As Long, _
ByVal uflags As Long) As Integer
Private Declare Function AccessibleObjectFromPoint Lib "oleacc" _
(ByVal x As Long, _
ByVal y As Long, _
ppoleAcc As Object, _
pvarElement As Variant) As Long
- Add following code to handle the Form_Load event for Form1. This code displays the second form and makes the second form the uppermost window.
Private Sub Form_Load()
' Display Form2, and make this form the uppermost window.
Form2.Show vbModeless
SetWindowPos Form2.hWnd, _
HWND_TOPMOST, _
0, 0, 0, 0, _
(SWP_NOSIZE Or SWP_NOMOVE)
End Sub
- Add the following code to handle the Form_Unload event for Form1:
Private Sub Form_Unload(Cancel As Integer)
' Remove floating form.
Unload Form2
End Sub
- Add the following code to handle the Timer1_Timer event:
Private Sub Timer1_Timer()
Dim p As POINTAPI
Dim objAccessible As Object
Dim v As Variant
Dim sName As String
' Get pointer position.
GetCursorPos p
' Get IAccessible interface from object under pointer.
AccessibleObjectFromPoint p.x, p.y, objAccessible, v
' Get name property of object under pointer.
sName = ""
On Error Resume Next
sName = objAccessible.accName(v)
On Error GoTo 0
' Follow pointer.
Form2.ZOrder
Form2.Left = (p.x * Screen.TwipsPerPixelX) + 100
Form2.Top = (p.y * Screen.TwipsPerPixelY) + 100
' Display information.
Form2.Cls
Form2.Print sName
End Sub
back to the top
Verify That It Works- Start Microsoft Internet Explorer, and then open the AADemo.htm file.
- Build and run your Visual Basic application.
- Move the pointer around the screen, particularly over elements in the HTML document. Because Internet Explorer can act as an accessibility server, the Visual Basic application can detect the text that underlies the elements of the document. The Visual Basic application displays the data as a simple tool tip. A more complex application may display this information in other ways, such as through a Braille reader or through a speech synthesizer.
- Close your Visual Basic application.
back to the top
REFERENCESFor additional information, click the article number below
to view the article in the Microsoft Knowledge Base:
244822 HOWTO: Determine Which Version of Microsoft Active Accessibility Is Installed
For more information about accessibility information for developers, visit the following Microsoft Web site:
You can download Microsoft Active Accessibility 2.0 SDK Tools from the preceding Microsoft Web site. Microsoft Active Accessibility 2.0 SDK Tools includes the Accessible Event Watcher, Accessible Explorer, and Inspect Objects. You can also download the accessible copy of the Microsoft Active Accessibility SDK documentation from the preceding Microsoft Web site. The Microsoft Active Accessibility SDK documentation is a Microsoft Word document in a format that is accessible for screen readers and other assistive technologies.
back to the top
Modification Type: | Major | Last Reviewed: | 5/12/2003 |
---|
Keywords: | kbhowto kbHOWTOmaster KB315519 kbAudDeveloper kbAudEndUser |
---|
|