;
; Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
; DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
;
; This code is free software; you can redistribute it and/or modify it
; under the terms of the GNU General Public License version 2 only, as
; published by the Free Software Foundation.  Oracle designates this
; particular file as subject to the "Classpath" exception as provided
; by Oracle in the LICENSE file that accompanied this code.
;
; This code is distributed in the hope that it will be useful, but WITHOUT
; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
; FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
; version 2 for more details (a copy is included in the LICENSE file that
; accompanied this code).
;
; You should have received a copy of the GNU General Public License version
; 2 along with this work; if not, write to the Free Software Foundation,
; Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
;
; Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
; or visit www.oracle.com if you need additional information or have any
; questions.
;
;
;LIBRARY	WINDOWSACCESSBRIDGE

;DESCRIPTION 'WINDOWSACCESSBRIDGE.DLL'
HEAPSIZE	4096
EXPORTS

	addJavaEventNotification
    	removeJavaEventNotification
    	addAccessibilityEventNotification
    	removeAccessibilityEventNotification

	Windows_run

        getAccessibleTableInfo
        getAccessibleTableCellInfo

        getAccessibleTableRowHeader
        getAccessibleTableColumnHeader

        getAccessibleTableRowDescription
        getAccessibleTableColumnDescription

        isAccessibleTableRowSelected
        isAccessibleTableColumnSelected

        getAccessibleTableColumnSelectionCount
        getAccessibleTableRowSelectionCount

        getAccessibleTableColumnSelections
        getAccessibleTableRowSelections

        getAccessibleTableRow
        getAccessibleTableColumn
        getAccessibleTableIndex

        getAccessibleRelationSet

	getAccessibleHypertext
        activateAccessibleHyperlink
	getAccessibleHyperlinkCount
	getAccessibleHypertextExt
	getAccessibleHypertextLinkIndex
	getAccessibleHyperlink
	
	getAccessibleKeyBindings
	getAccessibleIcons
	getAccessibleActions
	doAccessibleActions

        setTextContents
	getParentWithRole
	getParentWithRoleElseRoot
	getTopLevelObject
	getObjectDepth
	getActiveDescendent

	getVirtualAccessibleName
	requestFocus
	selectTextRange
        getTextAttributesInRange
	getVisibleChildrenCount
	getVisibleChildren
	setCaretPosition
	getCaretLocation

	getEventsWaiting

	releaseJavaObject
	getVersionInfo

	isJavaWindow
        isSameObject
        getAccessibleContextFromHWND
	getHWNDFromAccessibleContext
    
        getAccessibleContextAt
	getAccessibleContextWithFocus
	getAccessibleContextInfo
        getAccessibleChildFromContext
        getAccessibleParentFromContext

	getAccessibleTextInfo
	getAccessibleTextItems
	getAccessibleTextSelectionInfo
	getAccessibleTextAttributes
	getAccessibleTextRect
        getAccessibleTextLineBounds
        getAccessibleTextRange

        getCurrentAccessibleValueFromContext
        getMaximumAccessibleValueFromContext
        getMinimumAccessibleValueFromContext
            
        addAccessibleSelectionFromContext
        clearAccessibleSelectionFromContext
        getAccessibleSelectionFromContext
        getAccessibleSelectionCountFromContext
        isAccessibleChildSelectedFromContext
        removeAccessibleSelectionFromContext
        selectAllAccessibleSelectionFromContext

        setPropertyChangeFP
        setJavaShutdownFP
        setFocusGainedFP
        setFocusLostFP
        setCaretUpdateFP
        setMouseClickedFP
        setMouseEnteredFP
        setMouseExitedFP
        setMousePressedFP
        setMouseReleasedFP
        setMenuCanceledFP
        setMenuDeselectedFP
        setMenuSelectedFP
        setPopupMenuCanceledFP
        setPopupMenuWillBecomeInvisibleFP
        setPopupMenuWillBecomeVisibleFP

        setPropertyNameChangeFP
	setPropertyDescriptionChangeFP
        setPropertyStateChangeFP
	setPropertyValueChangeFP
	setPropertySelectionChangeFP
        setPropertyTextChangeFP
        setPropertyCaretChangeFP
        setPropertyVisibleDataChangeFP
        setPropertyChildChangeFP
        setPropertyActiveDescendentChangeFP
        setPropertyTableModelChangeFP
