From f9dc501eb6f71a7a8d6b2d7d76438471dad5bbe3 Mon Sep 17 00:00:00 2001 From: gho tik Date: Tue, 22 Mar 2016 12:45:25 -0400 Subject: [PATCH] v2_03_58_src Former-commit-id: 5dab36758c525b1f6191ef2fee843affbd0b1a7d --- build/dxwnd.dll | 4 +- build/dxwnd.exe | 4 +- build/dxwnd.ini | 120 ----------------- build/dxwnd.reg | 31 ----- build/readme-relnotes.txt | 12 +- dll/dxwnd.cpp | 4 +- dll/dxwnd.dll.manifest | 28 ++++ dll/dxwnd.vs2008.suo | Bin 285696 -> 298496 bytes dll/dxwnd.vs2008.vcproj | 10 +- dll/gdi32.cpp | 19 ++- dll/shareddc.cpp | 4 +- dll/user32.cpp | 3 +- host/KillProc.cpp | 249 ++++++++++++++++++++++++++++++++++- host/dxwnd.manifest | 28 ++++ host/dxwndhost.aps | Bin 164800 -> 136924 bytes host/dxwndhost.rc | Bin 110172 -> 111312 bytes host/dxwndhost.vs2008.suo | Bin 99840 -> 92672 bytes host/dxwndhost.vs2008.vcproj | 4 +- host/dxwndhostView.cpp | 138 ++++++++++++++++++- host/dxwndhostView.h | 3 + host/resource | Bin 39104 -> 39294 bytes 21 files changed, 487 insertions(+), 174 deletions(-) delete mode 100644 build/dxwnd.ini delete mode 100644 build/dxwnd.reg create mode 100644 dll/dxwnd.dll.manifest create mode 100644 host/dxwnd.manifest diff --git a/build/dxwnd.dll b/build/dxwnd.dll index 1c875cb..d0fdae3 100644 --- a/build/dxwnd.dll +++ b/build/dxwnd.dll @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f5024ec55f3917b2908e231698222147516bb21efda0938c969100fc43f7fd9f -size 626688 +oid sha256:22f399a262f8cb3071bb10d366ee021b542e9c13b6122b70370ecc319b970489 +size 628736 diff --git a/build/dxwnd.exe b/build/dxwnd.exe index b2e3de1..2be50fe 100644 --- a/build/dxwnd.exe +++ b/build/dxwnd.exe @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b2afb528861c05b34730d201b567c3e47f969732676f7d9fd998ffe8cf16674d -size 553472 +oid sha256:393da7c339ffda956ed69f340401cd4dfeef582666d42a812699a641e698d691 +size 558080 diff --git a/build/dxwnd.ini b/build/dxwnd.ini deleted file mode 100644 index ae9b0a2..0000000 --- a/build/dxwnd.ini +++ /dev/null @@ -1,120 +0,0 @@ -[window] -exportpath=D:\DxWnd\exports\ -exepath=D:\Games\msgolf\Golf '98 Trial\ -posx=981 -posy=464 -sizx=320 -sizy=200 -[target] -title0=Miscrosoft Golf '98 Trial -path0=D:\Games\msgolf\Golf '98 Trial\game.exe -launchpath0= -module0= -opengllib0= -notes0= -registry0=[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\]\n[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Games]\n[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Games\Golf '98]\n[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Games\Golf '98\Version 1.0 Demo]\n"AppPath"="D:\\Games\\msgolf\\Golf '98 Trial"\n"InstallType"="1"\n"InstalledPath"="D:\\Games\\msgolf\\Golf '98 Trial"\n"CDPath"="D:\\Games\\msgolf\\Golf '98 Trial\\"\n"ITF File Path"="D:\\Games\\msgolf\\Golf '98 Trial\\golf.itf"\n"Launched"="1"\n"PID"=""\n"Path"="D:\\Games\\msgolf\\Golf '98 Trial"\n"VersionType"="TrialVersion"\n"InstalledGroup"="1"\n"LangID"=dword:00000009\n\n\n[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Microsoft Games]\n[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Microsoft Games\Golf '98]\n[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Microsoft Games\Golf '98\Version 1.0 Demo]\n"AppPath"="D:\\Games\\msgolf\\Golf '98 Trial"\n"InstallType"="1"\n"InstalledPath"="D:\\Games\\msgolf\\Golf '98 Trial"\n"CDPath"="D:\\Games\\msgolf\\Golf '98 Trial\\"\n"ITF File Path"="D:\\Games\\msgolf\\Golf '98 Trial\\golf.itf"\n"Launched"="1"\n"PID"=""\n"Path"="D:\\Games\\msgolf\\Golf '98 Trial"\n"VersionType"="TrialVersion"\n"InstalledGroup"="1"\n"LangID"=dword:00000009 -ver0=0 -coord0=0 -flag0=2101474 -flagg0=1476395016 -flagh0=1044 -flagi0=1210187780 -flagj0=128 -flagk0=327680 -flagl0=4 -flagm0=0 -tflag0=0 -posx0=50 -posy0=50 -sizx0=880 -sizy0=660 -maxfps0=0 -initts0=0 -winver0=0 -maxres0=-1 -swapeffect0=0 -maxddinterface0=0 -title1=M1 Tank Platoon 2 -path1=D:\Games\M1 Tank Platoon 2\M1TP2.exe -launchpath1= -module1= -opengllib1= -notes1= -registry1= -ver1=0 -coord1=0 -flag1=134238242 -flagg1=1207959552 -flagh1=20 -flagi1=138412036 -flagj1=268439680 -flagk1=0 -flagl1=0 -flagm1=0 -tflag1=0 -posx1=50 -posy1=50 -sizx1=800 -sizy1=600 -maxfps1=0 -initts1=8 -winver1=0 -maxres1=-1 -swapeffect1=0 -maxddinterface1=7 -title2=Imperialism II -path2=D:\Games\Imperialism 2\imperialism II.exe -launchpath2= -module2= -opengllib2= -notes2= -registry2= -ver2=0 -coord2=0 -flag2=679485474 -flagg2=1207959552 -flagh2=20 -flagi2=4194308 -flagj2=0 -flagk2=262144 -flagl2=4 -flagm2=0 -tflag2=0 -posx2=50 -posy2=50 -sizx2=800 -sizy2=600 -maxfps2=0 -initts2=0 -winver2=0 -maxres2=0 -swapeffect2=0 -maxddinterface2=7 -title3=Imperialism -path3=D:\Games\Imperialism\Imperialism.exe -launchpath3= -module3= -opengllib3= -notes3=Note:\nMap zooming is currently not workind. Do not click on the magnifying glass, \nor the game will crash. -registry3= -ver3=0 -coord3=0 -flag3=1746935843 -flagg3=1744830464 -flagh3=20 -flagi3=71303172 -flagj3=128 -flagk3=262144 -flagl3=4 -flagm3=0 -tflag3=0 -posx3=50 -posy3=50 -sizx3=800 -sizy3=600 -maxfps3=0 -initts3=0 -winver3=0 -maxres3=-1 -swapeffect3=0 -maxddinterface3=7 diff --git a/build/dxwnd.reg b/build/dxwnd.reg deleted file mode 100644 index 89fc615..0000000 --- a/build/dxwnd.reg +++ /dev/null @@ -1,31 +0,0 @@ -[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\] -[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Games] -[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Games\Golf '98] -[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Games\Golf '98\Version 1.0 Demo] -"AppPath"="D:\\Games\\msgolf\\Golf '98 Trial" -"InstallType"="1" -"InstalledPath"="D:\\Games\\msgolf\\Golf '98 Trial" -"CDPath"="D:\\Games\\msgolf\\Golf '98 Trial\\" -"ITF File Path"="D:\\Games\\msgolf\\Golf '98 Trial\\golf.itf" -"Launched"="1" -"PID"="" -"Path"="D:\\Games\\msgolf\\Golf '98 Trial" -"VersionType"="TrialVersion" -"InstalledGroup"="1" -"LangID"=dword:00000009 - - -[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Microsoft Games] -[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Microsoft Games\Golf '98] -[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Microsoft Games\Golf '98\Version 1.0 Demo] -"AppPath"="D:\\Games\\msgolf\\Golf '98 Trial" -"InstallType"="1" -"InstalledPath"="D:\\Games\\msgolf\\Golf '98 Trial" -"CDPath"="D:\\Games\\msgolf\\Golf '98 Trial\\" -"ITF File Path"="D:\\Games\\msgolf\\Golf '98 Trial\\golf.itf" -"Launched"="1" -"PID"="" -"Path"="D:\\Games\\msgolf\\Golf '98 Trial" -"VersionType"="TrialVersion" -"InstalledGroup"="1" -"LangID"=dword:00000009 \ No newline at end of file diff --git a/build/readme-relnotes.txt b/build/readme-relnotes.txt index 730503e..566cdee 100644 --- a/build/readme-relnotes.txt +++ b/build/readme-relnotes.txt @@ -1049,4 +1049,14 @@ fix: improved handling of clipping regions in shared dc mode add: added DWM status to log file add: flags for preliminary hook of DirectSound and Smack libraries fix: changed icon colors (yellow for red, doesn't suggest the idea of error or danger) -add: menu commands for entry movement (top, bottom, up, down) or duplication \ No newline at end of file +add: menu commands for entry movement (top, bottom, up, down) or duplication + +v2.03/58 +add: added program manifest stating Win10/8/7/Vista compatibility +add: "Clear compatbility flag" tool +add: "Recover screen mode" tool +add: "Set path" tool +fix: reorganized menu commands +fix: proper handling of DEFAULT win size on CreateWindowEx - fixes "Imperialism" problem +fix: fixed stretced blit operation because Blt behaves differently from StretchBlt. Fixes "3D Minigolf" partial background +fix: GetPixel logging diff --git a/dll/dxwnd.cpp b/dll/dxwnd.cpp index 9feee4d..9f17ce0 100644 --- a/dll/dxwnd.cpp +++ b/dll/dxwnd.cpp @@ -18,7 +18,7 @@ along with this program. If not, see . */ #define _CRT_SECURE_NO_WARNINGS -#include +#include #include #include #include @@ -27,7 +27,7 @@ along with this program. If not, see . #include "TlHelp32.h" -#define VERSION "2.03.57" +#define VERSION "2.03.58" #define DDTHREADLOCK 1 //#define LOCKTHREADS diff --git a/dll/dxwnd.dll.manifest b/dll/dxwnd.dll.manifest new file mode 100644 index 0000000..8c52281 --- /dev/null +++ b/dll/dxwnd.dll.manifest @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dll/dxwnd.vs2008.suo b/dll/dxwnd.vs2008.suo index 250b4f3aa85f034d8c8251b289b3f78ee9dd32b1..b46f3b026e2543c0fc27f0d726e9abb41fbdf7d9 100644 GIT binary patch delta 15168 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 MyOL1i{}B%OFPb>5o&W#< delta 4454 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 diff --git a/dll/dxwnd.vs2008.vcproj b/dll/dxwnd.vs2008.vcproj index 9115aa3..e7e3517 100644 --- a/dll/dxwnd.vs2008.vcproj +++ b/dll/dxwnd.vs2008.vcproj @@ -1,7 +1,7 @@ #include -int KillProcByName(char *szToTerminate, BOOL bKill) +int KillProcByName(char *sProcessTail, BOOL bKill) // Created: 6/23/2000 (RK) // Last modified: 3/10/2002 (RK) // Please report any problems or bugs to kochhar@physiology.wisc.edu // The latest version of this routine can be found at: // http://www.neurophys.wisc.edu/ravi/software/killproc/ -// Terminate the process "szToTerminate" if it is currently running +// Terminate the process "sProcessTail" if it is currently running // This works for Win/95/98/ME and also Win/NT/2000/XP // The process name is case-insensitive, i.e. "notepad.exe" and "NOTEPAD.EXE" -// will both work (for szToTerminate) +// will both work (for sProcessTail) // Return codes are as follows: // 0 = Process was successfully terminated // 603 = Process was not currently running @@ -52,10 +52,10 @@ int KillProcByName(char *szToTerminate, BOOL bKill) // Transfer Process name into "szToTermUpper" and // convert it to upper case - iLenP=strlen(szToTerminate); + iLenP=strlen(sProcessTail); if(iLenP<1 || iLenP>MAX_PATH) return 632; for(indx=0;indxMAX_PATH) return FALSE; + for(indx=0;indx=VER_PLATFORM_WIN32_NT) + { + // Win/NT or 2000 or XP or greater + + // Load library and get the procedures explicitly. We do + // this so that we don't have to worry about modules using + // this code failing to load under Windows 9x, because + // it can't resolve references to the PSAPI.DLL. + hInstLib = LoadLibraryA("PSAPI.DLL"); + if(hInstLib == NULL) + return 605; + + // Get procedure addresses. + lpfEnumProcesses = (BOOL(WINAPI *)(DWORD *,DWORD,DWORD*)) + GetProcAddress( hInstLib, "EnumProcesses" ) ; + lpfEnumProcessModules = (BOOL(WINAPI *)(HANDLE, HMODULE *, + DWORD, LPDWORD)) GetProcAddress( hInstLib, + "EnumProcessModules" ) ; + lpfGetModuleBaseName =(DWORD (WINAPI *)(HANDLE, HMODULE, + LPTSTR, DWORD )) GetProcAddress( hInstLib, + "GetModuleBaseNameA" ) ; + lpfGetModuleFileName =(DWORD (WINAPI *)(HANDLE, HMODULE, + LPTSTR, DWORD )) GetProcAddress( hInstLib, + "GetModuleFileNameExA" ) ; + + if(lpfEnumProcesses == NULL || + lpfEnumProcessModules == NULL || + lpfGetModuleBaseName == NULL || + lpfGetModuleFileName == NULL) + { + FreeLibrary(hInstLib); + return 700; + } + + bResult=lpfEnumProcesses(aiPID,iCb,&iCbneeded); + if(!bResult) + { + // Unable to get process list, EnumProcesses failed + FreeLibrary(hInstLib); + return 701; + } + + // How many processes are there? + iNumProc=iCbneeded/sizeof(DWORD); + + // Get and match the name of each process + for(i=0;i + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/host/dxwndhost.aps b/host/dxwndhost.aps index 5798c9e4cb7a7f60aac3741a81b197de6dd0c509..b405cf7ddbdd9d3079ebc5c338779148873ce5ea 100644 GIT binary patch delta 4000 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 U>2qZE<~VhLj;_xYq7aCa$P2agPib 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 TU?z>h=k7^pj}ydj*nj^IJc-9o diff --git a/host/dxwndhost.rc b/host/dxwndhost.rc index 69e109731121aad51c08e04cf97c929fd0a37f07..f5517000fc47ebabb6c0ed9bc70ca320487f886a 100644 GIT binary patch delta 359 zcmca}hwZ{swhb0+lNF?$CjSuDn{2^Wx7mw5g=z8vHj&M7LN1Jx9XR+l=g3wuO}-%J zFj+u=W%45tqsbZ~Wt&Ar&6p;?la`yjjje3DUj!r9I71lnfiQ=mc=CNI zU9bVWxCNLt@8SH%xcLm?0Htw*u5X8Ivc98uJDNO%H*Z>M`9hf>C^0DljY>q{N!9C~v=_ I%-GQd0C*x>xc~qF delta 105 zcmV-v0G9vI= diff --git a/host/dxwndhost.vs2008.suo b/host/dxwndhost.vs2008.suo index 6cd93daf37f48ea904c8c1ce45c00e847d1cf6e2..025237b7428ef490e58cde34bc077421a97b3139 100644 GIT binary patch delta 6408 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 delta 11658 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 diff --git a/host/dxwndhost.vs2008.vcproj b/host/dxwndhost.vs2008.vcproj index 712dffd..70126fb 100644 --- a/host/dxwndhost.vs2008.vcproj +++ b/host/dxwndhost.vs2008.vcproj @@ -1,7 +1,7 @@ isUpdated=TRUE; + } + else { + sprintf(sMessage, "Path \"%s\" was already set.", FullPath); + MessageBox(sMessage, "DxWnd set path", MB_OK); + } + } + else{ + sprintf(sMessage, "Replacement for \"%s\" not found, run the game!", lpProcName); + MessageBox(sMessage, "DxWnd set path", MB_ICONEXCLAMATION); + } +} + void CDxwndhostView::OnSetRegistry() { int i; @@ -2148,6 +2192,9 @@ void CDxwndhostView::OnRButtonDown(UINT nFlags, CPoint point) case ID_SETREGISTRY: OnSetRegistry(); break; + case ID_SETPATH: + OnSetPath(); + break; case ID_TASK_KILL: OnKill(); break; @@ -2178,6 +2225,12 @@ void CDxwndhostView::OnRButtonDown(UINT nFlags, CPoint point) case ID_DESKTOPCOLORDEPTH_32BPP: OnDesktopcolordepth32bpp(); break; + case ID_TOOLS_RECOVERSCREENMODE: + OnRecoverScreenMode(); + break; + case ID_TOOLS_CLEARCOMPATIBILITYFLAGS: + OnClearCompatibilityFlags(); + break; case ID_MOVE_TOP: OnMoveTop(); break; @@ -2452,24 +2505,101 @@ void SwitchToColorDepth(int bpp) void CDxwndhostView::OnDesktopcolordepth8bpp() { - // TODO: Add your command handler code here SwitchToColorDepth(8); } void CDxwndhostView::OnDesktopcolordepth16bpp() { - // TODO: Add your command handler code here SwitchToColorDepth(16); } void CDxwndhostView::OnDesktopcolordepth24bpp() { - // TODO: Add your command handler code here SwitchToColorDepth(24); } void CDxwndhostView::OnDesktopcolordepth32bpp() { - // TODO: Add your command handler code here SwitchToColorDepth(32); } + +void CDxwndhostView::OnRecoverScreenMode() +{ + RevertScreenChanges(&this->InitDevMode); +} + +void CDxwndhostView::OnClearCompatibilityFlags() +{ + int i; + POSITION pos; + CListCtrl& listctrl = GetListCtrl(); + CString FilePath; + HRESULT res; + char sMessage[500]; + DWORD lKeyLength; + LONG ret; + + if(!listctrl.GetSelectedCount()) return ; + pos = listctrl.GetFirstSelectedItemPosition(); + i = listctrl.GetNextSelectedItem(pos); + + sprintf(sMessage, "Clear all compatibility flags for \"%s\"?", PrivateMaps[i].title); + res=MessageBox(sMessage, "DxWnd", MB_YESNO | MB_ICONQUESTION); + if(res!=IDYES) return; + + FilePath=TargetMaps[i].path; + if (FilePath.GetLength()==0) return; + + HKEY hk; + lKeyLength = 0L; + DWORD lType; + ret=RegOpenKeyEx(HKEY_CURRENT_USER, + "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Layers", 0, KEY_ALL_ACCESS, &hk); + if(ret){ + if(ret != ERROR_FILE_NOT_FOUND){ + sprintf(sMessage, "error %ld in RegOpenKeyEx HKEY_CURRENT_USER", ret); + MessageBox(sMessage, "DxWnd", MB_OK); + } + } + else { + ret=RegQueryValueEx(hk, TargetMaps[i].path, NULL, &lType, NULL, &lKeyLength); + if(ret && (ret != ERROR_FILE_NOT_FOUND)){ + sprintf(sMessage, "error %ld in RegQueryValue hk=%lx \"%s\"", ret, hk, TargetMaps[i].path); + MessageBox(sMessage, "DxWnd", MB_OK); + } + if(lKeyLength > 0L) { + MessageBox("Found compatibility flag in HKEY_CURRENT_USER", "DxWnd", MB_OK); + if(ret = RegDeleteValue(hk, TargetMaps[i].path)) { + sprintf(sMessage, "error %ld in RegDeleteValue hk=%lx \"%s\"", ret, hk, TargetMaps[i].path); + MessageBox(sMessage, "DxWnd", MB_OK); + } + } + RegCloseKey(hk); + } + + hk=0L; + lKeyLength = 0L; + ret=RegOpenKeyEx(HKEY_LOCAL_MACHINE, + "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Layers", 0, KEY_ALL_ACCESS, &hk); + if(ret){ + if(ret != ERROR_FILE_NOT_FOUND){ + sprintf(sMessage, "error %ld in RegOpenKeyEx HKEY_LOCAL_MACHINE", ret); + MessageBox(sMessage, "DxWnd", MB_OK); + } + } + else{ + ret=RegQueryValueEx(hk, TargetMaps[i].path, NULL, &lType, NULL, &lKeyLength); + if(ret && (ret != ERROR_FILE_NOT_FOUND)){ + sprintf(sMessage, "error %ld in RegQueryValue hk=%lx \"%s\"", ret, hk, TargetMaps[i].path); + MessageBox(sMessage, "DxWnd", MB_OK); + } + if(lKeyLength > 0L) { + MessageBox("Found compatibility flag in HKEY_LOCAL_MACHINE", "DxWnd", MB_OK); + if(ret = RegDeleteValue(hk, TargetMaps[i].path)) { + sprintf(sMessage, "error %ld in RegDeleteValue hk=%lx \"%s\"", ret, hk, TargetMaps[i].path); + MessageBox(sMessage, "DxWnd", MB_OK); + } + } + RegCloseKey(hk); + } +} diff --git a/host/dxwndhostView.h b/host/dxwndhostView.h index 771cde4..f9bde0d 100644 --- a/host/dxwndhostView.h +++ b/host/dxwndhostView.h @@ -80,6 +80,7 @@ protected: afx_msg void OnDeleteLog(); afx_msg void OnDebugView(); afx_msg void OnSetRegistry(); + afx_msg void OnSetPath(); afx_msg void OnRButtonDown(UINT nFlags, CPoint point); afx_msg void OnRun(); afx_msg void OnClearAllLogs(); @@ -98,6 +99,8 @@ protected: afx_msg void OnDesktopcolordepth16bpp(); afx_msg void OnDesktopcolordepth24bpp(); afx_msg void OnDesktopcolordepth32bpp(); + afx_msg void OnRecoverScreenMode(); + afx_msg void OnClearCompatibilityFlags(); afx_msg void OnMoveTop(); afx_msg void OnMoveUp(); afx_msg void OnMoveDown(); diff --git a/host/resource b/host/resource index 9cc79cd73adcc854ddbc2233da4f49345af8a795..ac1b3f7df4e4bb94e5b7532614a97548a1cc31c0 100644 GIT binary patch delta 146 zcmX@Gk?G$irVVyYlOHq+Y+ln;!!%i-h>bg#!IdF|A%MY=A!IV6kM<-+mdPKQIVL-? zNKM{Q!NTs(;LqU05Ip&!g5hMp7LLh_