Skip to content

Commit 02a4566

Browse files
committed
Add consistent error handling for GetArguments
1 parent 0153f71 commit 02a4566

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

Plugins/Flow.Launcher.Plugin.Program/Programs/ShellLinkHelper.cs

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,18 @@ public unsafe string retrieveTargetPath(string path)
3535

3636
var data = new WIN32_FIND_DATAW();
3737
var target = string.Empty;
38-
fixed (char* bufferPtr = buffer)
38+
try
3939
{
40-
((IShellLinkW)link).GetPath((PWSTR)bufferPtr, MAX_PATH, &data, (uint)SLGP_FLAGS.SLGP_SHORTPATH);
41-
target = MemoryMarshal.CreateReadOnlySpanFromNullTerminated(bufferPtr).ToString();
40+
fixed (char* bufferPtr = buffer)
41+
{
42+
((IShellLinkW)link).GetPath((PWSTR)bufferPtr, MAX_PATH, &data, (uint)SLGP_FLAGS.SLGP_SHORTPATH);
43+
target = MemoryMarshal.CreateReadOnlySpanFromNullTerminated(bufferPtr).ToString();
44+
}
45+
}
46+
catch (COMException e)
47+
{
48+
ProgramLogger.LogException($"|IShellLinkW|retrieveTargetPath|{path}" +
49+
"|Error occurred while getting program arguments", e);
4250
}
4351

4452
// To set the app description
@@ -66,11 +74,11 @@ public unsafe string retrieveTargetPath(string path)
6674
arguments = MemoryMarshal.CreateReadOnlySpanFromNullTerminated(bufferPtr).ToString();
6775
}
6876
}
69-
77+
7078
// To release unmanaged memory
7179
Marshal.ReleaseComObject(link);
7280

7381
return target;
74-
}
82+
}
7583
}
7684
}

0 commit comments

Comments
 (0)