- Silence some debug messages
[reactos.git] / reactos / subsys / win32k / ntuser / misc.c
index 1d5d1d2..4bc6d4e 100644 (file)
@@ -341,6 +341,12 @@ NtUserCallOneParam(
 
     case ONEPARAM_ROUTINE_MSQSETWAKEMASK:
       return (DWORD)IntMsqSetWakeMask(Param);
+
+    case ONEPARAM_ROUTINE_GETKEYBOARDTYPE:
+      return NtUserGetKeyboardType(Param);
+      
+    case ONEPARAM_ROUTINE_GETKEYBOARDLAYOUT:
+      return (DWORD)NtUserGetKeyboardLayout(Param);
   }
   DPRINT1("Calling invalid routine number 0x%x in NtUserCallOneParam(), Param=0x%x\n",
           Routine, Param);
@@ -447,9 +453,32 @@ NtUserCallTwoParam(
          return 0;
 
     case TWOPARAM_ROUTINE_SHOWOWNEDPOPUPS:
-         UNIMPLEMENTED
-         return 0;
+         return (DWORD)IntShowOwnedPopups((HWND) Param1, (BOOL) Param2);
 
+    case TWOPARAM_ROUTINE_ROS_SHOWWINDOW:
+    {
+#define WIN_NEEDS_SHOW_OWNEDPOPUP (0x00000040)
+          PWINDOW_OBJECT Window = IntGetWindowObject((HWND)Param1);
+         DPRINT1("ROS_SHOWWINDOW\n");
+          if (Window == 0)
+           {
+                 SetLastWin32Error(ERROR_INVALID_WINDOW_HANDLE);
+                 return FALSE;
+           }
+          if (Param2)
+           {
+               if (!(Window->Flags & WIN_NEEDS_SHOW_OWNEDPOPUP))
+                {
+                    IntReleaseWindowObject(Window);
+                    return TRUE;
+                }
+                Window->Flags &= ~WIN_NEEDS_SHOW_OWNEDPOPUP;
+           }
+          else Window->Flags |= WIN_NEEDS_SHOW_OWNEDPOPUP;
+          DPRINT1("ROS_SHOWWINDOW ---> 0x%x\n",Window->Flags);
+          IntReleaseWindowObject(Window);
+          return TRUE;
+    }
     case TWOPARAM_ROUTINE_SWITCHTOTHISWINDOW:
          UNIMPLEMENTED
          return 0;
@@ -564,6 +593,8 @@ NtUserCallTwoParam(
 
         ExFreePool(Buffer);
       }
+
+
       return Ret;
     }
 
@@ -613,7 +644,6 @@ NtUserCallTwoParam(
 
         ExFreePool(Buffer.Pointer);
       }
-
       return Ret;
     }
 
@@ -624,6 +654,7 @@ NtUserCallTwoParam(
   return 0;
 }
 
+
 /*
  * @unimplemented
  */
@@ -647,7 +678,7 @@ NtUserCallHwndLock(
    switch (Routine)
    {
       case HWNDLOCK_ROUTINE_ARRANGEICONICWINDOWS:
-         /* FIXME */
+         WinPosArrangeIconicWindows(Window);
          break;
 
       case HWNDLOCK_ROUTINE_DRAWMENUBAR:
@@ -685,6 +716,9 @@ NtUserCallHwndLock(
    return Ret;
 }
 
+/*
+ * @unimplemented
+ */
 HWND
 STDCALL
 NtUserCallHwndOpt(
@@ -694,15 +728,23 @@ NtUserCallHwndOpt(
    switch (Routine)
    {
       case HWNDOPT_ROUTINE_SETPROGMANWINDOW:
-         /* FIXME */
+         /* 
+          * FIXME 
+          * Nothing too hard...validate the hWnd and save it in the Desktop Info
+          */
+         DPRINT1("HWNDOPT_ROUTINE_SETPROGMANWINDOW UNIMPLEMENTED\n");
          break;
 
       case HWNDOPT_ROUTINE_SETTASKMANWINDOW:
-         /* FIXME */
+         /* 
+          * FIXME 
+          * Nothing too hard...validate the hWnd and save it in the Desktop Info
+          */
+         DPRINT1("HWNDOPT_ROUTINE_SETTASKMANWINDOW UNIMPLEMENTED\n");
          break;
    }
 
-   return 0;
+   return Param;
 }
 
 /*
@@ -769,8 +811,8 @@ IntSystemParametersInfo(
 
   if (!bInitialized)
   {
-    ZeroMemory(&IconFont, sizeof(LOGFONTW));
-    ZeroMemory(&pMetrics, sizeof(NONCLIENTMETRICSW));
+    RtlZeroMemory(&IconFont, sizeof(LOGFONTW));
+    RtlZeroMemory(&pMetrics, sizeof(NONCLIENTMETRICSW));
 
     IntGetFontMetricSetting(L"CaptionFont", &pMetrics.lfCaptionFont);
     IntGetFontMetricSetting(L"SmCaptionFont", &pMetrics.lfSmCaptionFont);