private object ExecCommandCallback(object arguments) { object[] array = (object[])arguments; Invariant.Assert(array.Length == 3); Guid guidCmdGroup = (Guid)array[0]; uint num = (uint)array[1]; object argument = array[2]; IDictionary oleCmdMappingTable = this.GetOleCmdMappingTable(guidCmdGroup); if (oleCmdMappingTable == null) { return(-2147221244); } CommandWithArgument commandWithArgument = oleCmdMappingTable[num] as CommandWithArgument; if (commandWithArgument == null) { return(-2147221248); } if (Application.Current.MainWindow == null) { return(-2147221247); } IInputElement inputElement = FocusManager.GetFocusedElement(Application.Current.MainWindow); if (inputElement == null) { inputElement = Application.Current.MainWindow; } return(commandWithArgument.Execute(inputElement, argument) ? 0 : -2147221247); }
private object ExecCommandCallback(object arguments) { object[] args = (object[])arguments; Invariant.Assert(args.Length == 3); Guid guidCmdGroup = (Guid)args[0]; uint commandId = (uint)args[1]; object arg = args[2]; IDictionary oleCmdMappingTable = GetOleCmdMappingTable(guidCmdGroup); if (oleCmdMappingTable == null) { return(OLECMDERR_E_UNKNOWNGROUP); } CommandWithArgument command = oleCmdMappingTable[commandId] as CommandWithArgument; if (command == null) { return(OLECMDERR_E_NOTSUPPORTED); } if (Application.Current.MainWindow == null) { return(OLECMDERR_E_DISABLED); } IInputElement target = FocusManager.GetFocusedElement(Application.Current.MainWindow); if (target == null) { // This will always succeed because Window is IInputElement target = (IInputElement)Application.Current.MainWindow; } return(command.Execute(target, arg) ? NativeMethods.S_OK : OLECMDERR_E_DISABLED); }