diff --git a/src/modules/registrypreview/RegistryPreviewUI/MainWindow.Events.cs b/src/modules/registrypreview/RegistryPreviewUI/MainWindow.Events.cs index 420b4fd01a..dadcdd2a0e 100644 --- a/src/modules/registrypreview/RegistryPreviewUI/MainWindow.Events.cs +++ b/src/modules/registrypreview/RegistryPreviewUI/MainWindow.Events.cs @@ -155,7 +155,9 @@ namespace RegistryPreview // Pull in a new REG file - we have to use the direct Win32 method because FileOpenPicker crashes when it's // called while running as admin + IntPtr windowHandle = WinRT.Interop.WindowNative.GetWindowHandle(this); string filename = OpenFilePicker.ShowDialog( + windowHandle, resourceLoader.GetString("FilterRegistryName") + '\0' + "*.reg" + '\0' + resourceLoader.GetString("FilterAllFiles") + '\0' + "*.*" + '\0' + '\0', resourceLoader.GetString("OpenDialogTitle")); @@ -197,7 +199,9 @@ namespace RegistryPreview { // Save out a new REG file and then open it - we have to use the direct Win32 method because FileOpenPicker crashes when it's // called while running as admin + IntPtr windowHandle = WinRT.Interop.WindowNative.GetWindowHandle(this); string filename = SaveFilePicker.ShowDialog( + windowHandle, resourceLoader.GetString("SuggestFileName"), resourceLoader.GetString("FilterRegistryName") + '\0' + "*.reg" + '\0' + resourceLoader.GetString("FilterAllFiles") + '\0' + "*.*" + '\0' + '\0', resourceLoader.GetString("SaveDialogTitle")); diff --git a/src/modules/registrypreview/RegistryPreviewUI/OpenFileName.cs b/src/modules/registrypreview/RegistryPreviewUI/OpenFileName.cs index c6dc243aeb..77f3354886 100644 --- a/src/modules/registrypreview/RegistryPreviewUI/OpenFileName.cs +++ b/src/modules/registrypreview/RegistryPreviewUI/OpenFileName.cs @@ -2,6 +2,7 @@ // The Microsoft Corporation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. +using System; using System.Runtime.InteropServices; namespace RegistryPreview @@ -13,11 +14,12 @@ namespace RegistryPreview [DllImport("comdlg32.dll", SetLastError = true, CharSet = CharSet.Auto)] private static extern bool GetOpenFileName(ref FileName openFileName); - public static string ShowDialog(string filter, string dialogTitle) + public static string ShowDialog(IntPtr windowHandle, string filter, string dialogTitle) { FileName openFileName = default(FileName); openFileName.StructSize = Marshal.SizeOf(openFileName); + openFileName.HwndOwner = windowHandle; openFileName.Filter = filter; openFileName.File = new string(new char[256]); openFileName.MaxFile = openFileName.File.Length; diff --git a/src/modules/registrypreview/RegistryPreviewUI/SaveFileName.cs b/src/modules/registrypreview/RegistryPreviewUI/SaveFileName.cs index 0e0f2d58a7..ce29f48d1d 100644 --- a/src/modules/registrypreview/RegistryPreviewUI/SaveFileName.cs +++ b/src/modules/registrypreview/RegistryPreviewUI/SaveFileName.cs @@ -2,6 +2,7 @@ // The Microsoft Corporation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. +using System; using System.Runtime.InteropServices; namespace RegistryPreview @@ -13,11 +14,12 @@ namespace RegistryPreview [DllImport("comdlg32.dll", SetLastError = true, CharSet = CharSet.Auto)] private static extern bool GetSaveFileName(ref FileName saveFileName); - public static string ShowDialog(string suggestedFilename, string filter, string dialogTitle) + public static string ShowDialog(IntPtr windowHandle, string suggestedFilename, string filter, string dialogTitle) { FileName saveFileName = default(FileName); saveFileName.StructSize = Marshal.SizeOf(saveFileName); + saveFileName.HwndOwner = windowHandle; saveFileName.Filter = filter; saveFileName.File = new string(new char[256]); saveFileName.MaxFile = saveFileName.File.Length;