Implement ShowOwnedPopups and ArrangeIconicWindows. Based on Wine. More work is needed on both.
Modified: trunk/reactos/lib/user32/windows/defwnd.c
Modified: trunk/reactos/lib/user32/windows/window.c
Modified: trunk/reactos/lib/user32/windows/winpos.c

Modified: trunk/reactos/lib/user32/windows/defwnd.c
--- trunk/reactos/lib/user32/windows/defwnd.c	2005-07-18 03:12:01 UTC (rev 16629)
+++ trunk/reactos/lib/user32/windows/defwnd.c	2005-07-18 03:13:11 UTC (rev 16630)
@@ -1269,14 +1269,15 @@
             if (!lParam)
                 return 0;
             Style = GetWindowLongW(hWnd, GWL_STYLE);
-            if (!(Style & WS_POPUP))
-                return 0;
+//            if (!(Style & WS_POPUP))
+//                return 0;
             if ((Style & WS_VISIBLE) && wParam)
                 return 0;
             if (!(Style & WS_VISIBLE) && !wParam)
                 return 0;
             if (!GetWindow(hWnd, GW_OWNER))
                 return 0;
+            NtUserCallTwoParam((DWORD) hWnd, (DWORD) wParam, TWOPARAM_ROUTINE_ROS_SHOWWINDOW);
             ShowWindow(hWnd, wParam ? SW_SHOWNA : SW_HIDE);
             break;
         }

Modified: trunk/reactos/lib/user32/windows/window.c
--- trunk/reactos/lib/user32/windows/window.c	2005-07-18 03:12:01 UTC (rev 16629)
+++ trunk/reactos/lib/user32/windows/window.c	2005-07-18 03:13:11 UTC (rev 16630)
@@ -51,17 +51,6 @@
 /*
  * @unimplemented
  */
-UINT STDCALL
-ArrangeIconicWindows(HWND hWnd)
-{
-  UNIMPLEMENTED;
-  return 0;
-}
-
-
-/*
- * @unimplemented
- */
 HDWP STDCALL
 BeginDeferWindowPos(int nNumWindows)
 {
@@ -1084,15 +1073,15 @@
 
   BOOL visible;
   visible = IsWindowVisible(hwnd);
-//  if(!IsWindow(hwnd) ||
-//    (visible && !(dwFlags & AW_HIDE)) ||
-//    (!visible && (dwFlags & AW_HIDE)))
+  if(!IsWindow(hwnd) ||
+    (visible && !(dwFlags & AW_HIDE)) ||
+    (!visible && (dwFlags & AW_HIDE)))
   {
     SetLastError(ERROR_INVALID_PARAMETER);
     return FALSE;
   }
 
-//  ShowWindow(hwnd, (dwFlags & AW_HIDE) ? SW_HIDE : ((dwFlags & AW_ACTIVATE) ? SW_SHOW : SW_SHOWNA));
+  ShowWindow(hwnd, (dwFlags & AW_HIDE) ? SW_HIDE : ((dwFlags & AW_ACTIVATE) ? SW_SHOW : SW_SHOWNA));
 
   return TRUE;
 }
@@ -1273,14 +1262,13 @@
 
 
 /*
- * @unimplemented
+ * @implemented
  */
 BOOL STDCALL
 ShowOwnedPopups(HWND hWnd,
 		BOOL fShow)
 {
-  UNIMPLEMENTED;
-  return FALSE;
+  return (BOOL)NtUserCallTwoParam((DWORD)hWnd, fShow, TWOPARAM_ROUTINE_SHOWOWNEDPOPUPS);
 }
 
 

Modified: trunk/reactos/lib/user32/windows/winpos.c
--- trunk/reactos/lib/user32/windows/winpos.c	2005-07-18 03:12:01 UTC (rev 16629)
+++ trunk/reactos/lib/user32/windows/winpos.c	2005-07-18 03:13:11 UTC (rev 16630)
@@ -55,3 +55,11 @@
   return(NtUserSetActiveWindow(hWnd));
 }
 
+/*
+ * @unimplemented
+ */
+UINT STDCALL
+ArrangeIconicWindows(HWND hWnd)
+{
+  return NtUserCallHwndLock( hWnd, HWNDLOCK_ROUTINE_ARRANGEICONICWINDOWS);
+}