internal static MessageBoxResult ShowCore(IntPtr owner, string messageBoxText, string caption, MessageBoxButton button, MessageBoxImage icon, MessageBoxResult defaultResult, MessageBoxOptions options) { if (!MessageBox.IsValidMessageBoxButton(button)) { throw new InvalidEnumArgumentException("button", (int)button, typeof(MessageBoxButton)); } if (!MessageBox.IsValidMessageBoxImage(icon)) { throw new InvalidEnumArgumentException("icon", (int)icon, typeof(MessageBoxImage)); } if (!MessageBox.IsValidMessageBoxResult(defaultResult)) { throw new InvalidEnumArgumentException("defaultResult", (int)defaultResult, typeof(MessageBoxResult)); } if (!MessageBox.IsValidMessageBoxOptions(options)) { throw new InvalidEnumArgumentException("options", (int)options, typeof(MessageBoxOptions)); } if ((options & (MessageBoxOptions.ServiceNotification | MessageBoxOptions.DefaultDesktopOnly)) != MessageBoxOptions.None) { SecurityHelper.DemandUnmanagedCode(); if (owner != IntPtr.Zero) { throw new ArgumentException(SR.Get("CantShowMBServiceWithOwner")); } } else if (owner == IntPtr.Zero) { owner = UnsafeNativeMethods.GetActiveWindow(); } int type = (int)(button | (MessageBoxButton)icon | (MessageBoxButton)MessageBox.DefaultResultToButtonNumber(defaultResult, button) | (MessageBoxButton)options); return(MessageBox.Win32ToMessageBoxResult(UnsafeNativeMethods.MessageBox(new HandleRef(null, owner), messageBoxText, caption, type))); }