diff --git a/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/AppxPackageHelper.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/AppxPackageHelper.cs index d2fe55fb6d..00b852f427 100644 --- a/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/AppxPackageHelper.cs +++ b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/AppxPackageHelper.cs @@ -40,7 +40,7 @@ public static class AppxPackageHelper IAppxManifestApplication* manifestApp; manifestApps->GetCurrent(&manifestApp); - var hr = manifestApp->GetStringValue("AppListEntry", out var appListEntryPtr).ThrowOnFailure(); + var hr = manifestApp->GetStringValue("AppListEntry", out var appListEntryPtr); var appListEntry = ComFreeHelper.GetStringAndFree(hr, appListEntryPtr); if (appListEntry != "none") diff --git a/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Utils/ShellLinkHelper.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Utils/ShellLinkHelper.cs index f68a4679a9..543abf5dcf 100644 --- a/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Utils/ShellLinkHelper.cs +++ b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Utils/ShellLinkHelper.cs @@ -55,30 +55,23 @@ public class ShellLinkHelper : IShellLinkHelper const uint SLR_NO_UI = 0x1; link->Resolve(hwnd, SLR_NO_UI); - PWSTR pBuffer = null; - var hr = link->GetPath(pBuffer, MAX_PATH, null, 0x1); + var buffer = stackalloc char[MAX_PATH]; - target = ComFreeHelper.GetStringAndFree(hr, pBuffer); + var hr = link->GetPath((PWSTR)buffer, MAX_PATH, null, 0x1); + + target = hr.Succeeded ? new string(buffer) : string.Empty; // To set the app description if (!string.IsNullOrEmpty(target)) { - PWSTR pszName = null; - try - { - var desHr = link->GetDescription(pszName, MAX_PATH).ThrowOnFailure(); - Description = Description = ComFreeHelper.GetStringAndFree(desHr, pszName); - } - catch (Exception) - { - // Log.Exception($"Failed to fetch description for {target}, {e.Message}", e, GetType()); - Description = string.Empty; - } + var descBuffer = stackalloc char[MAX_PATH]; + var desHr = link->GetDescription(descBuffer, MAX_PATH); + Description = desHr.Succeeded ? new string(descBuffer) : string.Empty; - PWSTR pszArgs = null; - var argHr = link->GetArguments(pszArgs, MAX_PATH); + var argsBuffer = stackalloc char[MAX_PATH]; + var argHr = link->GetArguments(argsBuffer, MAX_PATH); - Arguments = ComFreeHelper.GetStringAndFree(argHr, pszArgs); + Arguments = argHr.Succeeded ? new string(argsBuffer) : string.Empty; // Set variable to true if the program takes in any arguments if (Arguments.Length != 0)