- Fixed registry entries for Explorer (once more)

- Added very basic window relinking to WinPosSetWindowPos

svn path=/trunk/; revision=6356
This commit is contained in:
Filip Navara 2003-10-18 17:35:44 +00:00
parent e9c87d778a
commit ed9a0cb22a
4 changed files with 83 additions and 41 deletions

View file

@ -10,29 +10,29 @@ HKCU,"Control Panel\Appearance",,0x00000012
HKCU,"Environment",,0x00000012
; application compatibility settings for Windows 95
HKCU,"Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\WIN95","MajorVersion",0x00010001,0x00000004
HKCU,"Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\WIN95","MinorVersion",0x00010001,0x0000000A
HKCU,"Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\WIN95","BuildNumber",0x00010001,0x000003B6
HKCU,"Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\WIN95","PlatformId",0x00010001,0x00000001
HKCU,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\WIN95","MajorVersion",0x00010001,0x00000004
HKCU,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\WIN95","MinorVersion",0x00010001,0x0000000A
HKCU,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\WIN95","BuildNumber",0x00010001,0x000003B6
HKCU,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\WIN95","PlatformId",0x00010001,0x00000001
; application compatibility settings for Windows 98/ME
HKCU,"Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\WIN98","MajorVersion",0x00010001,0x00000004
HKCU,"Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\WIN98","MinorVersion",0x00010001,0x00000000
HKCU,"Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\WIN98","BuildNumber",0x00010001,0x000008AE
HKCU,"Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\WIN98","PlatformId",0x00010001,0x00000001
HKCU,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\WIN98","MajorVersion",0x00010001,0x00000004
HKCU,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\WIN98","MinorVersion",0x00010001,0x00000000
HKCU,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\WIN98","BuildNumber",0x00010001,0x000008AE
HKCU,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\WIN98","PlatformId",0x00010001,0x00000001
; application compatibility settings for Windows NT 4 Service Pack 5
HKCU,"Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\NT4SP5","MajorVersion",0x00010001,0x00000004
HKCU,"Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\NT4SP5","MinorVersion",0x00010001,0x00000000
HKCU,"Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\NT4SP5","BuildNumber",0x00010001,0x00000565
HKCU,"Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\NT4SP5","PlatformId",0x00010001,0x00000002
HKCU,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\NT4SP5","MajorVersion",0x00010001,0x00000004
HKCU,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\NT4SP5","MinorVersion",0x00010001,0x00000000
HKCU,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\NT4SP5","BuildNumber",0x00010001,0x00000565
HKCU,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\NT4SP5","PlatformId",0x00010001,0x00000002
; application compatibility settings for Windows 2000
HKCU,"Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\WIN2000","MajorVersion",0x00010001,0x00000005
HKCU,"Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\WIN2000","MinorVersion",0x00010001,0x00000000
HKCU,"Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\WIN2000","BuildNumber",0x00010001,0x00000893
HKCU,"Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\WIN2000","PlatformId",0x00010001,0x00000002
HKCU,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\WIN2000","MajorVersion",0x00010001,0x00000005
HKCU,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\WIN2000","MinorVersion",0x00010001,0x00000000
HKCU,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\WIN2000","BuildNumber",0x00010001,0x00000893
HKCU,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\WIN2000","PlatformId",0x00010001,0x00000002
; application compatibility settings for Windows XP
HKCU,"Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\WINXP","MajorVersion",0x00010001,0x00000005
HKCU,"Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\WINXP","MinorVersion",0x00010001,0x00000001
HKCU,"Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\WINXP","BuildNumber",0x00010001,0x00000A28
HKCU,"Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\WINXP","PlatformId",0x00010001,0x00000002
HKCU,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\WINXP","MajorVersion",0x00010001,0x00000005
HKCU,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\WINXP","MinorVersion",0x00010001,0x00000001
HKCU,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\WINXP","BuildNumber",0x00010001,0x00000A28
HKCU,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\WINXP","PlatformId",0x00010001,0x00000002
; EOF

View file

@ -3,33 +3,29 @@ Signature="$ReactOS$
[AddReg]
HKLM,"SOFTWARE\ReactOS\Windows NT\CurrentVersion\WinLogon","Shell",0x00020000,"%SystemRoot%\System32\cmd.exe"
HKLM,"SOFTWARE\ReactOS\Windows NT\CurrentVersion\WinLogon","StartServices",0x00010001,0x00000001
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders","Desktop",0x00020000,"%SystemRoot%\Desktop"
HKCU,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders","Desktop",0x00020000,"%SystemRoot%\Desktop"
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders","AppData",0x00020000,"%SystemRoot%\Application Data"
HKCU,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders","AppData",0x00020000,"%SystemRoot%\Application Data"
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders","Start Menu",0x00020000,"%SystemRoot%\Start Menu"
HKCU,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders","Start Menu",0x00020000,"%SystemRoot%\Start Menu"
; For Shell32.dll
HKLM,"SOFTWARE\Classes\CLSID\{00021400-0000-0000-C000-000000000046}","",0x00020000,"Desktop"
HKLM,"SOFTWARE\Classes\CLSID\{00021400-0000-0000-C000-000000000046}\InProcServer32","",0x00020000,"shell32.dll"
HKLM,"SOFTWARE\Classes\CLSID\{00021400-0000-0000-C000-000000000046}\InProcServer32","ThreadingModel",0x00020000,"Apartment"
HKLM,"SOFTWARE\Classes\CLSID\{00021401-0000-0000-C000-000000000046}","",0x00020000,"Shortcut"
HKLM,"SOFTWARE\Classes\CLSID\{00021401-0000-0000-C000-000000000046}\InProcServer32","",0x00020000,"shell32.dll"
HKLM,"SOFTWARE\Classes\CLSID\{00021401-0000-0000-C000-000000000046}\InProcServer32","ThreadingModel",0x00020000,"Apartment"
HKLM,"SOFTWARE\Classes\CLSID\{00021401-0000-0000-C000-000000000046}\shellex\MayChangeDefaultMenu]","",0x00020000,""
HKLM,"SOFTWARE\Classes\CLSID\{00021400-0000-0000-C000-000000000046}","",0x00000002,"Desktop"
HKLM,"SOFTWARE\Classes\CLSID\{00021400-0000-0000-C000-000000000046}\InProcServer32","",0x00000002,"shell32.dll"
HKLM,"SOFTWARE\Classes\CLSID\{00021400-0000-0000-C000-000000000046}\InProcServer32","ThreadingModel",0x00000002,"Apartment"
HKLM,"SOFTWARE\Classes\CLSID\{00021401-0000-0000-C000-000000000046}","",0x00000002,"Shortcut"
HKLM,"SOFTWARE\Classes\CLSID\{00021401-0000-0000-C000-000000000046}\InProcServer32","",0x00000002,"shell32.dll"
HKLM,"SOFTWARE\Classes\CLSID\{00021401-0000-0000-C000-000000000046}\InProcServer32","ThreadingModel",0x00000002,"Apartment"
HKLM,"SOFTWARE\Classes\CLSID\{00021401-0000-0000-C000-000000000046}\shellex\MayChangeDefaultMenu]","",0x00000002,""
; For Ole32.dll
HKLM,"SOFTWARE\Classes\Interface\{00000000-0000-0000-C000-000000000046}","",0x00020000,"IUnknown"
HKLM,"SOFTWARE\Classes\Interface\{00000000-0000-0000-C000-000000000046}\BaseInterface","",0x00020000,""
HKLM,"SOFTWARE\Classes\Interface\{00000000-0000-0000-C000-000000000046}\NumMethods","",0x00020000,"3"
HKLM,"SOFTWARE\Classes\Interface\{00000000-0000-0000-C000-000000000046}\ProxyStubClsid32","",0x00020000,"{00000320-0000-0000-C000-000000000046}"
HKLM,"SOFTWARE\Classes\CLSID\{00000320-0000-0000-C000-000000000046}","",0x00020000,"PSFactoryBuffer"
HKLM,"SOFTWARE\Classes\CLSID\{00000320-0000-0000-C000-000000000046}\InProcServer32","",0x00020000,"ole32.dll"
HKLM,"SOFTWARE\Classes\CLSID\{00000320-0000-0000-C000-000000000046}\InProcServer32","ThreadingModel",0x00020000,"Both"
HKLM,"SOFTWARE\Classes\Interface\{00000000-0000-0000-C000-000000000046}","",0x00000002,"IUnknown"
HKLM,"SOFTWARE\Classes\Interface\{00000000-0000-0000-C000-000000000046}\BaseInterface","",0x00000002,""
HKLM,"SOFTWARE\Classes\Interface\{00000000-0000-0000-C000-000000000046}\NumMethods","",0x00000002,"3"
HKLM,"SOFTWARE\Classes\Interface\{00000000-0000-0000-C000-000000000046}\ProxyStubClsid32","",0x00000002,"{00000320-0000-0000-C000-000000000046}"
HKLM,"SOFTWARE\Classes\CLSID\{00000320-0000-0000-C000-000000000046}","",0x00000002,"PSFactoryBuffer"
HKLM,"SOFTWARE\Classes\CLSID\{00000320-0000-0000-C000-000000000046}\InProcServer32","",0x00000002,"ole32.dll"
HKLM,"SOFTWARE\Classes\CLSID\{00000320-0000-0000-C000-000000000046}\InProcServer32","ThreadingModel",0x00000002,"Both"
; EOF

View file

@ -159,6 +159,9 @@ IntGetWindowThreadProcessId(PWINDOW_OBJECT Wnd, PDWORD pid);
VOID FASTCALL
IntUnlinkWindow(PWINDOW_OBJECT Wnd);
VOID FASTCALL
IntLinkWindow(PWINDOW_OBJECT Wnd, PWINDOW_OBJECT WndParent, PWINDOW_OBJECT WndPrevSibling);
ULONG
UserHasDlgFrameStyle(ULONG Style, ULONG ExStyle);

View file

@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* $Id: winpos.c,v 1.32 2003/10/17 17:38:38 mf Exp $
/* $Id: winpos.c,v 1.33 2003/10/18 17:35:44 navaraf Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
@ -662,7 +662,50 @@ WinPosSetWindowPos(HWND Wnd, HWND WndInsertAfter, INT x, INT y, INT cx,
WvrFlags = WinPosDoNCCALCSize(Window, &WinPos, &NewWindowRect,
&NewClientRect);
/* FIXME: Relink windows. (also take into account shell window in hwndShellWindow) */
/*
* FIXME: Relink windows. (also take into account shell window in hwndShellWindow)
*/
if (!(WinPos.flags & SWP_NOZORDER) && WinPos.hwndInsertAfter != WinPos.hwnd)
{
PWINDOW_OBJECT ParentWindow;
PWINDOW_OBJECT InsertAfterWindow;
ParentWindow = IntGetWindowObject(Window->ParentHandle);
if (WndInsertAfter == HWND_TOP)
{
InsertAfterWindow = NULL;
}
else if (WndInsertAfter != HWND_BOTTOM)
{
InsertAfterWindow = ParentWindow->LastChild;
}
else
{
InsertAfterWindow = IntGetWindowObject(WinPos.hwndInsertAfter);
}
if (InsertAfterWindow != NULL &&
InsertAfterWindow->ParentHandle != Window->ParentHandle)
{
ExAcquireFastMutexUnsafe(&ParentWindow->ChildrenListLock);
IntUnlinkWindow(Window);
ExReleaseFastMutexUnsafe(&ParentWindow->ChildrenListLock);
ParentWindow = IntGetWindowObject(InsertAfterWindow->ParentHandle);
ExAcquireFastMutexUnsafe(&ParentWindow->ChildrenListLock);
IntLinkWindow(Window, ParentWindow, InsertAfterWindow);
ExReleaseFastMutexUnsafe(&ParentWindow->ChildrenListLock);
}
else
{
ExAcquireFastMutexUnsafe(&ParentWindow->ChildrenListLock);
IntUnlinkWindow(Window);
IntLinkWindow(Window, ParentWindow, InsertAfterWindow);
ExReleaseFastMutexUnsafe(&ParentWindow->ChildrenListLock);
}
IntReleaseWindowObject(ParentWindow);
IntReleaseWindowObject(InsertAfterWindow);
}
/* FIXME: Reset active DCEs */
@ -857,7 +900,7 @@ WinPosSetWindowPos(HWND Wnd, HWND WndInsertAfter, INT x, INT y, INT cx,
/* FIXME: Check some conditions before doing this. */
IntSendWINDOWPOSCHANGEDMessage(WinPos.hwnd, &WinPos);
ObmDereferenceObject(Window);
IntReleaseWindowObject(Window);
return(TRUE);
}