This commit is contained in:
Yu Leng
2025-05-09 14:52:03 +08:00
parent 1db5a21944
commit 2e2e4432b0
2 changed files with 14 additions and 7 deletions

View File

@@ -140,7 +140,7 @@ public sealed partial class Native
void GetParent(out IShellItem ppsi);
void GetDisplayName(SIGDN sigdnName, out string ppszName);
void GetDisplayName(SIGDN sigdnName, out IntPtr ppszName);
void GetAttributes(uint sfgaoMask, out uint psfgaoAttribs);
@@ -173,12 +173,9 @@ public sealed partial class Native
return (IShellItem)obj;
}
public static void Free(IntPtr? managed)
public static void Free(IntPtr managed)
{
if (managed != null)
{
Marshal.ReleaseComObject(managed);
}
Marshal.FreeCoTaskMem(managed);
}
}
}

View File

@@ -4,6 +4,7 @@
using System;
using System.Collections.Concurrent;
using System.IO;
using System.Runtime.InteropServices;
using static Microsoft.CmdPal.Ext.Apps.Utils.Native;
namespace Microsoft.CmdPal.Ext.Apps.Utils;
@@ -45,7 +46,16 @@ public class ShellLocalization
return string.Empty;
}
shellItem.GetDisplayName(SIGDN.NORMALDISPLAY, out var filename);
shellItem.GetDisplayName(SIGDN.NORMALDISPLAY, out var filenamePtr);
// get filename from ptr
var filename = Marshal.PtrToStringUni(filenamePtr);
Marshal.FreeCoTaskMem(filenamePtr);
if (filename == null)
{
return string.Empty;
}
_ = _localizationCache.TryAdd(lowerInvariantPath, filename);