;
; Copyright (c) 2005, 2018, 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'
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
