⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 misc.c

📁 ReactOS是一些高手根据Windows XP的内核编写出的类XP。内核实现机理和API函数调用几乎相同。甚至可以兼容XP的程序。喜欢研究系统内核的人可以看一看。
💻 C
📖 第 1 页 / 共 5 页
字号:
      case SPI_SETMOUSEHOVERHEIGHT:
      case SPI_SETMOUSETRAILS:
      case SPI_SETSNAPTODEFBUTTON:
      case SPI_SETBEEP:
      case SPI_SETBLOCKSENDINPUTRESETS:
      case SPI_SETKEYBOARDDELAY:
      case SPI_SETKEYBOARDPREF:
      case SPI_SETKEYBOARDSPEED:
      case SPI_SETMOUSEBUTTONSWAP:
      case SPI_SETWHEELSCROLLLINES:
      case SPI_SETMENUSHOWDELAY:
      case SPI_SETMENUDROPALIGNMENT:
      case SPI_SETICONTITLEWRAP:
      case SPI_SETCURSORS:
      case SPI_SETDESKPATTERN:
      case SPI_SETBORDER:
      case SPI_SETDRAGHEIGHT:
      case SPI_SETDRAGWIDTH:
      case SPI_SETSHOWIMEUI:
      case SPI_SETSCREENREADER:
      case SPI_SETSHOWSOUNDS:
                return IntSystemParametersInfo(uiAction, uiParam, NULL, fWinIni);

      /* NOTICE: from the IntSystemParametersInfo implementation it uses pvParam */
      case SPI_SETSCREENSAVERRUNNING:
      case SPI_SETFLATMENU:
      case SPI_SETMOUSESPEED:
      case SPI_SETGRADIENTCAPTIONS:
      case SPI_SETFOCUSBORDERHEIGHT:
      case SPI_SETFOCUSBORDERWIDTH:
      case SPI_SETLANGTOGGLE:
      case SPI_SETMENUFADE:
      case SPI_SETDROPSHADOW:
      case SPI_SETACTIVEWINDOWTRACKING:
      case SPI_SETACTIVEWNDTRKZORDER:
      case SPI_SETACTIVEWNDTRKTIMEOUT:
      case SPI_SETCARETWIDTH:
      case SPI_SETFOREGROUNDFLASHCOUNT:
      case SPI_SETFOREGROUNDLOCKTIMEOUT:
      case SPI_SETFONTSMOOTHINGORIENTATION:
      case SPI_SETFONTSMOOTHINGTYPE:
      case SPI_SETFONTSMOOTHINGCONTRAST:
      case SPI_SETKEYBOARDCUES:
      case SPI_SETCOMBOBOXANIMATION:
      case SPI_SETCURSORSHADOW:
      case SPI_SETHOTTRACKING:
      case SPI_SETLISTBOXSMOOTHSCROLLING:
      case SPI_SETMENUANIMATION:
      case SPI_SETSELECTIONFADE:
      case SPI_SETTOOLTIPANIMATION:
      case SPI_SETTOOLTIPFADE:
      case SPI_SETUIEFFECTS:
      case SPI_SETMOUSECLICKLOCK:
      case SPI_SETMOUSESONAR:
      case SPI_SETMOUSEVANISH:
            return IntSystemParametersInfo(uiAction, 0, pvParam, fWinIni);

      /* Get SPI msg here  */

#if 1 /* only for 32bit applications */
      case SPI_GETLOWPOWERACTIVE:
      case SPI_GETLOWPOWERTIMEOUT:
      case SPI_GETPOWEROFFACTIVE:
      case SPI_GETPOWEROFFTIMEOUT:
#endif

      case SPI_GETSCREENSAVERRUNNING:
      case SPI_GETSCREENSAVETIMEOUT:
      case SPI_GETSCREENSAVEACTIVE:
      case SPI_GETKEYBOARDCUES:
      case SPI_GETFONTSMOOTHING:
      case SPI_GETGRADIENTCAPTIONS:
      case SPI_GETFOCUSBORDERHEIGHT:
      case SPI_GETFOCUSBORDERWIDTH:
      case SPI_GETWHEELSCROLLLINES:
      case SPI_GETWHEELSCROLLCHARS:
      case SPI_GETFLATMENU:
      case SPI_GETMOUSEHOVERHEIGHT:
      case SPI_GETMOUSEHOVERWIDTH:
      case SPI_GETMOUSEHOVERTIME:
      case SPI_GETMOUSESPEED:
      case SPI_GETMOUSETRAILS:
      case SPI_GETSNAPTODEFBUTTON:
      case SPI_GETBEEP:
      case SPI_GETBLOCKSENDINPUTRESETS:
      case SPI_GETKEYBOARDDELAY:
      case SPI_GETKEYBOARDPREF:
      case SPI_GETMENUDROPALIGNMENT:
      case SPI_GETMENUFADE:
      case SPI_GETMENUSHOWDELAY:
      case SPI_GETICONTITLEWRAP:
      case SPI_GETDROPSHADOW:
      case SPI_GETFONTSMOOTHINGCONTRAST:
      case SPI_GETFONTSMOOTHINGORIENTATION:
      case SPI_GETFONTSMOOTHINGTYPE:
      case SPI_GETACTIVEWINDOWTRACKING:
      case SPI_GETACTIVEWNDTRKZORDER:
      case SPI_GETBORDER:
      case SPI_GETCOMBOBOXANIMATION:
      case SPI_GETCURSORSHADOW:
      case SPI_GETHOTTRACKING:
      case SPI_GETLISTBOXSMOOTHSCROLLING:
      case SPI_GETMENUANIMATION:
      case SPI_GETSELECTIONFADE:
      case SPI_GETTOOLTIPANIMATION:
      case SPI_GETTOOLTIPFADE:
      case SPI_GETUIEFFECTS:
      case SPI_GETMOUSECLICKLOCK:
      case SPI_GETMOUSECLICKLOCKTIME:
      case SPI_GETMOUSESONAR:
      case SPI_GETMOUSEVANISH:
      case SPI_GETSCREENREADER:
      case SPI_GETSHOWSOUNDS:
            {
                /* pvParam is PINT,PUINT or PBOOL */
                UINT Ret;
                if(!IntSystemParametersInfo(uiAction, uiParam, &Ret, fWinIni))
                {
                    return( FALSE);
                }
                _SEH_TRY
                {
                    ProbeForWrite(pvParam, sizeof(UINT ), 1);
                    *(PUINT)pvParam = Ret;
                }
                _SEH_HANDLE
                {
                    Status = _SEH_GetExceptionCode();
                }
                _SEH_END;
                if(!NT_SUCCESS(Status))
                {
                    SetLastNtError(Status);
                    return( FALSE);
                }
                return( TRUE);
            }

      case SPI_GETACTIVEWNDTRKTIMEOUT:
      case SPI_GETKEYBOARDSPEED:
      case SPI_GETCARETWIDTH:
      case SPI_GETDRAGFULLWINDOWS:
      case SPI_GETFOREGROUNDFLASHCOUNT:
      case SPI_GETFOREGROUNDLOCKTIMEOUT:
            {
                /* pvParam is PDWORD */
                DWORD Ret;
                if(!IntSystemParametersInfo(uiAction, uiParam, &Ret, fWinIni))
                {
                    return( FALSE);
                }
                _SEH_TRY
                {
                    ProbeForWrite(pvParam, sizeof(DWORD ), 1);
                    *(PDWORD)pvParam = Ret;
                }
                _SEH_HANDLE
                {
                    Status = _SEH_GetExceptionCode();
                }
                _SEH_END;
                if(!NT_SUCCESS(Status))
                {
                    SetLastNtError(Status);
                    return( FALSE);
                }
                return( TRUE);
            }
      case SPI_GETICONMETRICS:
            {
                ICONMETRICSW Buffer;
                return UserSystemParametersInfo_StructGet(uiAction, uiParam, pvParam, fWinIni, &Buffer,sizeof(Buffer));
            }
      case SPI_SETICONMETRICS:
            {
                ICONMETRICSW Buffer;
                return UserSystemParametersInfo_StructSet(uiAction, uiParam, pvParam, fWinIni, &Buffer,sizeof(Buffer));
            }
      case SPI_GETMINIMIZEDMETRICS:
            {
                MINIMIZEDMETRICS Buffer;
                return UserSystemParametersInfo_StructGet(uiAction, uiParam, pvParam, fWinIni,&Buffer,sizeof(Buffer));
            }
            case SPI_SETMINIMIZEDMETRICS:
            {
                MINIMIZEDMETRICS Buffer;
                return UserSystemParametersInfo_StructSet(uiAction, uiParam, pvParam, fWinIni,&Buffer,sizeof(Buffer));
            }
      case SPI_GETNONCLIENTMETRICS:
          {
              NONCLIENTMETRICSW Buffer;
              return UserSystemParametersInfo_StructGet(uiAction, uiParam, pvParam, fWinIni, &Buffer,sizeof(Buffer));
          }
      case SPI_SETNONCLIENTMETRICS:
          {
              NONCLIENTMETRICSW Buffer;  
              return UserSystemParametersInfo_StructSet(uiAction, uiParam, pvParam, fWinIni, &Buffer,sizeof(Buffer));
          }
      case SPI_GETANIMATION:
          {
              ANIMATIONINFO Buffer;
              return UserSystemParametersInfo_StructGet(uiAction, uiParam, pvParam, fWinIni, &Buffer,sizeof(Buffer));
          }
      case SPI_SETANIMATION:
          {
              ANIMATIONINFO Buffer;
              return UserSystemParametersInfo_StructSet(uiAction, uiParam, pvParam, fWinIni, &Buffer,sizeof(Buffer));
          }
      case SPI_GETACCESSTIMEOUT:
          {
              ACCESSTIMEOUT Buffer;  
              return UserSystemParametersInfo_StructGet(uiAction, uiParam, pvParam, fWinIni, &Buffer,sizeof(Buffer));
          }
      case SPI_SETACCESSTIMEOUT:
          {
              ACCESSTIMEOUT Buffer;  
              return UserSystemParametersInfo_StructSet(uiAction, uiParam, pvParam, fWinIni, &Buffer,sizeof(Buffer));
          }
      case SPI_GETFILTERKEYS:
          {
              FILTERKEYS Buffer;  
              return UserSystemParametersInfo_StructGet(uiAction, uiParam, pvParam, fWinIni,
                  &Buffer,sizeof(Buffer));
          }
      case SPI_SETFILTERKEYS:
          {
              FILTERKEYS Buffer;  
              return UserSystemParametersInfo_StructSet(uiAction, uiParam, pvParam, fWinIni,
                  &Buffer,sizeof(Buffer));
          }
      case SPI_GETSTICKYKEYS:
          {
              STICKYKEYS Buffer;  
              return UserSystemParametersInfo_StructGet(uiAction, uiParam, pvParam, fWinIni, &Buffer,sizeof(Buffer));
          }
      case SPI_SETSTICKYKEYS:
          {
              STICKYKEYS Buffer;  
              return UserSystemParametersInfo_StructSet(uiAction, uiParam, pvParam, fWinIni, &Buffer,sizeof(Buffer));
          }
      case SPI_GETTOGGLEKEYS:
          {
              TOGGLEKEYS Buffer;  
              return UserSystemParametersInfo_StructGet(uiAction, uiParam, pvParam, fWinIni, &Buffer,sizeof(Buffer));
          }
      case SPI_SETTOGGLEKEYS:
          {
              TOGGLEKEYS Buffer;  
              return UserSystemParametersInfo_StructSet(uiAction, uiParam, pvParam, fWinIni, &Buffer,sizeof(Buffer));
          }
      case SPI_SETWORKAREA:
          {
              RECT rc;
              _SEH_TRY
              {
                  ProbeForRead(pvParam, sizeof( RECT ), 1);
                  RtlCopyMemory(&rc,pvParam,sizeof(RECT));
              }
              _SEH_HANDLE
              {
                  Status = _SEH_GetExceptionCode();
              }
              _SEH_END;
              if(!NT_SUCCESS(Status))
              {
                  SetLastNtError(Status);
                  return( FALSE);
              }
              return IntSystemParametersInfo(uiAction, uiParam, &rc, fWinIni);
          }
      case SPI_GETWORKAREA:
          {
              RECT rc;
              if(!IntSystemParametersInfo(uiAction, uiParam, &rc, fWinIni))
              {
                  return( FALSE);
              }
              _SEH_TRY
              {
                  ProbeForWrite(pvParam,  sizeof( RECT ), 1);
                  RtlCopyMemory(pvParam,&rc,sizeof(RECT));
              }
              _SEH_HANDLE
              {
                  Status = _SEH_GetExceptionCode();
              }
              _SEH_END;
              if(!NT_SUCCESS(Status))
              {
                  SetLastNtError(Status);
                  return( FALSE);
              }
              return( TRUE);
          }
      case SPI_SETMOUSE:
          {
              CURSORACCELERATION_INFO CursorAccelerationInfo;
              _SEH_TRY
              {
                  ProbeForRead(pvParam, sizeof( CURSORACCELERATION_INFO ), 1);
                  RtlCopyMemory(&CursorAccelerationInfo,pvParam,sizeof(CURSORACCELERATION_INFO));
              }
              _SEH_HANDLE
              {
                  Status = _SEH_GetExceptionCode();
              }
              _SEH_END;
              if(!NT_SUCCESS(Status))
              {
                  SetLastNtError(Status);
                  return( FALSE);
              }
              return IntSystemParametersInfo(uiAction, uiParam, &CursorAccelerationInfo, fWinIni);
          }
      case SPI_GETMOUSE:
          {
              CURSORACCELERATION_INFO CursorAccelerationInfo;
              if(!IntSystemParametersInfo(uiAction, uiParam, &CursorAccelerationInfo, fWinIni))
              {
                  return( FALSE);
              }
              _SEH_TRY
              {
                  ProbeForWrite(pvParam,  sizeof( CURSORACCELERATION_INFO ), 1);
                  RtlCopyMemory(pvParam,&CursorAccelerationInfo,sizeof(CURSORACCELERATION_INFO));
              }
              _SEH_HANDLE
              {
                  Status = _SEH_GetExceptionCode();
              }
              _SEH_END;
              if(!NT_SUCCESS(Status))
              {
                  SetLastNtError(Status);
                  return( FALSE);
              }
              return( TRUE);
          }
      case SPI_SETICONTITLELOGFONT:
          {
              LOGFONTW LogFont;
              _SEH_TRY
              {
                  ProbeForRead(pvParam, sizeof( LOGFONTW ), 1);
                  RtlCopyMemory(&LogFont,pvParam,sizeof(LOGFONTW));
              }
              _SEH_HANDLE
              {
                  Status = _SEH_GetExceptionCode();
              }
              _SEH_END;
              if(!NT_SUCCESS(Status))
              {
                  SetLastNtError(Status);
                  return( FALSE);
              }
              return IntSystemParametersInfo(uiAction, uiParam, &LogFont, fWinIni);
          }
      case SPI_GETICONTITLELOGFONT:
          {
              LOGFONTW LogFont;
              if(!IntSystemParametersInfo(uiAction, uiParam, &LogFont, fWinIni))
              {
                  return( FALSE);
              }
              _SEH_TRY
              {
                  ProbeForWrite(pvParam,  sizeof( LOGFONTW ), 1);
                  RtlCopyMemory(pvParam,&LogFont,sizeof(LOGFONTW));
              }
              _SEH_HANDLE
              {
                  Status = _SEH_GetExceptionCode();
              }
              _SEH_END;
              if(!NT_SUCCESS(Status))
              {
                  SetLastNtError(Status);
                  return( FALSE);
              }
              return( TRUE);
          }
      case SPI_ICONVERTICALSPACING:
      case SPI_ICONHORIZONTALSPACING:
          {
              UINT Ret;
              if(!IntSystemParametersInfo(uiAction, uiParam, &Ret, fWinIni))
              {
                  return( FALSE);
              }
              if(NULL != pvParam)
              {
                  _SEH_TRY
                  {
                      ProbeForWrite(pvParam, sizeof(UINT ), 1);
                      *(PUINT)pvParam = Ret;
                  }
                  _SEH_HANDLE
                  {
                      Status = _SEH_GetExceptionCode();
                  }
                  _SEH_END;
                  if(!NT_SUCCES

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -