UIAutomation.ExtensionMethodsElement.InvokeContextMenu C# (CSharp) Method

InvokeContextMenu() static private method

static private InvokeContextMenu ( this inputObject, HasControlInputCmdletBase cmdlet, int x, int y ) : IUiElement
inputObject this
cmdlet HasControlInputCmdletBase
x int
y int
return IUiElement
        internal static IUiElement InvokeContextMenu(this IUiElement inputObject, HasControlInputCmdletBase cmdlet, int x, int y)
        {
            IUiElement resultElement = null;
            try {
                
                if (!cmdlet.ClickControl(
                        cmdlet,
                        inputObject,
                        new ClickSettings() {
                            RightClick = true,
                            RelativeX = (x < 0 ? Preferences.ClickOnControlByCoordX : x),
                            RelativeY = (y < 0 ? Preferences.ClickOnControlByCoordY : y)
                        })) {
                }
            }
            catch (Exception) {
                throw new Exception("failed to click on the control");
            }
            
            // 20140116
            // what are these x and y?
            // int x = Cursor.Position.X;
            // int y = Cursor.Position.Y;
            
            var contextMenuSearcher =
                AutomationFactory.GetSearcherImpl<ContextMenuSearcher>();
            
            var contextMenuSearcherData =
                new ContextMenuSearcherData {
                InputObject = inputObject,
                ProcessId = inputObject.GetCurrent().ProcessId
            };
            
            var elementsMenuRoot =
                contextMenuSearcher.GetElements(
                    contextMenuSearcherData,
                    Preferences.Timeout);
            
            resultElement =
                elementsMenuRoot.First(element => null != element);
            
            return resultElement;
        }