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
[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
VOID FASTCALL
IntUnlinkWindow(PWINDOW_OBJECT Wnd);
+VOID FASTCALL
+IntLinkWindow(PWINDOW_OBJECT Wnd, PWINDOW_OBJECT WndParent, PWINDOW_OBJECT WndPrevSibling);
+
ULONG
UserHasDlgFrameStyle(ULONG Style, ULONG ExStyle);
* 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
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 */
/* FIXME: Check some conditions before doing this. */
IntSendWINDOWPOSCHANGEDMessage(WinPos.hwnd, &WinPos);
- ObmDereferenceObject(Window);
+ IntReleaseWindowObject(Window);
return(TRUE);
}