SystemParametersInfo

機能
システム全体に関するパラメータを取得・設定する
Declare Function SystemParametersInfo Lib "user32.dll" Alias "SystemParametersInfoA" _
(ByVal uiAction As Long, ByVal uiParam As Long, pvParam As Any, _
ByVal fWinIni As Long) As Long
Declare Function SystemParametersInfo Lib "user32.dll" Alias "SystemParametersInfoA" _
(ByVal uiAction As Integer, ByVal uiParam As Integer, pvParam As Integer, _
ByVal fWinIni As Integer) As Integer

BOOL SystemParametersInfo(
UINT uiAction,
UINT uiParam,
PVOID pvParam,
UINT fWinIni
);
引数
uiAction

設定、または、取得するパラメータを指定する定数
uiParam
uiActionに関連するパラメータ
pvParam
uiActionに関連するパラメータ
fWinIni
WIN.INIを書き換えるかどうかを指定する定数
戻り値
正常終了のとき                    0以外
エラーのとき                      0
備考
uiActionの設定によってuiParamとpvParamの取り扱い方が異なる。
つまりpvParamは構造体へのポインタであったり、長整数変数(Long)、整数変数(Byte)であったりする。
とりあつかいかたによって関数の宣言を買えるほうが安全である。

構造体を取得する場合の宣言方法(例:SPI_GETWORKAREA)
Declare Function SystemParametersInfo_RECT Lib "user32.dll" Alias "SystemParametersInfoA" _
    (ByVal uiAction As Long, ByVal uiParam As Long, pvParam As RECT, ByVal fWinIni As Long) As Long

Dim lprc As RECT

MsgBox SystemParametersInfo_RECT(SPI_GETWORKAREA,0,lprc,0)

配列を取得する場合の宣言方法(例:SPI_GETMOUSE)
Declare Function SystemParametersInfoAny Lib "user32.dll" Alias "SystemParametersInfoA" _
    (ByVal uiAction As Long, ByVal uiParam As Long, pvParam As Any, ByVal fWinIni As Long) As Long

Dim pvParamArray(2) As Long

MsgBox SystemParametersInfoAny(SPI_GETMOUSE,0,pvParamArray(0),0)

長整数値を取得する場合の宣言方法(例:SPI_GETMOUSETRAILS)
Declare Function SystemParametersInfoPtr Lib "user32.dll" Alias "SystemParametersInfoA" _
    (ByVal uiAction As Long, ByVal uiParam As Long, pvParam As Long, ByVal fWinIni As Long) As Long

Dim pvParam As Long

MsgBox SystemParametersInfoPtr(SPI_GETMOUSETRAILS,0,pvParam,0)

長整数値を設定する場合の宣言方法(例:SPI_SETFONTSMOOTHING)
Declare Function SystemParametersInfo Lib "user32.dll" Alias "SystemParametersInfoA" _
    (ByVal uiAction As Long, ByVal uiParam As Long, ByVal pvParam As Long, ByVal fWinIni As Long) As Long

Dim pvParam As Long

MsgBox SystemParametersInfoPtr(SPI_SETFONTSMOOTHING,1,0,0)
uiActionの定数
uiActionに指定する定数の一覧ページへ
fWinIniの定数

0                                             更新しない
SPIF_UPDATEINFILE = 1                         更新する
SPIF_SENDWININICHANGE = 2                     全てのアプリケーションに通知して更新する