private static string GetAccessibleText(System.IntPtr accObj, int vmId)
        {
            string sentence = string.Empty;

            if (!accObj.Equals((System.IntPtr)System.IntPtr.Zero))
            {
                try
                {
                    AccessibleContextInfo accContextInfo = new AccessibleContextInfo();
                    JavaAccNativeMethods.getAccessibleContextInfo(vmId, accObj, out accContextInfo);
                    if (accContextInfo.accessibleText)
                    {
                        AccessibleTextInfo accTextInfo = new AccessibleTextInfo();
                        if (JavaAccNativeMethods.getAccessibleTextInfo(vmId, accObj, out accTextInfo, 0, 0))
                        {
                            AccessibleTextItemsInfo accTextItems = new AccessibleTextItemsInfo();
                            if (JavaAccNativeMethods.getAccessibleTextItems(vmId, accObj, out accTextItems, accTextInfo.indexAtPoint))
                            {
                                sentence = accTextItems.sentence;
                            }
                        }
                    }
                }
                catch (System.Exception exception)
                {
                    if (!IsJavaAccException(exception) || !IsJavaAccExceptionMaskable(exception))
                    {
                        throw;
                    }
                    return(sentence);
                }
            }
            return(sentence);
        }