[Settings] [VCM] Allow selecting a picture for VCM camera mute when running elevated (#24247)

* Fix the issue of not being able to select an image for VCM
Camera mute while PowerToys is running elevated.

* change the buffer size for Path and filename

* move DLL import to native methods file

* Adding comment to rember to move back to WinUI3
when it is fixed

* making Dll Import methods internal

* changes from comments

* fix new c# errors

* Remove async
This commit is contained in:
sosssego
2023-03-21 22:59:45 +00:00
committed by GitHub
parent 061d724f44
commit c1a811c26a
4 changed files with 67 additions and 17 deletions

View File

@@ -44,6 +44,9 @@ namespace Microsoft.PowerToys.Settings.UI.Helpers
[DllImport("shell32.dll")]
internal static extern int SHGetPathFromIDListW(IntPtr pidl, IntPtr pszPath);
[DllImport("Comdlg32.dll", CharSet = CharSet.Unicode)]
internal static extern bool GetOpenFileName([In, Out] OpenFileName openFileName);
#pragma warning disable CA1401 // P/Invokes should not be visible
[DllImport("user32.dll")]
public static extern bool ShowWindow(System.IntPtr hWnd, int nCmdShow);

View File

@@ -0,0 +1,36 @@
// Copyright (c) Microsoft Corporation
// 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.Diagnostics.CodeAnalysis;
using System.Runtime.InteropServices;
namespace Microsoft.PowerToys.Settings.UI.Helpers
{
[SuppressMessage("StyleCop.CSharp.MaintainabilityRules", "SA1401:FieldsMustBePrivate", Justification = "Reviewed.")]
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
public class OpenFileName
{
public int StructSize;
public IntPtr Hwnd = IntPtr.Zero;
public IntPtr Hinst = IntPtr.Zero;
public string Filter;
public string CustFilter;
public int CustFilterMax;
public int FilterIndex;
public string File;
public int MaxFile;
public string FileTitle;
public int MaxFileTitle;
public string InitialDir;
public string Title;
public int Flags;
public short FileOffset;
public short FileExtMax;
public string DefExt;
public int CustData;
public IntPtr Hook = IntPtr.Zero;
public string Template;
}
}