From e745b3804d23a2e82d9a43659d0bf1b986a60f5e Mon Sep 17 00:00:00 2001 From: Francois Gouget Date: Tue, 21 Sep 2004 20:08:10 +0000 Subject: [PATCH] Add support for the CSIDL_COMMON_* locations. --- programs/winemenubuilder/winemenubuilder.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/programs/winemenubuilder/winemenubuilder.c b/programs/winemenubuilder/winemenubuilder.c index 53d1d8962d7..ba731462a00 100644 --- a/programs/winemenubuilder/winemenubuilder.c +++ b/programs/winemenubuilder/winemenubuilder.c @@ -57,6 +57,11 @@ WINE_DEFAULT_DEBUG_CHANNEL(menubuilder); +#define in_desktop_dir(csidl) ((csidl)==CSIDL_DESKTOPDIRECTORY || \ + (csidl)==CSIDL_COMMON_DESKTOPDIRECTORY) +#define in_startmenu(csidl) ((csidl)==CSIDL_STARTMENU || \ + (csidl)==CSIDL_COMMON_STARTMENU) + /* link file formats */ #include "pshpack1.h" @@ -663,7 +668,9 @@ static BOOL GetLinkLocation( LPCWSTR linkfile, DWORD *ofs, DWORD *loc ) WCHAR filename[MAX_PATH], buffer[MAX_PATH]; DWORD len, i, r, filelen; const DWORD locations[] = { - CSIDL_STARTUP, CSIDL_DESKTOPDIRECTORY, CSIDL_STARTMENU }; + CSIDL_STARTUP, CSIDL_DESKTOPDIRECTORY, CSIDL_STARTMENU, + CSIDL_COMMON_STARTUP, CSIDL_COMMON_DESKTOPDIRECTORY, + CSIDL_COMMON_STARTMENU }; WINE_TRACE("%s\n", wine_dbgstr_w(linkfile)); filelen=GetFullPathNameW( linkfile, MAX_PATH, filename, NULL ); @@ -717,7 +724,7 @@ static BOOL InvokeShellLinker( IShellLinkA *sl, LPCWSTR link ) WINE_WARN("Unknown link location '%s'. Ignoring.\n",wine_dbgstr_w(link)); return TRUE; } - if( (csidl != CSIDL_DESKTOPDIRECTORY) && (csidl != CSIDL_STARTMENU) ) + if (!in_desktop_dir(csidl) && !in_startmenu(csidl)) { WINE_WARN("Not under desktop or start menu. Ignoring.\n"); return TRUE; @@ -799,8 +806,8 @@ static BOOL InvokeShellLinker( IShellLinkA *sl, LPCWSTR link ) escaped_args = escape(szArgs); r = fork_and_wait("wineshelllink", link_name, escaped_path, - (csidl == CSIDL_DESKTOPDIRECTORY), escaped_args, icon_name, - work_dir ? work_dir : "", szDescription ); + in_desktop_dir(csidl), escaped_args, icon_name, + work_dir ? work_dir : "", szDescription ); HeapFree( GetProcessHeap(), 0, icon_name ); HeapFree( GetProcessHeap(), 0, work_dir );