diff --git a/README.md b/README.md index c8ebdbc8..d1720097 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,7 @@ These patches fix the following Wine bugs: * Workaround for TransactNamedPipe not being supported ([Wine Bug #17273](http://bugs.winehq.org/show_bug.cgi?id=17273 "Many apps and games need SetNamedPipeHandleState implementation (support for named pipe message mode)(FireFox+Flash, Win8/NET 4.x SDK/vcrun2012, WiX installers)")) * ATL IOCS data should not be stored in GWLP_USERDATA ([Wine Bug #21767](http://bugs.winehq.org/show_bug.cgi?id=21767 "JLC's Internet TV crashes on startup")) * Support for process ACLs ([Wine Bug #22006](http://bugs.winehq.org/show_bug.cgi?id=22006 "OpenProcess does not enforce ACL")) +* Create AppData\LocalLow in user profile directory ([Wine Bug #22896](http://bugs.winehq.org/show_bug.cgi?id=22896 "Multiple applications and games need support for shell32 FOLDERID_LocalAppDataLow (.NET based Unity Engine games, Java JRE 6 in Vista mode)")) * Return correct IMediaSeeking stream positions in quartz ([Wine Bug #23174](http://bugs.winehq.org/show_bug.cgi?id=23174 "Fallout 3: Diologue and Video/sound issues")) * Add implementation of WTSEnumerateProcessesW ([Wine Bug #29903](http://bugs.winehq.org/show_bug.cgi?id=29903 "Some Microsoft debuggers fail to enumerate processes due to wtsapi32.WTSEnumerateProcessesW() being a stub (Microsoft Visual Studio 2005, DbgCLR from .NET 2.0 SDK)")) * Fix race conditions and deadlocks in strmbase/quartz ([Wine Bug #31566](http://bugs.winehq.org/show_bug.cgi?id=31566 "Fallout 3: regression causes block at critical section when radio is enabled")) diff --git a/patches/Makefile b/patches/Makefile index 3f08e044..2b69402a 100644 --- a/patches/Makefile +++ b/patches/Makefile @@ -24,6 +24,7 @@ PATCHLIST := Miscellaneous.ok \ server-Misc_ACL.ok \ server-Stored_ACLs.ok \ shell32-Default_Folder_ACLs.ok \ + shell32-Register_Folders.ok \ shell32-SHCreateSessionKey.ok \ shlwapi-UrlCombine.ok \ strmbase-Lock_Race_Conditions.ok \ @@ -409,6 +410,24 @@ shell32-Default_Folder_ACLs.ok: echo '+ { "shell32-Default_Folder_ACLs", "Erich E. Hoover", "Generate default ACLs for user shell folders. [rev 6]" },'; \ ) > shell32-Default_Folder_ACLs.ok +# Patchset shell32-Register_Folders +# | +# | Included patches: +# | * Create AppData\LocalLow in user profile directory. [by Michael Müller] +# | +# | This patchset fixes the following Wine bugs: +# | * [#22896] Multiple applications and games need support for shell32 FOLDERID_LocalAppDataLow (.NET based Unity Engine +# | games, Java JRE 6 in Vista mode) +# | +# | Modified files: +# | * dlls/shell32/shellpath.c, include/shlobj.h +# | +shell32-Register_Folders.ok: + $(PATCH) < shell32-Register_Folders/0001-shell32-create-AppData-LocalLow-directory.patch + @( \ + echo '+ { "shell32-Register_Folders", "Michael Müller", "Create AppData\\\\LocalLow in user profile directory." },'; \ + ) > shell32-Register_Folders.ok + # Patchset shell32-SHCreateSessionKey # | # | Included patches: diff --git a/patches/shell32-Register_Folders/0001-shell32-create-AppData-LocalLow-directory.patch b/patches/shell32-Register_Folders/0001-shell32-create-AppData-LocalLow-directory.patch new file mode 100644 index 00000000..78124daa --- /dev/null +++ b/patches/shell32-Register_Folders/0001-shell32-create-AppData-LocalLow-directory.patch @@ -0,0 +1,56 @@ +From 093b6e556c965b00693148f49ff0b35063cd1d01 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Michael=20M=C3=BCller?= +Date: Sun, 27 Jul 2014 02:53:11 +0200 +Subject: shell32: create AppData\LocalLow directory + +--- + dlls/shell32/shellpath.c | 6 ++++-- + include/shlobj.h | 1 + + 2 files changed, 5 insertions(+), 2 deletions(-) + +diff --git a/dlls/shell32/shellpath.c b/dlls/shell32/shellpath.c +index 78487e2..30db774 100644 +--- a/dlls/shell32/shellpath.c ++++ b/dlls/shell32/shellpath.c +@@ -772,6 +772,7 @@ static const WCHAR szCurrentVersion[] = {'S','o','f','t','w','a','r','e','\\','M + static const WCHAR Administrative_ToolsW[] = {'A','d','m','i','n','i','s','t','r','a','t','i','v','e',' ','T','o','o','l','s','\0'}; + static const WCHAR AppDataW[] = {'A','p','p','D','a','t','a','\0'}; + static const WCHAR AppData_LocalLowW[] = {'A','p','p','D','a','t','a','\\','L','o','c','a','l','L','o','w','\0'}; ++static const WCHAR AppData_LocalLow_FOLDERIDW[] = {'{','A','5','2','0','A','1','A','4','-','1','7','8','0','-','4','F','F','6','-','B','D','1','8','-','1','6','7','3','4','C','5','A','F','1','6','}','\0'}; + static const WCHAR Application_DataW[] = {'A','p','p','l','i','c','a','t','i','o','n',' ','D','a','t','a','\0'}; + static const WCHAR CacheW[] = {'C','a','c','h','e','\0'}; + static const WCHAR CD_BurningW[] = {'C','D',' ','B','u','r','n','i','n','g','\0'}; +@@ -1349,7 +1350,7 @@ static const CSIDL_DATA CSIDL_Data[] = + { /* 0x4e */ + &FOLDERID_LocalAppDataLow, + CSIDL_Type_User, +- NULL, ++ AppData_LocalLow_FOLDERIDW, + AppData_LocalLowW + }, + { /* 0x4f */ +@@ -2542,7 +2543,8 @@ static HRESULT _SHRegisterUserShellFolders(BOOL bDefault) + CSIDL_HISTORY, + CSIDL_MYPICTURES, + CSIDL_FONTS, +- CSIDL_ADMINTOOLS ++ CSIDL_ADMINTOOLS, ++ CSIDL_WINE_APPDATA_LOCALLOW + }; + WCHAR userShellFolderPath[MAX_PATH], shellFolderPath[MAX_PATH]; + LPCWSTR pUserShellFolderPath, pShellFolderPath; +diff --git a/include/shlobj.h b/include/shlobj.h +index 9025a73..1189ae2 100644 +--- a/include/shlobj.h ++++ b/include/shlobj.h +@@ -1529,6 +1529,7 @@ HRESULT WINAPI SHGetFolderPathW(HWND hwnd, int nFolder, HANDLE hToken, DWORD dwF + #define CSIDL_CDBURN_AREA 0x003b + #define CSIDL_COMPUTERSNEARME 0x003d + #define CSIDL_PROFILES 0x003e ++#define CSIDL_WINE_APPDATA_LOCALLOW 0x004e + #define CSIDL_FOLDER_MASK 0x00ff + #define CSIDL_FLAG_PER_USER_INIT 0x0800 + #define CSIDL_FLAG_NO_ALIAS 0x1000 +-- +1.8.3.2 + diff --git a/patches/shell32-Register_Folders/definition b/patches/shell32-Register_Folders/definition new file mode 100644 index 00000000..7a77d777 --- /dev/null +++ b/patches/shell32-Register_Folders/definition @@ -0,0 +1,4 @@ +Author: Michael Müller +Subject: Create AppData\LocalLow in user profile directory. +Revision: 1 +Fixes: [22896] Create AppData\LocalLow in user profile directory