diff --git a/reactos/base/applications/testsets/user32/kbdlayout/kbdlayout.c b/reactos/base/applications/testsets/user32/kbdlayout/kbdlayout.c new file mode 100644 index 00000000000..4c3239467d3 --- /dev/null +++ b/reactos/base/applications/testsets/user32/kbdlayout/kbdlayout.c @@ -0,0 +1,352 @@ +/* + * PROJECT: ReactOS + * LICENSE: GPL - See COPYING in the top level directory + * FILE: base/applications/testset/user32/kbdlayout/kbdlayout.c + * PURPOSE: Keyboard layout testapp + * COPYRIGHT: Copyright 2007 Saveliy Tretiakov + */ + +#define UNICODE +#include +#include +#include "resource.h" + + + +LRESULT MainDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam); + + +HINSTANCE hInst; +HWND hMainDlg; + + +typedef struct { + WNDPROC OrigProc; + WCHAR WndName[25]; +} WND_DATA; + +INT WINAPI WinMain(HINSTANCE hInstance, + HINSTANCE hPrevInstance, + LPSTR lpCmdLine, + int nCmdShow) +{ + + + hInst = hInstance; + + DialogBoxParam(hInst, + MAKEINTRESOURCE(IDD_MAINDIALOG), + NULL, + (DLGPROC)MainDialogProc, + (LPARAM)NULL); + + return 0; +} + + +int GetKlList(HKL **list) +{ + HKL *ret; + int n; + + n = GetKeyboardLayoutList(0, NULL); + ret = HeapAlloc(GetProcessHeap(), 0, sizeof(HKL)*n); + GetKeyboardLayoutList(n, ret); + *list = ret; + return n; +} + +void FreeKlList(HKL *list) +{ + HeapFree(GetProcessHeap(), 0, list); +} + + +void UpdateData(HWND hDlg) +{ + WCHAR buf[KL_NAMELENGTH]; + WCHAR buf2[512]; + + HWND hList; + HKL *klList, hKl; + int n, i,j; + + GetKeyboardLayoutName(buf); + swprintf(buf2, L"Active layout: %s (%x)", buf, GetKeyboardLayout(0)); + SetWindowText(GetDlgItem(hDlg, IDC_ACTIVE), buf2); + + hList = GetDlgItem(hDlg, IDC_LIST); + SendMessage(hList, LB_RESETCONTENT, 0, 0); + + n = GetKlList(&klList); + hKl = GetKeyboardLayout(0); + for(i = 0; i < n; i++) + { + swprintf(buf, L"%x", klList[i] ); + j = SendMessage(hList, LB_ADDSTRING, 0, (LPARAM) buf); + SendMessage(hList, LB_SETITEMDATA, j, (LPARAM) klList[i]); + if(klList[i] == hKl) SendMessage(hList, LB_SETCURSEL, j, 0); + } + + FreeKlList(klList); +} + +void FormatMsg(WCHAR *format, ...) +{ + WCHAR buf[255]; + va_list argptr; + va_start(argptr, format); + _vsnwprintf(buf, sizeof(buf)-1, format, argptr); + MessageBox(0, buf, L"msg", 0); + va_end(argptr); +} + +void FormatBox(HWND hWnd, DWORD Flags, WCHAR *Caption, WCHAR *Format, ...) +{ + WCHAR buf[255]; + va_list argptr; + va_start(argptr, Format); + _vsnwprintf(buf, sizeof(buf)-1, Format, argptr); + MessageBox(hWnd, buf, Caption, Flags); + va_end(argptr); +} + + +LRESULT CALLBACK WndSubclassProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) +{ + WND_DATA *data = (WND_DATA*)GetWindowLong(hwnd, GWL_USERDATA); + + if(uMsg == WM_INPUTLANGCHANGE) + { + FormatMsg(L"%s: WM_INPUTLANGCHANGE lParam=%x wParam=%x\n", data->WndName, lParam, wParam); + UpdateData(hMainDlg); + //Pass message to defwindowproc + } + else if(uMsg == WM_INPUTLANGCHANGEREQUEST) + { + FormatMsg(L"%s: WM_INPUTLANGCHANGEREQUEST lParam=%x wParam=%x\n", data->WndName, lParam, wParam); + UpdateData(hMainDlg); + //Pass message to defwindowproc + } + + return ( CallWindowProc( data->OrigProc, hwnd, uMsg, wParam, lParam) ); +} + +void SubclassWnd(HWND hWnd, WCHAR* Name) +{ + WND_DATA *data = HeapAlloc(GetProcessHeap(), 0, sizeof(WND_DATA)); + data->OrigProc = (WNDPROC)SetWindowLong( hWnd, GWL_WNDPROC, (LONG)WndSubclassProc); + wcsncpy(data->WndName, Name, 25); + SetWindowLong(hWnd, GWL_USERDATA, (LONG)data); + return; +} + +DWORD GetActivateFlags(HWND hDlg) +{ + DWORD ret = 0; + + if(IsDlgButtonChecked(hDlg, IDC_KLF_REORDER)) + ret |= KLF_REORDER; + +/* if(IsDlgButtonChecked(hDlg, IDC_KLF_RESET)) + ret |= KLF_RESET; + + if(IsDlgButtonChecked(hDlg, IDC_KLF_SHIFTLOCK)) + ret |= KLF_SHIFTLOCK;*/ + + if(IsDlgButtonChecked(hDlg, IDC_KLF_SETFORPROCESS)) + ret |= KLF_SETFORPROCESS; + + return ret; + +} + +DWORD GetLoadFlags(HWND hDlg) +{ + DWORD ret = 0; + + if(IsDlgButtonChecked(hDlg, IDL_KLF_ACTIVATE)) + ret |= KLF_ACTIVATE; + + if(IsDlgButtonChecked(hDlg, IDL_KLF_NOTELLSHELL)) + ret |= KLF_NOTELLSHELL; + + if(IsDlgButtonChecked(hDlg, IDL_KLF_REORDER)) + ret |= KLF_REORDER; + + if(IsDlgButtonChecked(hDlg, IDL_KLF_REPLACELANG)) + ret |= KLF_REPLACELANG; + + if(IsDlgButtonChecked(hDlg, IDL_KLF_SUBSTITUTE_OK)) + ret |= KLF_SUBSTITUTE_OK; + + if(IsDlgButtonChecked(hDlg, IDL_KLF_SETFORPROCESS)) + ret |= KLF_SETFORPROCESS; + + return ret; +} + +HKL GetSelectedLayout(HWND hDlg) +{ + int n; + HWND hList; + hList = GetDlgItem(hDlg, IDC_LIST); + if((n = SendMessage(hList, LB_GETCURSEL, 0, 0)) != LB_ERR) + return (HKL) SendMessage(hList, LB_GETITEMDATA, n, 0); + else return INVALID_HANDLE_VALUE; +} + +HKL GetActivateHandle(HWND hDlg) +{ + + if(IsDlgButtonChecked(hDlg, IDC_FROMLIST)) + return GetSelectedLayout(hDlg); + else if(IsDlgButtonChecked(hDlg, IDC_FROMEDIT)) + { + WCHAR buf[25]; + ULONG kl; + GetWindowText(GetDlgItem(hDlg, IDC_HANDLE), buf, 25); + swscanf(buf, L"%x", &kl); + return (HKL) kl; + } + else if(IsDlgButtonChecked(hDlg, IDC_HKL_NEXT)) + return (HKL)HKL_NEXT; + + return (HKL)HKL_PREV; + +} + + +/*************************************************** + * MainDialogProc * + ***************************************************/ + +LRESULT MainDialogProc(HWND hDlg, + UINT Msg, + WPARAM wParam, + LPARAM lParam) +{ + HKL hKl; + + switch (Msg) + { + case WM_INITDIALOG: + { + UpdateData(hDlg); + hMainDlg = hDlg; + + SubclassWnd(GetDlgItem(hDlg, IDC_LIST), L"List"); + SubclassWnd(GetDlgItem(hDlg, IDC_EDIT1), L"Edit1"); + SubclassWnd(GetDlgItem(hDlg, IDC_EDIT2), L"Edit2"); + SubclassWnd(GetDlgItem(hDlg, IDC_KLID), L"Klid"); + SubclassWnd(GetDlgItem(hDlg, IDC_HANDLE), L"Handle"); + SubclassWnd(GetDlgItem(hDlg, ID_CANCEL), L"Button"); + + CheckRadioButton(hDlg, IDC_FROMLIST, IDC_FROMEDIT, IDC_FROMLIST); + SetWindowText(GetDlgItem(hDlg, IDC_KLID), L"00000419"); + + return 0; + } /* WM_INITDIALOG */ + + case WM_COMMAND: + { + switch(LOWORD(wParam)) + { + case ID_CANCEL: + { + EndDialog(hDlg, ERROR_CANCELLED); + break; + } + + case IDC_ACTIVATE: + { + if((hKl = GetActivateHandle(hDlg)) != INVALID_HANDLE_VALUE) + { + if(!ActivateKeyboardLayout(hKl, GetActivateFlags(hDlg))) + FormatBox(hDlg, MB_ICONERROR, L"Error", + L"ActivateKeyboardLayout() failed. %d", GetLastError()); + else UpdateData(hDlg); + } + else MessageBox(hDlg, L"No item selected", L"Error", MB_ICONERROR); + break; + } + + case IDC_UNLOAD: + { + if((hKl = GetSelectedLayout(hDlg)) != INVALID_HANDLE_VALUE) + { + if(!UnloadKeyboardLayout(hKl)) + FormatBox(hDlg, MB_ICONERROR, L"Error", + L"UnloadKeyboardLayout() failed. %d", + GetLastError()); + else UpdateData(hDlg); + } + else MessageBox(hDlg, L"No item selected", L"Error", MB_ICONERROR); + break; + } + + case IDC_LOAD: + { + WCHAR buf[255]; + GetWindowText(GetDlgItem(hDlg, IDC_KLID), buf, sizeof(buf)); + if(!LoadKeyboardLayout(buf, GetLoadFlags(hDlg))) + FormatBox(hDlg, MB_ICONERROR, L"Error", + L"LoadKeyboardLayout() failed. %d", + GetLastError()); + else UpdateData(hDlg); + break; + } + + case IDC_REFRESH: + { + UpdateData(hDlg); + break; + } + + case IDC_LIST: + { + if(HIWORD(wParam) == LBN_SELCHANGE) + { + WCHAR buf[25]; + if((hKl = GetSelectedLayout(hDlg)) != NULL) + { + swprintf(buf, L"%x", hKl); + SetWindowText(GetDlgItem(hDlg, IDC_HANDLE), buf); + } + } + break; + } + + } + + return TRUE; + } /* WM_COMMAND */ + + + case WM_INPUTLANGCHANGE: + { + FormatMsg(L"dlg WM_INPUTLANGCHANGE lParam=%x wParam=%x\n", lParam, wParam); + return FALSE; + } + + case WM_INPUTLANGCHANGEREQUEST: + { + FormatMsg(L"dlg WM_INPUTLANGCHANGEREQUEST lParam=%x wParam=%x\n", lParam, wParam); + return FALSE; + } + + case WM_CLOSE: + { + EndDialog(hDlg, ERROR_CANCELLED); + return TRUE; + } /* WM_CLOSE */ + + default: + return FALSE; + } + +} + + + + diff --git a/reactos/base/applications/testsets/user32/kbdlayout/kbdlayout.dsp b/reactos/base/applications/testsets/user32/kbdlayout/kbdlayout.dsp new file mode 100644 index 00000000000..e2d2d804e6d --- /dev/null +++ b/reactos/base/applications/testsets/user32/kbdlayout/kbdlayout.dsp @@ -0,0 +1,98 @@ +# Microsoft Developer Studio Project File - Name="kbdlayout" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=kbdlayout - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "kbdlayout.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "kbdlayout.mak" CFG="kbdlayout - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "kbdlayout - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE "kbdlayout - Win32 Debug" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "kbdlayout - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD BASE RSC /l 0x419 /d "NDEBUG" +# ADD RSC /l 0x419 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 + +!ELSEIF "$(CFG)" == "kbdlayout - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD BASE RSC /l 0x419 /d "_DEBUG" +# ADD RSC /l 0x419 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept +# SUBTRACT LINK32 /pdb:none + +!ENDIF + +# Begin Target + +# Name "kbdlayout - Win32 Release" +# Name "kbdlayout - Win32 Debug" +# Begin Source File + +SOURCE=.\kbdlayout.c +# End Source File +# Begin Source File + +SOURCE=.\kbdlayout.rc +# End Source File +# Begin Source File + +SOURCE=.\resource.h +# End Source File +# End Target +# End Project diff --git a/reactos/base/applications/testsets/user32/kbdlayout/kbdlayout.rbuild b/reactos/base/applications/testsets/user32/kbdlayout/kbdlayout.rbuild new file mode 100644 index 00000000000..1f954ab0875 --- /dev/null +++ b/reactos/base/applications/testsets/user32/kbdlayout/kbdlayout.rbuild @@ -0,0 +1,13 @@ + + . + + + 0x0500 + 0x0600 + 0x0600 + kernel32 + user32 + gdi32 + kbdlayout.c + kbdlayout.rc + diff --git a/reactos/base/applications/testsets/user32/kbdlayout/kbdlayout.rc b/reactos/base/applications/testsets/user32/kbdlayout/kbdlayout.rc new file mode 100644 index 00000000000..a52512e78c7 --- /dev/null +++ b/reactos/base/applications/testsets/user32/kbdlayout/kbdlayout.rc @@ -0,0 +1,141 @@ +//Microsoft Developer Studio generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "afxres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// Russian resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_RUS) +#ifdef _WIN32 +LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT +#pragma code_page(1251) +#endif //_WIN32 + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_MAINDIALOG DIALOG DISCARDABLE 0, 0, 403, 223 +STYLE DS_CENTER | WS_MINIMIZEBOX | WS_CAPTION | WS_SYSMENU +CAPTION "Keyboard layout test" +FONT 8, "MS Sans Serif" +BEGIN + PUSHBUTTON "Exit",ID_CANCEL,138,202,121,14 + EDITTEXT IDC_EDIT1,7,140,195,58,ES_MULTILINE | ES_AUTOHSCROLL + LISTBOX IDC_LIST,185,17,101,87,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | + WS_TABSTOP + LTEXT "Loaded layouts",IDC_STATIC,190,7,49,8 + LTEXT "Active layout:",IDC_ACTIVE,7,127,173,10,SS_SUNKEN + EDITTEXT IDC_EDIT2,206,140,190,58,ES_MULTILINE | ES_AUTOHSCROLL + PUSHBUTTON "Unload",IDC_UNLOAD,186,105,48,14 + PUSHBUTTON "Activate",IDC_ACTIVATE,237,121,47,14 + GROUPBOX "Activate Flags",IDC_STATIC,293,7,103,67 + CONTROL "KLF_REORDER",IDC_KLF_REORDER,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,299,22,69,10 + CONTROL "KLF_RESET",IDC_KLF_RESET,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,299,34,66,12 + CONTROL "KLF_SETFORPROCESS",IDC_KLF_SETFORPROCESS,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,299,48,95,10 + CONTROL "KLF_SHIFTLOCK",IDC_KLF_SHIFTLOCK,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,299,60,72,10 + GROUPBOX "Activate layout",IDC_STATIC,294,77,101,60 + CONTROL "From list",IDC_FROMLIST,"Button",BS_AUTORADIOBUTTON | + WS_GROUP,298,90,41,10 + CONTROL "HKL_NEXT",IDC_HKL_NEXT,"Button",BS_AUTORADIOBUTTON,298, + 101,53,10 + CONTROL "HKL_PREV",IDC_HKL_PREV,"Button",BS_AUTORADIOBUTTON,298, + 112,53,10 + CONTROL "From edit",IDC_FROMEDIT,"Button",BS_AUTORADIOBUTTON,298, + 124,45,10 + GROUPBOX "Load layout",IDC_STATIC,7,7,173,118 + CONTROL "KLF_ACTIVATE",IDL_KLF_ACTIVATE,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,15,42,67,10 + CONTROL "KLF_NOTELLSHELL",IDL_KLF_NOTELLSHELL,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,15,55,83,10 + LTEXT "pwszKLID:",IDC_STATIC,15,22,35,8 + EDITTEXT IDC_KLID,53,21,64,14,ES_AUTOHSCROLL | ES_NUMBER + CONTROL "KLF_REORDER",IDL_KLF_REORDER,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,15,68,69,10 + CONTROL "KLF_REPLACELANG",IDL_KLF_REPLACELANG,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,15,81,85,10 + CONTROL "KLF_SUBSTITUTE_OK",IDL_KLF_SUBSTITUTE_OK,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,15,94,92,10 + CONTROL "KLF_SETFORPROCESS",IDL_KLF_SETFORPROCESS,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,15,107,95,10 + PUSHBUTTON "Load",IDC_LOAD,125,21,50,14 + PUSHBUTTON "Refresh",IDC_REFRESH,237,106,48,14 + EDITTEXT IDC_HANDLE,185,122,49,14,ES_AUTOHSCROLL +END + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO DISCARDABLE +BEGIN + IDD_MAINDIALOG, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 396 + TOPMARGIN, 7 + BOTTOMMARGIN, 216 + END +END +#endif // APSTUDIO_INVOKED + + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""afxres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +#endif // Russian resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/reactos/base/applications/testsets/user32/kbdlayout/resource.h b/reactos/base/applications/testsets/user32/kbdlayout/resource.h new file mode 100644 index 00000000000..89af5512e6c --- /dev/null +++ b/reactos/base/applications/testsets/user32/kbdlayout/resource.h @@ -0,0 +1,43 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Developer Studio generated include file. +// Used by lab17.rc +// +#define IDD_MAINDIALOG 101 +#define ID_CANCEL 1000 +#define IDC_EDIT1 1021 +#define IDC_LIST 1022 +#define IDC_ACTIVE 1023 +#define IDC_EDIT2 1024 +#define IDC_UNLOAD 1025 +#define IDC_ACTIVATE 1026 +#define IDC_KLF_REORDER 1027 +#define IDC_KLF_RESET 1028 +#define IDC_KLF_SETFORPROCESS 1029 +#define IDC_KLF_SHIFTLOCK 1030 +#define IDC_FROMLIST 1032 +#define IDC_HKL_NEXT 1033 +#define IDC_HKL_PREV 1034 +#define IDL_KLF_ACTIVATE 1035 +#define IDL_KLF_NOTELLSHELL 1036 +#define IDC_KLID 1037 +#define IDL_KLF_REORDER 1038 +#define IDL_KLF_REPLACELANG 1039 +#define IDL_KLF_SUBSTITUTE_OK 1040 +#define IDL_KLF_SETFORPROCESS 1041 +#define IDC_HKL_PREV2 1042 +#define IDC_FROMEDIT 1042 +#define IDC_LOAD 1043 +#define IDC_REFRESH 1044 +#define IDC_HANDLE 1046 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NO_MFC 1 +#define _APS_NEXT_RESOURCE_VALUE 105 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1049 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/reactos/base/applications/testsets/user32/user32.rbuild b/reactos/base/applications/testsets/user32/user32.rbuild index 7ff61eb109f..b2097ac0df8 100644 --- a/reactos/base/applications/testsets/user32/user32.rbuild +++ b/reactos/base/applications/testsets/user32/user32.rbuild @@ -7,4 +7,7 @@ + + +