From e0b517985bb0baafa3581cb768d8a9ce4126b6a8 Mon Sep 17 00:00:00 2001 From: nanahi <130121847+na-na-hi@users.noreply.github.com> Date: Sun, 5 Nov 2023 22:54:52 -0500 Subject: win32: resolve dropped shell links (Windows shortcuts) When a shell link is dropped onto the mpv window, the file name will be replaced by the file name of its target so that the linked file is played. --- video/out/win32/droptarget.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/video/out/win32/droptarget.c b/video/out/win32/droptarget.c index b1b4824d9c..fdf9c7a097 100644 --- a/video/out/win32/droptarget.c +++ b/video/out/win32/droptarget.c @@ -157,8 +157,10 @@ static STDMETHODIMP DropTarget_Drop(IDropTarget *self, IDataObject *pDataObj, wchar_t *buf = talloc_array(NULL, wchar_t, len + 1); if (DragQueryFileW(drop, i, buf, len + 1) == len) { - char *fname = mp_to_utf8(files, buf); + wchar_t *target = mp_w32_get_shell_link_target(buf); + char *fname = mp_to_utf8(files, target ? target : buf); files[recvd_files++] = fname; + talloc_free(target); MP_VERBOSE(t, "received dropped file: %s\n", fname); } else { -- cgit v1.2.3