Cleanup FolderDialogUtil

This commit is contained in:
copecone committed 2026-10-07 15:47:31 +09:00
1 parent e7ef081e55
commit 892f1ca7b9
1 file changed
+7 -7
+7 -7
View File
@@ -1,5 +1,6 @@
using System; using System;
using System.Diagnostics; using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
using System.IO; using System.IO;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
using System.Text; using System.Text;
@@ -9,6 +10,8 @@ using MelonLoader;
namespace ADOFAIRenderer.Util; namespace ADOFAIRenderer.Util;
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "UnusedMember.Local")]
internal static class FolderDialogUtil internal static class FolderDialogUtil
{ {
private static int _isDialogOpen; private static int _isDialogOpen;
@@ -187,14 +190,12 @@ internal static class FolderDialogUtil
private static string? OpenWindowsFolderBrowserModern(string initialDirectory, IntPtr ownerHandle) private static string? OpenWindowsFolderBrowserModern(string initialDirectory, IntPtr ownerHandle)
{ {
IFileOpenDialog? dialog = null;
// 1. Try native CoCreateInstance first (works on Mono and .NET without class registration) // 1. Try native CoCreateInstance first (works on Mono and .NET without class registration)
var clsid = CLSID_FileOpenDialog; var clsid = CLSID_FileOpenDialog;
var iid = IID_IFileOpenDialog; var iid = IID_IFileOpenDialog;
int createHr = CoCreateInstance(ref clsid, IntPtr.Zero, 1 /* CLSCTX_INPROC_SERVER */, ref iid, out dialog); int createHr = CoCreateInstance(ref clsid, IntPtr.Zero, 1 /* CLSCTX_INPROC_SERVER */, ref iid, out var dialog);
if (createHr != 0 || dialog == null) if (createHr != 0)
{ {
// 2. Fallback to Activator via Type.GetTypeFromCLSID // 2. Fallback to Activator via Type.GetTypeFromCLSID
var comType = Type.GetTypeFromCLSID(CLSID_FileOpenDialog); var comType = Type.GetTypeFromCLSID(CLSID_FileOpenDialog);
@@ -224,7 +225,7 @@ internal static class FolderDialogUtil
{ {
var shellItemGuid = IID_IShellItem; var shellItemGuid = IID_IShellItem;
int itemHr = SHCreateItemFromParsingName(normalized, IntPtr.Zero, ref shellItemGuid, out var initialItem); int itemHr = SHCreateItemFromParsingName(normalized, IntPtr.Zero, ref shellItemGuid, out var initialItem);
if (itemHr == 0 && initialItem != null) if (itemHr == 0)
{ {
try try
{ {
@@ -263,7 +264,6 @@ internal static class FolderDialogUtil
} }
dialog.GetResult(out var resultItem); dialog.GetResult(out var resultItem);
if (resultItem == null) return null;
try try
{ {
@@ -319,7 +319,7 @@ internal static class FolderDialogUtil
if (Directory.Exists(normalized)) if (Directory.Exists(normalized))
{ {
initialDirPtr = Marshal.StringToHGlobalUni(normalized); initialDirPtr = Marshal.StringToHGlobalUni(normalized);
callback = (hwnd, uMsg, lParam, lpData) => callback = (hwnd, uMsg, _, lpData) =>
{ {
if (uMsg == BFFM_INITIALIZED && lpData != IntPtr.Zero) if (uMsg == BFFM_INITIALIZED && lpData != IntPtr.Zero)
{ {