Catch exceptions and release com objects

This commit is contained in:
VictoriousRaptor 2026-01-02 12:23:05 +08:00
parent 3e32fca356
commit b062fc056f

View file

@ -1,5 +1,6 @@
using System;
using System.IO;
using System.Runtime.InteropServices;
using Windows.Win32;
using Windows.Win32.Foundation;
@ -25,12 +26,22 @@ namespace Flow.Launcher.Plugin.Program.Programs
return string.Empty;
}
PWSTR displayName;
shellItem.GetDisplayName(Windows.Win32.UI.Shell.SIGDN.SIGDN_NORMALDISPLAY, &displayName);
string filename = displayName.ToString();
PInvoke.CoTaskMemFree(displayName);
return filename;
try
{
PWSTR displayName;
shellItem.GetDisplayName(Windows.Win32.UI.Shell.SIGDN.SIGDN_NORMALDISPLAY, &displayName);
string filename = displayName.ToString();
PInvoke.CoTaskMemFree(displayName);
return filename;
}
catch
{
return string.Empty;
}
finally
{
Marshal.ReleaseComObject(shellItem);
}
}
/// <summary>