internal static bool DoAction(System.IntPtr accObj, out int failure, int vmId, bool isDefaultAction, string actionName)
        {
            bool flag = false;

            failure = 0;
            if (!accObj.Equals((System.IntPtr)System.IntPtr.Zero))
            {
                AccessibleActionsToDo[] actionsToDo = new AccessibleActionsToDo[] { new AccessibleActionsToDo() };
                actionsToDo[0].actionsCount = 1;
                actionsToDo[0].actions      = new AccessibleActionInfo[0x20];
                actionsToDo[0].actions[0]   = new AccessibleActionInfo();
                if (isDefaultAction)
                {
                    actionsToDo[0].actions[0].name = JavaDataDrivenAdapterConstants.DEFAULT_ACTION_NAME;
                }
                else
                {
                    actionsToDo[0].actions[0].name = actionName;
                }
                try
                {
                    flag = JavaAccNativeMethods.doAccessibleActions(vmId, accObj, actionsToDo, out failure);
                    if (flag == false)
                    {
                        throw new Exception("doAccessibleActions failed: " + failure.ToString());
                    }
                }
                catch (System.Exception exception)
                {
                    if (!IsJavaAccException(exception) || !IsJavaAccExceptionMaskable(exception))
                    {
                        throw;
                    }
                    return(flag);
                }
            }
            return(flag);
        }