[ros-diffs] [tretiakov] 25281: Test application for loading and switching keyboard layouts

tretiakov at svn.reactos.org tretiakov at svn.reactos.org
Wed Jan 3 12:16:48 CET 2007


Author: tretiakov
Date: Wed Jan  3 14:16:47 2007
New Revision: 25281

URL: http://svn.reactos.org/svn/reactos?rev=25281&view=rev
Log:
Test application for loading and switching keyboard layouts

Added:
    trunk/reactos/base/applications/testsets/user32/kbdlayout/
    trunk/reactos/base/applications/testsets/user32/kbdlayout/kbdlayout.c
    trunk/reactos/base/applications/testsets/user32/kbdlayout/kbdlayout.dsp
    trunk/reactos/base/applications/testsets/user32/kbdlayout/kbdlayout.rbuild
    trunk/reactos/base/applications/testsets/user32/kbdlayout/kbdlayout.rc
    trunk/reactos/base/applications/testsets/user32/kbdlayout/resource.h
Modified:
    trunk/reactos/base/applications/testsets/user32/user32.rbuild

Added: trunk/reactos/base/applications/testsets/user32/kbdlayout/kbdlayout.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/testsets/user32/kbdlayout/kbdlayout.c?rev=25281&view=auto
==============================================================================
--- trunk/reactos/base/applications/testsets/user32/kbdlayout/kbdlayout.c (added)
+++ trunk/reactos/base/applications/testsets/user32/kbdlayout/kbdlayout.c Wed Jan  3 14:16:47 2007
@@ -1,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<wchar.h>
+#include <windows.h>
+#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;
+	}
+
+}
+
+
+
+

Added: trunk/reactos/base/applications/testsets/user32/kbdlayout/kbdlayout.dsp
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/testsets/user32/kbdlayout/kbdlayout.dsp?rev=25281&view=auto
==============================================================================
--- trunk/reactos/base/applications/testsets/user32/kbdlayout/kbdlayout.dsp (added)
+++ trunk/reactos/base/applications/testsets/user32/kbdlayout/kbdlayout.dsp Wed Jan  3 14:16:47 2007
@@ -1,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

Added: trunk/reactos/base/applications/testsets/user32/kbdlayout/kbdlayout.rbuild
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/testsets/user32/kbdlayout/kbdlayout.rbuild?rev=25281&view=auto
==============================================================================
--- trunk/reactos/base/applications/testsets/user32/kbdlayout/kbdlayout.rbuild (added)
+++ trunk/reactos/base/applications/testsets/user32/kbdlayout/kbdlayout.rbuild Wed Jan  3 14:16:47 2007
@@ -1,0 +1,13 @@
+<module name="kbdlayout" type="win32gui" installbase="system32" installname="kbdlayout.exe">
+	<include base="kbdlayout">.</include>
+	<define name="__USE_W32API" />
+	<define name="_UNICODE" />
+	<define name="_WIN32_IE">0x0500</define>
+	<define name="_WIN32_WINNT">0x0600</define>
+	<define name="WINVER">0x0600</define>
+	<library>kernel32</library>
+	<library>user32</library>
+	<library>gdi32</library>
+	<file>kbdlayout.c</file>
+	<file>kbdlayout.rc</file>
+</module>

Added: trunk/reactos/base/applications/testsets/user32/kbdlayout/kbdlayout.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/testsets/user32/kbdlayout/kbdlayout.rc?rev=25281&view=auto
==============================================================================
--- trunk/reactos/base/applications/testsets/user32/kbdlayout/kbdlayout.rc (added)
+++ trunk/reactos/base/applications/testsets/user32/kbdlayout/kbdlayout.rc Wed Jan  3 14:16:47 2007
@@ -1,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
+

Added: trunk/reactos/base/applications/testsets/user32/kbdlayout/resource.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/testsets/user32/kbdlayout/resource.h?rev=25281&view=auto
==============================================================================
--- trunk/reactos/base/applications/testsets/user32/kbdlayout/resource.h (added)
+++ trunk/reactos/base/applications/testsets/user32/kbdlayout/resource.h Wed Jan  3 14:16:47 2007
@@ -1,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

Modified: trunk/reactos/base/applications/testsets/user32/user32.rbuild
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/testsets/user32/user32.rbuild?rev=25281&r1=25280&r2=25281&view=diff
==============================================================================
--- trunk/reactos/base/applications/testsets/user32/user32.rbuild (original)
+++ trunk/reactos/base/applications/testsets/user32/user32.rbuild Wed Jan  3 14:16:47 2007
@@ -7,4 +7,7 @@
 <directory name="sysicon">
 	<xi:include href="sysicon/sysicon.rbuild" />
 </directory>
+<directory name="kbdlayout">
+	<xi:include href="kbdlayout/kbdlayout.rbuild" />
+</directory>
 </group>




More information about the Ros-diffs mailing list