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

📄 sysparams.c

📁 Wine-20031016
💻 C
📖 第 1 页 / 共 3 页
字号:
        test_change_message( SPI_SETDOUBLECLKWIDTH, 0 );        sprintf( buf, "%d", vals[i] );        test_reg_key_ex( SPI_SETDOUBLECLKWIDTH_REGKEY1,                         SPI_SETDOUBLECLKWIDTH_REGKEY2,                         SPI_SETDOUBLECLKWIDTH_VALNAME, buf );        eq( GetSystemMetrics( SM_CXDOUBLECLK ), (int)vals[i],            "SM_CXDOUBLECLK", "%d" );    }    rc=SystemParametersInfoA( SPI_SETDOUBLECLKWIDTH, old_width, 0,                              SPIF_UPDATEINIFILE );    ok(rc!=0,"***warning*** failed to restore the original value: rc=%d err=%ld\n",rc,GetLastError());}static void test_SPI_SETDOUBLECLKHEIGHT( void )        /*     30 */{    BOOL rc;    INT old_height;    const UINT vals[]={0,10000};    int i;    trace("testing SPI_{GET,SET}DOUBLECLKHEIGHT\n");    old_height = GetSystemMetrics( SM_CYDOUBLECLK );    for (i=0;i<sizeof(vals)/sizeof(*vals);i++)    {        char buf[10];        rc=SystemParametersInfoA( SPI_SETDOUBLECLKHEIGHT, vals[i], 0,                                  SPIF_UPDATEINIFILE | SPIF_SENDCHANGE );        ok(rc!=0,"%d: rc=%d err=%ld\n",i,rc,GetLastError());        test_change_message( SPI_SETDOUBLECLKHEIGHT, 0 );        sprintf( buf, "%d", vals[i] );        test_reg_key_ex( SPI_SETDOUBLECLKHEIGHT_REGKEY1,                         SPI_SETDOUBLECLKHEIGHT_REGKEY2,                         SPI_SETDOUBLECLKHEIGHT_VALNAME, buf );        eq( GetSystemMetrics( SM_CYDOUBLECLK ), (int)vals[i],            "SM_CYDOUBLECLK", "%d" );    }    rc=SystemParametersInfoA( SPI_SETDOUBLECLKHEIGHT, old_height, 0,                              SPIF_UPDATEINIFILE );    ok(rc!=0,"***warning*** failed to restore the original value: rc=%d err=%ld\n",rc,GetLastError());}static void test_SPI_SETDOUBLECLICKTIME( void )        /*     32 */{    BOOL rc;    UINT curr_val;    UINT saved_val;    UINT old_time;    char buf[10];    trace("testing SPI_{GET,SET}DOUBLECLICKTIME\n");    old_time = GetDoubleClickTime();    curr_val = 0;    rc=SystemParametersInfoA( SPI_SETDOUBLECLICKTIME, curr_val, 0,                              SPIF_UPDATEINIFILE | SPIF_SENDCHANGE );    ok(rc!=0,"SystemParametersInfoA: rc=%d err=%ld\n",rc,GetLastError());    test_change_message( SPI_SETDOUBLECLICKTIME, 0 );    sprintf( buf, "%d", curr_val );    test_reg_key( SPI_SETDOUBLECLICKTIME_REGKEY,                  SPI_SETDOUBLECLICKTIME_VALNAME, buf );    curr_val = 500; /* used value for 0 */    eq( GetDoubleClickTime(), curr_val, "GetDoubleClickTime", "%d" );    curr_val = 1000;    rc=SystemParametersInfoA( SPI_SETDOUBLECLICKTIME, curr_val, 0,                             SPIF_UPDATEINIFILE | SPIF_SENDCHANGE );    ok(rc!=0,"SystemParametersInfoA: rc=%d err=%ld\n",rc,GetLastError());    test_change_message( SPI_SETDOUBLECLICKTIME, 0 );    sprintf( buf, "%d", curr_val );    test_reg_key( SPI_SETDOUBLECLICKTIME_REGKEY,                  SPI_SETDOUBLECLICKTIME_VALNAME, buf );    eq( GetDoubleClickTime(), curr_val, "GetDoubleClickTime", "%d" );    saved_val = curr_val;    curr_val = 0;    SetDoubleClickTime( curr_val );    sprintf( buf, "%d", saved_val );    test_reg_key( SPI_SETDOUBLECLICKTIME_REGKEY,                  SPI_SETDOUBLECLICKTIME_VALNAME, buf );    curr_val = 500; /* used value for 0 */    eq( GetDoubleClickTime(), curr_val, "GetDoubleClickTime", "%d" );    curr_val = 1000;    SetDoubleClickTime( curr_val );    sprintf( buf, "%d", saved_val );    test_reg_key( SPI_SETDOUBLECLICKTIME_REGKEY,                  SPI_SETDOUBLECLICKTIME_VALNAME, buf );    eq( GetDoubleClickTime(), curr_val, "GetDoubleClickTime", "%d" );    rc=SystemParametersInfoA(SPI_SETDOUBLECLICKTIME, old_time, 0, SPIF_UPDATEINIFILE);    ok(rc!=0,"***warning*** failed to restore the original value: rc=%d err=%ld\n",rc,GetLastError());}static void test_SPI_SETMOUSEBUTTONSWAP( void )        /*     33 */{    BOOL rc;    BOOL old_b;    const UINT vals[]={TRUE,FALSE};    int i;    trace("testing SPI_{GET,SET}MOUSEBUTTONSWAP\n");    old_b = GetSystemMetrics( SM_SWAPBUTTON );    for (i=0;i<sizeof(vals)/sizeof(*vals);i++)    {        rc=SystemParametersInfoA( SPI_SETMOUSEBUTTONSWAP, vals[i], 0,                                  SPIF_UPDATEINIFILE | SPIF_SENDCHANGE );        ok(rc!=0,"%d: rc=%d err=%ld\n",i,rc,GetLastError());        test_change_message( SPI_SETMOUSEBUTTONSWAP, 0 );        test_reg_key( SPI_SETMOUSEBUTTONSWAP_REGKEY,                      SPI_SETMOUSEBUTTONSWAP_VALNAME,                      vals[i] ? "1" : "0" );        eq( GetSystemMetrics( SM_SWAPBUTTON ), (int)vals[i],            "SM_SWAPBUTTON", "%d" );    }    rc=SystemParametersInfoA( SPI_SETMOUSEBUTTONSWAP, old_b, 0,                              SPIF_UPDATEINIFILE );    ok(rc!=0,"***warning*** failed to restore the original value: rc=%d err=%ld\n",rc,GetLastError());}static void test_SPI_SETFASTTASKSWITCH( void )         /*     36 */{    BOOL rc;    BOOL v;    trace("testing SPI_GETFASTTASKSWITCH\n");    rc=SystemParametersInfoA( SPI_GETFASTTASKSWITCH, 0, &v, 0 );    ok(rc!=0,"SystemParametersInfoA: rc=%d err=%ld\n",rc,GetLastError());    /* there is not a single Windows platform on which SPI_GETFASTTASKSWITCH     * works. That sure simplifies testing!     */}static void test_SPI_SETDRAGFULLWINDOWS( void )        /*     37 */{    BOOL rc;    BOOL old_b;    const UINT vals[]={TRUE,FALSE};    int i;    trace("testing SPI_{GET,SET}DRAGFULLWINDOWS\n");    rc=SystemParametersInfoA( SPI_GETDRAGFULLWINDOWS, 0, &old_b, 0 );    if (rc==0 && (GetLastError()==0 || GetLastError()==ERROR_CALL_NOT_IMPLEMENTED))    {        /* SPI_{GET,SET}DRAGFULLWINDOWS is not implemented on Win95 */        trace("SPI_{GET,SET}DRAGFULLWINDOWS not supported on this platform\n");        return;    }    ok(rc!=0,"SystemParametersInfoA: rc=%d err=%ld\n",rc,GetLastError());    for (i=0;i<sizeof(vals)/sizeof(*vals);i++)    {        UINT v;        rc=SystemParametersInfoA( SPI_SETDRAGFULLWINDOWS, vals[i], 0,                                  SPIF_UPDATEINIFILE | SPIF_SENDCHANGE );        ok(rc!=0,"%d: rc=%d err=%ld\n",i,rc,GetLastError());        test_change_message( SPI_SETDRAGFULLWINDOWS, 0 );        test_reg_key( SPI_SETDRAGFULLWINDOWS_REGKEY,                      SPI_SETDRAGFULLWINDOWS_VALNAME,                      vals[i] ? "1" : "0" );        rc=SystemParametersInfoA( SPI_GETDRAGFULLWINDOWS, 0, &v, 0 );        ok(rc!=0,"%d: rc=%d err=%ld\n",i,rc,GetLastError());        eq( v, vals[i], "SPI_{GET,SET}DRAGFULLWINDOWS", "%d" );    }    rc=SystemParametersInfoA( SPI_SETDRAGFULLWINDOWS, old_b, 0, SPIF_UPDATEINIFILE );    ok(rc!=0,"***warning*** failed to restore the original value: rc=%d err=%ld\n",rc,GetLastError());}static void test_SPI_SETWORKAREA( void )               /*     47 */{    BOOL rc;    RECT old_area;    RECT area;    RECT curr_val;    trace("testing SPI_{GET,SET}WORKAREA\n");    rc=SystemParametersInfoA(SPI_GETWORKAREA, 0, &old_area, 0);    ok(rc!=0,"SystemParametersInfoA: rc=%d err=%ld\n",rc,GetLastError());    /* Modify the work area only minimally as this causes the icons that     * fall outside it to be moved around thus requiring the user to     * reposition them manually one by one.     * Changing the work area by just one pixel should make this occurence     * reasonably unlikely.     */    curr_val.left = old_area.left;    curr_val.top = old_area.top;    curr_val.right = old_area.right-1;    curr_val.bottom = old_area.bottom-1;    rc=SystemParametersInfoA( SPI_SETWORKAREA, 0, &curr_val,                              SPIF_UPDATEINIFILE | SPIF_SENDCHANGE );    ok(rc!=0,"SystemParametersInfoA: rc=%d err=%ld\n",rc,GetLastError());    test_change_message( SPI_SETWORKAREA, 0 );    rc=SystemParametersInfoA( SPI_GETWORKAREA, 0, &area, 0 );    ok(rc!=0,"SystemParametersInfoA: rc=%d err=%ld\n",rc,GetLastError());    eq( area.left,   curr_val.left,   "left",   "%ld" );    eq( area.top,    curr_val.top,    "top",    "%ld" );    eq( area.right,  curr_val.right,  "right",  "%ld" );    eq( area.bottom, curr_val.bottom, "bottom", "%ld" );    rc=SystemParametersInfoA( SPI_SETWORKAREA, 0, &old_area,                              SPIF_UPDATEINIFILE | SPIF_SENDCHANGE );    ok(rc!=0,"***warning*** failed to restore the original value: rc=%d err=%ld\n",rc,GetLastError());    test_change_message( SPI_SETWORKAREA, 0 );    rc=SystemParametersInfoA( SPI_GETWORKAREA, 0, &area, 0 );    ok(rc!=0,"SystemParametersInfoA: rc=%d err=%ld\n",rc,GetLastError());    eq( area.left,   old_area.left,   "left",   "%ld" );    eq( area.top,    old_area.top,    "top",    "%ld" );    eq( area.right,  old_area.right,  "right",  "%ld" );    eq( area.bottom, old_area.bottom, "bottom", "%ld" );}static void test_SPI_SETSHOWSOUNDS( void )             /*     57 */{    BOOL rc;    BOOL old_b;    const UINT vals[]={TRUE,FALSE};    int i;    trace("testing SPI_{GET,SET}SHOWSOUNDS\n");    SetLastError(0);    rc=SystemParametersInfoA( SPI_GETSHOWSOUNDS, 0, &old_b, 0 );    if (rc==0 && GetLastError()==0)    {        /* SPI_{GET,SET}SHOWSOUNDS is completely broken on Win9x */        trace("SPI_{GET,SET}SHOWSOUNDS not supported on this platform\n");        return;    }    ok(rc!=0,"SystemParametersInfoA: rc=%d err=%ld\n",rc,GetLastError());    for (i=0;i<sizeof(vals)/sizeof(*vals);i++)    {        UINT v;        rc=SystemParametersInfoA( SPI_SETSHOWSOUNDS, vals[i], 0,                                  SPIF_UPDATEINIFILE | SPIF_SENDCHANGE );        ok(rc!=0,"%d: rc=%d err=%ld\n",i,rc,GetLastError());        test_change_message( SPI_SETSHOWSOUNDS, 0 );        test_reg_key( SPI_SETSHOWSOUNDS_REGKEY,                      SPI_SETSHOWSOUNDS_VALNAME,                      vals[i] ? "1" : "0" );        rc=SystemParametersInfoA( SPI_GETSHOWSOUNDS, 0, &v, 0 );        ok(rc!=0,"%d: rc=%d err=%ld\n",i,rc,GetLastError());        eq( v, vals[i], "SPI_GETSHOWSOUNDS", "%d" );        eq( GetSystemMetrics( SM_SHOWSOUNDS ), (int)vals[i],            "SM_SHOWSOUNDS", "%d" );    }    rc=SystemParametersInfoA( SPI_SETSHOWSOUNDS, old_b, 0, SPIF_UPDATEINIFILE );    ok(rc!=0,"***warning*** failed to restore the original value: rc=%d err=%ld\n",rc,GetLastError());}static void test_SPI_SETKEYBOARDPREF( void )           /*     69 */{    /* TODO!!! - don't have version of Windows which has this */}static void test_SPI_SETSCREENREADER( void )           /*     71 */{    /* TODO!!! - don't have version of Windows which has this */}static void test_SPI_SETWALLPAPER( void )              /*   115 */{    BOOL rc;    char oldval[260];    char newval[260];    trace("testing SPI_{GET,SET}DESKWALLPAPER\n");    SetLastError(0);    rc=SystemParametersInfoA(SPI_GETDESKWALLPAPER, 260, oldval, 0);    if (rc==0 && (GetLastError()==0 || GetLastError()==ERROR_INVALID_SPI_VALUE))    {        /* SPI_{GET,SET}DESKWALLPAPER is completely broken on Win9x and         * unimplemented on NT4         */        trace("SPI_{GET,SET}DESKWALLPAPER not supported on this platform\n");        return;    }    ok(rc!=0,"SystemParametersInfoA: rc=%d err=%ld\n",rc,GetLastError());    strcpy(newval, "");    rc=SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, newval, SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);    ok(rc!=0,"SystemParametersInfoA: rc=%d err=%ld\n",rc,GetLastError());    test_change_message(SPI_SETDESKWALLPAPER, 0);    rc=SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, oldval, SPIF_UPDATEINIFILE);    ok(rc!=0,"***warning*** failed to restore the original value: rc=%d err=%ld\n",rc,GetLastError());    test_reg_key(SPI_SETDESKWALLPAPER_REGKEY, SPI_SETDESKWALLPAPER_VALNAME, oldval);}/* * Registry entries for the system parameters. * Names are created by 'SET' flags names. * We assume that corresponding 'GET' entries use the same registry keys. */static DWORD WINAPI SysParamsThreadFunc( LPVOID lpParam ){    test_SPI_SETBEEP();                         /*      1 */    test_SPI_SETMOUSE();                        /*      4 */    /* Messes up systems settings on Win9x */    /*test_SPI_SETBORDER();*/                   /*      6 */    test_SPI_SETKEYBOARDSPEED();                /*     10 */    test_SPI_ICONHORIZONTALSPACING();           /*     13 */    test_SPI_SETSCREENSAVETIMEOUT();            /*     14 */    test_SPI_SETSCREENSAVEACTIVE();             /*     17 */    test_SPI_SETGRIDGRANULARITY();              /*     19 */    test_SPI_SETKEYBOARDDELAY();                /*     23 */    test_SPI_ICONVERTICALSPACING();             /*     24 */    test_SPI_SETICONTITLEWRAP();                /*     26 */    test_SPI_SETMENUDROPALIGNMENT();            /*     28 */    test_SPI_SETDOUBLECLKWIDTH();               /*     29 */    test_SPI_SETDOUBLECLKHEIGHT();              /*     30 */    test_SPI_SETDOUBLECLICKTIME();              /*     32 */    test_SPI_SETMOUSEBUTTONSWAP();              /*     33 */    test_SPI_SETFASTTASKSWITCH();               /*     36 */    test_SPI_SETDRAGFULLWINDOWS();              /*     37 */    test_SPI_SETWORKAREA();                     /*     47 */    test_SPI_SETSHOWSOUNDS();                   /*     57 */    test_SPI_SETKEYBOARDPREF();                 /*     69 */    test_SPI_SETSCREENREADER();                 /*     71 */    test_SPI_SETWALLPAPER();                    /*    115 */    SendMessageA( ghTestWnd, WM_DESTROY, 0, 0 );    return 0;}START_TEST(sysparams){    int argc;    char** argv;    WNDCLASSA wc;    MSG msg;    HANDLE hThread;    DWORD dwThreadId;    HANDLE hInstance = GetModuleHandleA( NULL );    argc = winetest_get_mainargs(&argv);    strict=(argc >= 3 && strcmp(argv[2],"strict")==0);    trace("strict=%d\n",strict);    change_counter = 0;    change_last_param = 0;    wc.lpszClassName = "SysParamsTestClass";    wc.lpfnWndProc = SysParamsTestWndProc;    wc.style = CS_OWNDC | CS_VREDRAW | CS_HREDRAW;    wc.hInstance = hInstance;    wc.hIcon = LoadIconA( 0, (LPSTR)IDI_APPLICATION );    wc.hCursor = LoadCursorA( 0, (LPSTR)IDC_ARROW );    wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1 );    wc.lpszMenuName = 0;    wc.cbClsExtra = 0;    wc.cbWndExtra = 0;    RegisterClassA( &wc );    ghTestWnd = CreateWindowA( "SysParamsTestClass", "Test System Parameters Application",                               WS_OVERLAPPEDWINDOW, 0, 0, 100, 100, 0, 0, hInstance, NULL );    hThread = CreateThread( NULL, 0, SysParamsThreadFunc, 0, 0, &dwThreadId );    assert( hThread );    CloseHandle( hThread );    while( GetMessageA( &msg, 0, 0, 0 )) {        TranslateMessage( &msg );        DispatchMessageA( &msg );    }}

⌨️ 快捷键说明

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