/* * Copyright (c) 2005, 2015, 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. */ #define JACCESSINSPECTOR_LOG "jaccessinspector.log" void CALLBACK TimerProc(HWND hWnd, UINT uTimerMsg, UINT uTimerID, DWORD dwTime); LRESULT CALLBACK KeyboardProc(int code, WPARAM wParam, LPARAM lParam); LRESULT CALLBACK MouseProc(int code, WPARAM wParam, LPARAM lParam); BOOL InitWindow(HANDLE hInstance); INT_PTR CALLBACK jaccessinspectorDialogProc( HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam ); void HandleJavaPropertyChange( long vmID, PropertyChangeEvent event, AccessibleContext ac, wchar_t *name, wchar_t *oldValue, wchar_t *newValue ); void HandleJavaShutdown(long vmID); void HandleJavaFocusGained(long vmID, FocusEvent event, AccessibleContext ac); void HandleJavaFocusLost(long vmID, FocusEvent event, AccessibleContext ac); void HandleJavaCaretUpdate(long vmID, CaretEvent event, AccessibleContext ac); void HandleMouseClicked(long vmID, MouseEvent event, AccessibleContext ac); void HandleMouseEntered(long vmID, MouseEvent event, AccessibleContext ac); void HandleMouseExited(long vmID, MouseEvent event, AccessibleContext ac); void HandleMousePressed(long vmID, MouseEvent event, AccessibleContext ac); void HandleMouseReleased(long vmID, MouseEvent event, AccessibleContext ac); void HandleMenuCanceled(long vmID, MenuEvent event, AccessibleContext ac); void HandleMenuDeselected(long vmID, MenuEvent event, AccessibleContext ac); void HandleMenuSelected(long vmID, MenuEvent event, AccessibleContext ac); void HandlePopupMenuCanceled(long vmID, MenuEvent event, AccessibleContext ac); void HandlePopupMenuWillBecomeInvisible( long vmID, MenuEvent event, AccessibleContext ac ); void HandlePopupMenuWillBecomeVisible( long vmID, MenuEvent event, AccessibleContext ac ); void HandlePropertyNameChange( long vmID, PropertyChangeEvent event, AccessibleContext ac, wchar_t *oldName, wchar_t *newName); void HandlePropertyDescriptionChange( long vmID, PropertyChangeEvent event, AccessibleContext ac, wchar_t *oldDescription, wchar_t *newDescription ); void HandlePropertyStateChange( long vmID, PropertyChangeEvent event, AccessibleContext ac, wchar_t *oldState, wchar_t *newState ); void HandlePropertyValueChange( long vmID, PropertyChangeEvent event, AccessibleContext ac, wchar_t *oldValue, wchar_t *newValue ); void HandlePropertySelectionChange( long vmID, PropertyChangeEvent event, AccessibleContext ac ); void HandlePropertyTextChange( long vmID, PropertyChangeEvent event, AccessibleContext ac ); void HandlePropertyCaretChange( long vmID, PropertyChangeEvent event, AccessibleContext ac, int oldPosition, int newPosition ); void HandlePropertyVisibleDataChange( long vmID, PropertyChangeEvent event, AccessibleContext ac ); void HandlePropertyChildChange( long vmID, PropertyChangeEvent event, AccessibleContext ac, jobject oldChild, jobject newChild ); void HandlePropertyActiveDescendentChange(long vmID, PropertyChangeEvent event, AccessibleContext ac, jobject oldActiveDescendent, jobject newActiveDescendent); void HandlePropertyTableModelChange( long vmID, PropertyChangeEvent event, AccessibleContext ac, wchar_t *oldValue, wchar_t *newValue ); char *getAccessibleInfo( long vmID, AccessibleContext ac, int x, int y, char *buffer, int bufsize ); char *getTimeAndDate(); void displayAndLogText(char *buffer, ...); const char * const jaccessinspectorOptionsRegistryKey = "Software\\JavaSoft\\Java Development Kit\\jaccessinspector"; BOOL SaveActiveEventOptionsToRegistry(); BOOL ReadActiveEventOptionsFromRegistry(); void ApplyEventOptions(HWND hWnd); BOOL EnableDlgItem(HWND hDlg, int nIDDlgItem, BOOL bEnable); void EnableMessageNavButtons(); void WINAPI AddToMessageHistory(const char * message); BOOL UpdateMessageNumber(); INT_PTR CALLBACK GoToMessageDialogProc( HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam ); BOOL InitGoToMessageDialogBox(HANDLE hInstance); BOOL ShouldCheckMonitorTheSameEventsAsJAWS(); void MaybeCheckMonitorTheSameEventsAsJAWS(HMENU menu); BOOL ShouldCheckMonitorAllEvents(); void MaybeCheckMonitorAllEvents(HMENU menu);