- Merge 25404-25406, very small part of 25407, 25409, 25410, 25412+25414, 25422-25426.
authorAleksey Bragin <aleksey@reactos.org>
Mon, 15 Jan 2007 20:33:07 +0000 (20:33 +0000)
committerAleksey Bragin <aleksey@reactos.org>
Mon, 15 Jan 2007 20:33:07 +0000 (20:33 +0000)
svn path=/branches/ros-branch-0_3_1/; revision=25470

23 files changed:
reactos/base/applications/cacls/lang/en-US.rc
reactos/base/applications/imagesoft/lang/en-US.rc
reactos/dll/cpl/desk/Fr.rc
reactos/dll/cpl/intl/Fr.rc
reactos/dll/cpl/intl/Ja.rc
reactos/dll/cpl/intl/currency.c
reactos/dll/cpl/intl/cz.rc
reactos/dll/cpl/intl/de.rc
reactos/dll/cpl/intl/en.rc
reactos/dll/cpl/intl/es.rc
reactos/dll/cpl/intl/hu.rc
reactos/dll/cpl/intl/nl.rc
reactos/dll/cpl/intl/resource.h
reactos/dll/cpl/intl/ru.rc
reactos/dll/cpl/intl/sv.rc
reactos/dll/cpl/intl/uk.rc
reactos/dll/win32/user32/windows/input.c
reactos/drivers/base/blue/blue.c
reactos/ntoskrnl/ex/pushlock.c
reactos/subsystems/win32/win32k/include/input.h
reactos/subsystems/win32/win32k/ntuser/focus.c
reactos/subsystems/win32/win32k/ntuser/keyboard.c
reactos/subsystems/win32/win32k/ntuser/misc.c

index dfc4b4b..4ccd5c5 100644 (file)
@@ -24,7 +24,7 @@ CACLS filename [/T] [/E] [/C] [/G user:perm [...]] [/R user [...]]\n\
                               C  Change (write)\n\
                               F  Full control\n\
    /D user       Deny specified user access.\n\
                               C  Change (write)\n\
                               F  Full control\n\
    /D user       Deny specified user access.\n\
-Wildcards can be used to specify more that one file in a command.\n\
+Wildcards can be used to specify more than one file in a command.\n\
 You can specify more than one user in a command.\n\n\
 Abbreviations:\n\
    CI - Container Inherit.\n\
 You can specify more than one user in a command.\n\n\
 Abbreviations:\n\
    CI - Container Inherit.\n\
index 7e8272c..a771896 100644 (file)
@@ -171,7 +171,7 @@ END
 STRINGTABLE DISCARDABLE
 BEGIN
   IDS_IMAGE_MONOCHROME  "Monochrome (1 bit)"
 STRINGTABLE DISCARDABLE
 BEGIN
   IDS_IMAGE_MONOCHROME  "Monochrome (1 bit)"
-  IDS_IMAGE_GREYSCALE   "Greyscale (8 bit)"
+  IDS_IMAGE_GREYSCALE   "Grayscale (8 bit)"
   IDS_IMAGE_PALETTE     "Palette or 256 color (8 bit)"
   IDS_IMAGE_TRUECOLOR   "True color (24 bit)"
 
   IDS_IMAGE_PALETTE     "Palette or 256 color (8 bit)"
   IDS_IMAGE_TRUECOLOR   "True color (24 bit)"
 
index f81081f..a2ca764 100644 (file)
@@ -1,4 +1,5 @@
 /* French translation by Benoit Plante 2005 (cmoibenlepro AT hotmail DOT com) */
 /* French translation by Benoit Plante 2005 (cmoibenlepro AT hotmail DOT com) */
+/* Updated French translation by Pierre Schweitzer 2007 (heis_spiter AT hotmail DOT com) */
 
 LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
 
 
 LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
 
@@ -88,19 +89,19 @@ IDR_POPUP_MENU MENU DISCARDABLE
 BEGIN
   POPUP ""
   BEGIN
 BEGIN
   POPUP ""
   BEGIN
-       MENUITEM "&Configure",     ID_MENU_CONFIG
-       MENUITEM "&Preview",       ID_MENU_PREVIEW
+       MENUITEM "&Configurer",     ID_MENU_CONFIG
+       MENUITEM "A&perçu",       ID_MENU_PREVIEW
        MENUITEM SEPARATOR
        MENUITEM SEPARATOR
-       MENUITEM "&Add",           ID_MENU_ADD
-       MENUITEM "&Delete\tDel",   ID_MENU_DELETE
+       MENUITEM "&Ajouer",           ID_MENU_ADD
+       MENUITEM "Supprimer\tSuppr",   ID_MENU_DELETE
   END
 END
 
 IDR_PREVIEW_MENU MENU
 BEGIN
     MENUITEM "Normal",           ID_MENU_NORMAL
   END
 END
 
 IDR_PREVIEW_MENU MENU
 BEGIN
     MENUITEM "Normal",           ID_MENU_NORMAL
-    MENUITEM "Disabled",         ID_MENU_DISABLED
-    MENUITEM "Selected",         ID_MENU_SELECTED
+    MENUITEM "Désactivé",         ID_MENU_DISABLED
+    MENUITEM "Sélectionné",         ID_MENU_SELECTED
 END
 
 STRINGTABLE 
 END
 
 STRINGTABLE 
@@ -132,10 +133,32 @@ END
 
 STRINGTABLE DISCARDABLE
 BEGIN
 
 STRINGTABLE DISCARDABLE
 BEGIN
-    IDS_INACTWIN "Inactive Window"
-    IDS_ACTWIN   "Active Window"
-    IDS_WINTEXT  "Window Text"
-    IDS_MESSBOX  "Message Box"
-    IDS_MESSTEXT "Message Text"
+    IDS_INACTWIN "Fenêtre inactive"
+    IDS_ACTWIN   "Fenêtre active"
+    IDS_WINTEXT  "Texte de la fenêtre"
+    IDS_MESSBOX  "Boîte de message"
+    IDS_MESSTEXT "Texte de message"
     IDS_BUTTEXT  "OK"
 END
     IDS_BUTTEXT  "OK"
 END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+    IDS_ITEM_3D_OBJECTS      "Objets 3D"
+    IDS_ITEM_SCROLLBAR       "Barre de défilement"
+    IDS_ITEM_DESKTOP         "Bureau"
+    IDS_ITEM_MESSAGE_BOX     "Boîte de message"
+    IDS_ITEM_WINDOW          "Fenêtre"
+    IDS_ITEM_APP_BACKGROUND  "Espace de travail de l'application"
+    IDS_ITEM_SELECTED_ITEMS  "Éléments sélectionnés"
+    IDS_ITEM_MENU            "Menu"
+    IDS_ITEM_PALETTE_TITLE   "Tite de palette"
+    IDS_ITEM_TOOLTIP         "Info-bulle"
+    IDS_ITEM_INACTIVE_WINDOW "Bordure de fenêtre inactive"
+    IDS_ITEM_ACTIVE_WINDOW   "Bordure de fenêtre active"
+    IDS_ITEM_ICON            "Icône"
+    IDS_ITEM_ICON_SPACE_HORZ "Espacement des icônes (horizontal)"
+    IDS_ITEM_ICON_SPACE_VERT "Espacement des icônes (vertical)"
+    IDS_ITEM_INACTIVE_TITLE  "Barre de titre inactive"
+    IDS_ITEM_ACTIVE_TITLE    "Barre de titre active"
+    IDS_ITEM_CAPTION_BUTTONS "Boutons de barre de titre"
+END
index 4377a00..3a52d59 100644 (file)
 /* French translation by Benoit Plante 2005 (cmoibenlepro AT hotmail DOT com) */\r
 \r
 /* French translation by Benoit Plante 2005 (cmoibenlepro AT hotmail DOT com) */\r
 \r
-LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
-
-IDD_GENERALPAGE DIALOGEX 0, 0, 246, 188
-STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
-CAPTION "Général"
-FONT 8, "MS Shell Dlg"
-BEGIN
-  LTEXT "Page de propriétés 1",-1,73,74,90,8
-END
-
-
-IDD_NUMBERSPAGE DIALOGEX 0, 0, 246, 188
-STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
-CAPTION "Nombres"
-FONT 8, "MS Shell Dlg"
-BEGIN
-  LTEXT "Page de propriétés 2",-1,73,74,90,8
-END
-
-
-IDD_CURRENCYPAGE DIALOGEX 0, 0, 246, 188
-STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
-CAPTION "Devise"
-FONT 8, "MS Shell Dlg"
-BEGIN
-  LTEXT "Page de propriétés 3",-1,73,74,90,8
-END
-
-
-IDD_TIMEPAGE DIALOGEX 0, 0, 246, 188
-STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
-CAPTION "Heure"
-FONT 8, "MS Shell Dlg"
-BEGIN
-  GROUPBOX "Apparence de l'heure", -1, 7, 7, 228, 33, WS_CHILD | WS_VISIBLE
-  LTEXT "Échantillon d'heure:", -1, 13, 21, 54, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
-  EDITTEXT IDC_TIMESAMPLE, 68, 19, 84, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP
-  LTEXT "Format d'heure:", -1, 13, 52, 54, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
-  COMBOBOX IDC_TIMEFORMAT, 68, 50, 84, 100, CBS_DROPDOWN | WS_CHILD | WS_VISIBLE | WS_TABSTOP
-  LTEXT "&Séparateur des heures:", -1, 13, 70, 54, 10, WS_VISIBLE | WS_GROUP
-  COMBOBOX IDC_TIMESEPARATOR, 68, 68, 84, 100, CBS_DROPDOWN | WS_CHILD | WS_VISIBLE | WS_TABSTOP
-  LTEXT "Symbole de l'avant-midi(A&M):", -1, 13, 88, 54, 10, WS_VISIBLE | WS_GROUP
-  COMBOBOX IDC_TIMEAMSYMBOL, 68, 86, 84, 100, CBS_DROPDOWN | WS_CHILD | WS_VISIBLE | WS_TABSTOP
-  LTEXT "Symbole de l'après-midi(&PM):", -1, 13, 106, 54, 10, WS_VISIBLE | WS_GROUP
-  COMBOBOX IDC_TIMEPMSYMBOL, 68, 104, 84, 100, CBS_DROPDOWN | WS_CHILD | WS_VISIBLE | WS_TABSTOP
-  GROUPBOX "", -1, 7, 124, 228, 60, WS_VISIBLE
-  LTEXT "Notation de l'heure\n\n\
-h = heure    m = minute    s = seconde    t = AM ou PM\n\n\
-h = 12 heures   H =24 heures \n\
-hh, mm, ss = Zéro de départ   h, m, s = Pas de zéro de départ",
-        -1, 13, 133, 214, 47, WS_CHILD |WS_VISIBLE | WS_GROUP
-END
-
-
-IDD_DATEPAGE DIALOGEX 0, 0, 246, 188
-STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
-CAPTION "Date"
-FONT 8, "MS Shell Dlg"
-BEGIN
-  LTEXT "Page de propriétés 5",-1,73,74,90,8
-END
-
-
-IDD_LOCALEPAGE DIALOGEX 0, 0, 246, 188
-STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
-CAPTION "Langues"
-FONT 8, "MS Shell Dlg"
-BEGIN
-  GROUPBOX "Langue principale", -1, 8, 11, 228, 74
-  ICON IDC_FLAGS, IDC_ICON1, 12, 26, 21, 20, SS_ICON
-  LTEXT "Sélectionnez la langue principale que vous voulez utiliser:", -1, 38, 25, 193, 22
-  COMBOBOX IDC_LANGUAGELIST, 39, 49, 191, 83, CBS_DROPDOWNLIST | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
-END
-
-
-STRINGTABLE
-BEGIN
-  IDS_CPLNAME "Options régionales"
-  IDS_CPLDESCRIPTION "Selectionner les langues, les formats de nombres, les devises, l'heure et la date."
-END
+LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL\r
+\r
+IDD_GENERALPAGE DIALOGEX 0, 0, 246, 188\r
+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION\r
+CAPTION "Général"\r
+FONT 8, "MS Shell Dlg"\r
+BEGIN\r
+  LTEXT "Page de propriétés 1",-1,73,74,90,8\r
+END\r
+\r
+\r
+IDD_NUMBERSPAGE DIALOGEX 0, 0, 246, 188\r
+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION\r
+CAPTION "Nombres"\r
+FONT 8, "MS Shell Dlg"\r
+BEGIN\r
+  LTEXT "Page de propriétés 2",-1,73,74,90,8\r
+END\r
+\r
+\r
+IDD_CURRENCYPAGE DIALOGEX 0, 0, 246, 188\r
+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION\r
+CAPTION "Devise"\r
+FONT 8, "MS Shell Dlg"\r
+BEGIN\r
+  GROUPBOX "Appearance sample", -1, 7, 7, 228, 33, WS_CHILD | WS_VISIBLE\r
+  LTEXT "Positive:", -1, 13, 21, 31, 10, WS_CHILD |WS_VISIBLE | WS_GROUP\r
+  EDITTEXT IDC_CURRENCYPOSSAMPLE, 42, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP\r
+  LTEXT "Negative:", -1, 120, 21, 31, 10, WS_CHILD |WS_VISIBLE | WS_GROUP\r
+  EDITTEXT IDC_CURRENCYNEGSAMPLE, 154, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP\r
+  LTEXT "&Currency symbol:", -1, 20, 51, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP\r
+  COMBOBOX IDC_CURRENCYSYMBOL, 124, 49, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL\r
+  LTEXT "&Positive Amount:", -1, 20, 68, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP\r
+  COMBOBOX IDC_CURRENCYPOSVALUE, 124, 66, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL\r
+  LTEXT "&Negative Amount:", -1, 20, 85, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP\r
+  COMBOBOX IDC_CURRENCYNEGVALUE, 124, 83, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL\r
+  LTEXT "&Decimal separator:", -1, 20, 111, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP\r
+  COMBOBOX IDC_CURRENCYDECSEP, 124, 109, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL\r
+  LTEXT "&Number of fractional digits:", -1, 20, 128, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP\r
+  COMBOBOX IDC_CURRENCYDECNUM, 124, 126, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL\r
+  LTEXT "&Grouping symbol:", -1, 20, 156, 100, 10, WS_CHILD |WS_VISIBLE | WS_GROUP\r
+  COMBOBOX IDC_CURRENCYGRPSEP, 124, 154, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL\r
+  LTEXT "&Digit grouping:", -1, 20, 173, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP\r
+  COMBOBOX IDC_CURRENCYGRPNUM, 124, 171, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL\r
+END\r
+\r
+\r
+IDD_TIMEPAGE DIALOGEX 0, 0, 246, 188\r
+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION\r
+CAPTION "Heure"\r
+FONT 8, "MS Shell Dlg"\r
+BEGIN\r
+  GROUPBOX "Apparence de l'heure", -1, 7, 7, 228, 33, WS_CHILD | WS_VISIBLE\r
+  LTEXT "Échantillon d'heure:", -1, 13, 21, 54, 10, WS_CHILD |WS_VISIBLE | WS_GROUP\r
+  EDITTEXT IDC_TIMESAMPLE, 68, 19, 84, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP\r
+  LTEXT "Format d'heure:", -1, 13, 52, 54, 10, WS_CHILD |WS_VISIBLE | WS_GROUP\r
+  COMBOBOX IDC_TIMEFORMAT, 68, 50, 84, 100, CBS_DROPDOWN | WS_CHILD | WS_VISIBLE | WS_TABSTOP\r
+  LTEXT "&Séparateur des heures:", -1, 13, 70, 54, 10, WS_VISIBLE | WS_GROUP\r
+  COMBOBOX IDC_TIMESEPARATOR, 68, 68, 84, 100, CBS_DROPDOWN | WS_CHILD | WS_VISIBLE | WS_TABSTOP\r
+  LTEXT "Symbole de l'avant-midi(A&M):", -1, 13, 88, 54, 10, WS_VISIBLE | WS_GROUP\r
+  COMBOBOX IDC_TIMEAMSYMBOL, 68, 86, 84, 100, CBS_DROPDOWN | WS_CHILD | WS_VISIBLE | WS_TABSTOP\r
+  LTEXT "Symbole de l'après-midi(&PM):", -1, 13, 106, 54, 10, WS_VISIBLE | WS_GROUP\r
+  COMBOBOX IDC_TIMEPMSYMBOL, 68, 104, 84, 100, CBS_DROPDOWN | WS_CHILD | WS_VISIBLE | WS_TABSTOP\r
+  GROUPBOX "", -1, 7, 124, 228, 60, WS_VISIBLE\r
+  LTEXT "Notation de l'heure\n\n\\r
+h = heure    m = minute    s = seconde    t = AM ou PM\n\n\\r
+h = 12 heures   H =24 heures \n\\r
+hh, mm, ss = Zéro de départ   h, m, s = Pas de zéro de départ",\r
+        -1, 13, 133, 214, 47, WS_CHILD |WS_VISIBLE | WS_GROUP\r
+END\r
+\r
+\r
+IDD_DATEPAGE DIALOGEX 0, 0, 246, 188\r
+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION\r
+CAPTION "Date"\r
+FONT 8, "MS Shell Dlg"\r
+BEGIN\r
+  LTEXT "Page de propriétés 5",-1,73,74,90,8\r
+END\r
+\r
+\r
+IDD_LOCALEPAGE DIALOGEX 0, 0, 246, 188\r
+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION\r
+CAPTION "Langues"\r
+FONT 8, "MS Shell Dlg"\r
+BEGIN\r
+  GROUPBOX "Langue principale", -1, 8, 11, 228, 74\r
+  ICON IDC_FLAGS, IDC_ICON1, 12, 26, 21, 20, SS_ICON\r
+  LTEXT "Sélectionnez la langue principale que vous voulez utiliser:", -1, 38, 25, 193, 22\r
+  COMBOBOX IDC_LANGUAGELIST, 39, 49, 191, 83, CBS_DROPDOWNLIST | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL\r
+END\r
+\r
+\r
+STRINGTABLE\r
+BEGIN\r
+  IDS_CPLNAME "Options régionales"\r
+  IDS_CPLDESCRIPTION "Selectionner les langues, les formats de nombres, les devises, l'heure et la date."\r
+END\r
index 5614e38..366a6ba 100644 (file)
@@ -23,7 +23,25 @@ STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
 CAPTION "\92Ê\89Ý"
 FONT 9, "MS UI Gothic"
 BEGIN
 CAPTION "\92Ê\89Ý"
 FONT 9, "MS UI Gothic"
 BEGIN
-  LTEXT "Property Page 3",-1,73,74,90,8
+  GROUPBOX "Appearance sample", -1, 7, 7, 228, 33, WS_CHILD | WS_VISIBLE
+  LTEXT "Positive:", -1, 13, 21, 31, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  EDITTEXT IDC_CURRENCYPOSSAMPLE, 42, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP
+  LTEXT "Negative:", -1, 120, 21, 31, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  EDITTEXT IDC_CURRENCYNEGSAMPLE, 154, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP
+  LTEXT "&Currency symbol:", -1, 20, 51, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYSYMBOL, 124, 49, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Positive Amount:", -1, 20, 68, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYPOSVALUE, 124, 66, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Negative Amount:", -1, 20, 85, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYNEGVALUE, 124, 83, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Decimal separator:", -1, 20, 111, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYDECSEP, 124, 109, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Number of fractional digits:", -1, 20, 128, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYDECNUM, 124, 126, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Grouping symbol:", -1, 20, 156, 100, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYGRPSEP, 124, 154, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Digit grouping:", -1, 20, 173, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYGRPNUM, 124, 171, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
 END
 
 
 END
 
 
index 9700546..5fea83f 100644 (file)
 #include <windows.h>
 #include <commctrl.h>
 #include <cpl.h>
 #include <windows.h>
 #include <commctrl.h>
 #include <cpl.h>
+#include <tchar.h>
 
 #include "intl.h"
 #include "resource.h"
 
 
 
 #include "intl.h"
 #include "resource.h"
 
 
+typedef struct _GLOBAL_DATA
+{
+    TCHAR szCurrencySymbol[6];
+    TCHAR szDecimalSep[4];
+    TCHAR szThousandSep[4];
+    TCHAR szGrouping[10];
+
+    int PositiveOrder;
+    int NegativeOrder;
+    int NumDigits;
+
+} GLOBAL_DATA, *PGLOBAL_DATA;
+
+
+static VOID
+GetInitialCurrencyValues(PGLOBAL_DATA pGlobalData)
+{
+    TCHAR szBuffer[256];
+    int ret;
+
+    /* Get currency symbol */
+    ret = GetLocaleInfo(LOCALE_USER_DEFAULT,
+                        LOCALE_SCURRENCY,
+                        pGlobalData->szCurrencySymbol, 6);
+
+    /* Get positive format */
+    ret = GetLocaleInfo(LOCALE_USER_DEFAULT,
+                        LOCALE_ICURRENCY,
+                        szBuffer, 256);
+    if (ret != 0)
+    {
+        pGlobalData->PositiveOrder = _ttoi(szBuffer);
+    }
+
+    /* Get negative format */
+    ret = GetLocaleInfo(LOCALE_USER_DEFAULT,
+                        LOCALE_INEGCURR,
+                        szBuffer, 256);
+    if (ret != 0)
+    {
+        pGlobalData->NegativeOrder = _ttoi(szBuffer);
+    }
+
+    /* Get number of fractional digits */
+    ret = GetLocaleInfo(LOCALE_USER_DEFAULT,
+                        LOCALE_ICURRDIGITS,
+                        szBuffer, 256);
+    if (ret != 0)
+    {
+        pGlobalData->NumDigits = _ttoi(szBuffer);
+    }
+
+    /* Get decimal separator */
+    ret = GetLocaleInfoW(LOCALE_USER_DEFAULT,
+                         LOCALE_SMONDECIMALSEP,
+                         pGlobalData->szDecimalSep, 4);
+
+    /* Get group separator */
+    ret = GetLocaleInfo(LOCALE_USER_DEFAULT,
+                        LOCALE_SMONTHOUSANDSEP,
+                        pGlobalData->szThousandSep, 4);
+
+    /* Get grouping */
+    ret = GetLocaleInfo(LOCALE_USER_DEFAULT,
+                        LOCALE_SMONGROUPING,
+                        pGlobalData->szGrouping, 10);
+
+}
+
+
+static VOID
+UpdateExamples(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
+{
+    TCHAR szBuffer[256];
+    CURRENCYFMT cyFmt;
+
+    cyFmt.NumDigits = pGlobalData->NumDigits;
+    cyFmt.LeadingZero = 0;
+    cyFmt.Grouping = 3;
+    cyFmt.lpDecimalSep = pGlobalData->szDecimalSep;
+    cyFmt.lpThousandSep = pGlobalData->szThousandSep;
+    cyFmt.PositiveOrder = pGlobalData->PositiveOrder;
+    cyFmt.NegativeOrder = pGlobalData->NegativeOrder;
+    cyFmt.lpCurrencySymbol = pGlobalData->szCurrencySymbol;
+
+    /* positive example */
+    GetCurrencyFormat(LOCALE_USER_DEFAULT, 0,
+                      _T("123456789.00"),
+                      &cyFmt, szBuffer, 256);
+
+    SetDlgItemText(hwndDlg,
+                   IDC_CURRENCYPOSSAMPLE,
+                   szBuffer);
+
+    /* negative example */
+    GetCurrencyFormat(LOCALE_USER_DEFAULT, 0,
+                      _T("-123456789.00"),
+                      &cyFmt, szBuffer, 256);
+
+    SetDlgItemText(hwndDlg,
+                   IDC_CURRENCYNEGSAMPLE,
+                   szBuffer);
+}
+
+
+static VOID
+OnInitDialog(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
+{
+    TCHAR szBuffer[256];
+    CURRENCYFMT cyFmt;
+    int i;
+
+    GetInitialCurrencyValues(pGlobalData);
+
+    /* Set currency symbol */
+    SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYSYMBOL),
+                CB_ADDSTRING,
+                0,
+                (LPARAM)pGlobalData->szCurrencySymbol);
+
+    SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYSYMBOL),
+                CB_SETCURSEL,
+                0, /* index */
+                0);
+
+
+    /* positive currency values */
+    cyFmt.NumDigits = pGlobalData->NumDigits;
+    cyFmt.LeadingZero = 0;
+    cyFmt.Grouping = 3;
+    cyFmt.lpDecimalSep = pGlobalData->szDecimalSep;
+    cyFmt.lpThousandSep = pGlobalData->szThousandSep;
+    cyFmt.NegativeOrder = 0;
+    cyFmt.lpCurrencySymbol = pGlobalData->szCurrencySymbol;
+
+    for (i = 0; i < 4; i++)
+    {
+        cyFmt.PositiveOrder = i;
+        GetCurrencyFormat(LOCALE_USER_DEFAULT, 0,
+                          _T("1.1"),
+                          &cyFmt, szBuffer, 256);
+
+        SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYPOSVALUE),
+                    CB_INSERTSTRING,
+                    -1,
+                    (LPARAM)szBuffer);
+    }
+
+    SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYPOSVALUE),
+                CB_SETCURSEL,
+                pGlobalData->PositiveOrder,
+                0);
+
+    /* negative currency values */
+    cyFmt.PositiveOrder = 0;
+    for (i = 0; i < 16; i++)
+    {
+        cyFmt.NegativeOrder = i;
+        GetCurrencyFormat(LOCALE_USER_DEFAULT, 0,
+                          _T("-1.1"),
+                          &cyFmt, szBuffer, 256);
+
+        SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYNEGVALUE),
+                    CB_INSERTSTRING,
+                    -1,
+                    (LPARAM)szBuffer);
+    }
+
+    SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYNEGVALUE),
+                CB_SETCURSEL,
+                pGlobalData->NegativeOrder, /* index */
+                0);
+
+    /* decimal separator */
+    SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYDECSEP),
+                CB_ADDSTRING,
+                0,
+                (LPARAM)pGlobalData->szDecimalSep);
+
+    SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYDECSEP),
+                CB_SETCURSEL,
+                0, /* index */
+                0);
+
+
+    /* */
+    for (i = 0; i < 10; i++)
+    {
+        szBuffer[0] = _T('0') + i;
+        szBuffer[1] = 0;
+        SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYDECNUM),
+                    CB_ADDSTRING,
+                    0,
+                    (LPARAM)szBuffer);
+    }
+
+    SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYDECNUM),
+                CB_SETCURSEL,
+                pGlobalData->NumDigits, /* index */
+                0);
+
+
+    /* digit group separator */
+    SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYGRPSEP),
+                CB_ADDSTRING,
+                0,
+                (LPARAM)pGlobalData->szThousandSep);
+
+    SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYGRPSEP),
+                CB_SETCURSEL,
+                0, /* index */
+                0);
+
+    /* digit grouping */
+    cyFmt.NumDigits = 0;
+    cyFmt.LeadingZero = 0;
+    cyFmt.lpDecimalSep = _T("");
+    cyFmt.lpThousandSep = pGlobalData->szThousandSep;
+    cyFmt.NegativeOrder = 0;
+    cyFmt.lpCurrencySymbol = _T("");
+    cyFmt.Grouping = 0;
+    GetCurrencyFormat(LOCALE_USER_DEFAULT, 0,
+                      _T("123456789"),
+                      &cyFmt, szBuffer, 256);
+    SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYGRPNUM),
+                CB_INSERTSTRING,
+                -1,
+                (LPARAM)szBuffer);
+
+    cyFmt.Grouping = 3;
+    GetCurrencyFormat(LOCALE_USER_DEFAULT, 0,
+                      _T("123456789"),
+                      &cyFmt, szBuffer, 256);
+    SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYGRPNUM),
+                CB_INSERTSTRING,
+                -1,
+                (LPARAM)szBuffer);
+
+    cyFmt.Grouping = 32;
+    GetCurrencyFormat(LOCALE_USER_DEFAULT, 0,
+                      _T("123456789"),
+                      &cyFmt, szBuffer, 256);
+    SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYGRPNUM),
+                CB_INSERTSTRING,
+                -1,
+                (LPARAM)szBuffer);
+
+    i = 0;
+    if (pGlobalData->szGrouping[0] == _T('3'))
+    {
+        if ((pGlobalData->szGrouping[1] == _T(';')) &&
+            (pGlobalData->szGrouping[2] == _T('2')))
+            i = 2;
+        else
+            i = 1;
+    }
+
+    SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYGRPNUM),
+                CB_SETCURSEL,
+                i, /* index */
+                0);
+
+    /* Show the examples */
+    UpdateExamples(hwndDlg, pGlobalData);
+}
+
+
 /* Property page dialog callback */
 INT_PTR CALLBACK
 CurrencyPageProc(HWND hwndDlg,
 /* Property page dialog callback */
 INT_PTR CALLBACK
 CurrencyPageProc(HWND hwndDlg,
-                UINT uMsg,
-                WPARAM wParam,
-                LPARAM lParam)
+                 UINT uMsg,
+                 WPARAM wParam,
+                 LPARAM lParam)
 {
 {
-  switch(uMsg)
-  {
-    case WM_INITDIALOG:
-      break;
-  }
-  return FALSE;
+    PGLOBAL_DATA pGlobalData;
+
+    pGlobalData = (PGLOBAL_DATA)GetWindowLongPtr(hwndDlg, DWLP_USER);
+
+    switch (uMsg)
+    {
+        case WM_INITDIALOG:
+            pGlobalData = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(GLOBAL_DATA));
+            SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pGlobalData);
+            OnInitDialog(hwndDlg, pGlobalData);
+            break;
+
+
+        case WM_DESTROY:
+            HeapFree(GetProcessHeap(), 0, pGlobalData);
+            break;
+    }
+
+    return FALSE;
 }
 
 /* EOF */
 }
 
 /* EOF */
index 1eca197..69ab2dc 100644 (file)
@@ -25,7 +25,25 @@ STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
 CAPTION "Mìna"
 FONT 8, "MS Shell Dlg"
 BEGIN
 CAPTION "Mìna"
 FONT 8, "MS Shell Dlg"
 BEGIN
-  LTEXT "Property Page 3",-1,73,74,90,8
+  GROUPBOX "Appearance sample", -1, 7, 7, 228, 33, WS_CHILD | WS_VISIBLE
+  LTEXT "Positive:", -1, 13, 21, 31, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  EDITTEXT IDC_CURRENCYPOSSAMPLE, 42, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP
+  LTEXT "Negative:", -1, 120, 21, 31, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  EDITTEXT IDC_CURRENCYNEGSAMPLE, 154, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP
+  LTEXT "&Currency symbol:", -1, 20, 51, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYSYMBOL, 124, 49, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Positive Amount:", -1, 20, 68, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYPOSVALUE, 124, 66, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Negative Amount:", -1, 20, 85, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYNEGVALUE, 124, 83, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Decimal separator:", -1, 20, 111, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYDECSEP, 124, 109, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Number of fractional digits:", -1, 20, 128, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYDECNUM, 124, 126, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Grouping symbol:", -1, 20, 156, 100, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYGRPSEP, 124, 154, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Digit grouping:", -1, 20, 173, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYGRPNUM, 124, 171, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
 END
 
 
 END
 
 
index 4553386..5e2535a 100644 (file)
@@ -25,7 +25,25 @@ STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
 CAPTION "Währung"
 FONT 8, "MS Shell Dlg"
 BEGIN
 CAPTION "Währung"
 FONT 8, "MS Shell Dlg"
 BEGIN
-  LTEXT "Property Page 3",-1,73,74,90,8
+  GROUPBOX "Darstellung", -1, 7, 7, 228, 33, WS_CHILD | WS_VISIBLE
+  LTEXT "Positiv:", -1, 13, 21, 31, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  EDITTEXT IDC_CURRENCYPOSSAMPLE, 42, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP
+  LTEXT "Negativ:", -1, 120, 21, 31, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  EDITTEXT IDC_CURRENCYNEGSAMPLE, 154, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP
+  LTEXT "&Währungssymbol:", -1, 20, 51, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYSYMBOL, 124, 49, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "Format für &positive Beträge:", -1, 20, 68, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYPOSVALUE, 124, 66, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "Format für &negative Beträge:", -1, 20, 85, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYNEGVALUE, 124, 83, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Dezimaltrennzeichen:", -1, 20, 111, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYDECSEP, 124, 109, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Anzahl der Dezimalstellen:", -1, 20, 128, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYDECNUM, 124, 126, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Symbol für Zifferngruppierung:", -1, 20, 156, 100, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYGRPSEP, 124, 154, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Zifferngruppierung:", -1, 20, 173, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYGRPNUM, 124, 171, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
 END
 
 
 END
 
 
index 88d8854..be3f714 100644 (file)
@@ -25,7 +25,25 @@ STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
 CAPTION "Currency"
 FONT 8, "MS Shell Dlg"
 BEGIN
 CAPTION "Currency"
 FONT 8, "MS Shell Dlg"
 BEGIN
-  LTEXT "Property Page 3",-1,73,74,90,8
+  GROUPBOX "Appearance sample", -1, 7, 7, 228, 33, WS_CHILD | WS_VISIBLE
+  LTEXT "Positive:", -1, 13, 21, 31, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  EDITTEXT IDC_CURRENCYPOSSAMPLE, 42, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP
+  LTEXT "Negative:", -1, 120, 21, 31, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  EDITTEXT IDC_CURRENCYNEGSAMPLE, 154, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP
+  LTEXT "&Currency symbol:", -1, 20, 51, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYSYMBOL, 124, 49, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Positive Amount:", -1, 20, 68, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYPOSVALUE, 124, 66, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Negative Amount:", -1, 20, 85, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYNEGVALUE, 124, 83, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Decimal separator:", -1, 20, 111, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYDECSEP, 124, 109, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Number of fractional digits:", -1, 20, 128, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYDECNUM, 124, 126, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Grouping symbol:", -1, 20, 156, 100, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYGRPSEP, 124, 154, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Digit grouping:", -1, 20, 173, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYGRPNUM, 124, 171, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
 END
 
 
 END
 
 
index fada448..04b2b48 100644 (file)
@@ -29,7 +29,25 @@ STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
 CAPTION "Moneda"
 FONT 8, "MS Shell Dlg"
 BEGIN
 CAPTION "Moneda"
 FONT 8, "MS Shell Dlg"
 BEGIN
-  LTEXT "Property Page 3",-1,73,74,90,8
+  GROUPBOX "Appearance sample", -1, 7, 7, 228, 33, WS_CHILD | WS_VISIBLE
+  LTEXT "Positive:", -1, 13, 21, 31, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  EDITTEXT IDC_CURRENCYPOSSAMPLE, 42, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP
+  LTEXT "Negative:", -1, 120, 21, 31, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  EDITTEXT IDC_CURRENCYNEGSAMPLE, 154, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP
+  LTEXT "&Currency symbol:", -1, 20, 51, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYSYMBOL, 124, 49, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Positive Amount:", -1, 20, 68, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYPOSVALUE, 124, 66, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Negative Amount:", -1, 20, 85, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYNEGVALUE, 124, 83, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Decimal separator:", -1, 20, 111, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYDECSEP, 124, 109, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Number of fractional digits:", -1, 20, 128, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYDECNUM, 124, 126, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Grouping symbol:", -1, 20, 156, 100, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYGRPSEP, 124, 154, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Digit grouping:", -1, 20, 173, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYGRPNUM, 124, 171, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
 END
 
 
 END
 
 
index 980fc8f..f84f90a 100644 (file)
@@ -24,7 +24,25 @@ STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
 CAPTION "Pénznem"
 FONT 8, "MS Shell Dlg"
 BEGIN
 CAPTION "Pénznem"
 FONT 8, "MS Shell Dlg"
 BEGIN
-  LTEXT "3.tulajdonságlap",-1,73,74,90,8
+  GROUPBOX "Appearance sample", -1, 7, 7, 228, 33, WS_CHILD | WS_VISIBLE
+  LTEXT "Positive:", -1, 13, 21, 31, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  EDITTEXT IDC_CURRENCYPOSSAMPLE, 42, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP
+  LTEXT "Negative:", -1, 120, 21, 31, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  EDITTEXT IDC_CURRENCYNEGSAMPLE, 154, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP
+  LTEXT "&Currency symbol:", -1, 20, 51, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYSYMBOL, 124, 49, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Positive Amount:", -1, 20, 68, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYPOSVALUE, 124, 66, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Negative Amount:", -1, 20, 85, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYNEGVALUE, 124, 83, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Decimal separator:", -1, 20, 111, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYDECSEP, 124, 109, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Number of fractional digits:", -1, 20, 128, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYDECNUM, 124, 126, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Grouping symbol:", -1, 20, 156, 100, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYGRPSEP, 124, 154, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Digit grouping:", -1, 20, 173, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYGRPNUM, 124, 171, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
 END
 
 
 END
 
 
index 3f6d4c9..4e49f66 100644 (file)
@@ -25,7 +25,25 @@ STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
 CAPTION "Valuta"
 FONT 8, "MS Shell Dlg"
 BEGIN
 CAPTION "Valuta"
 FONT 8, "MS Shell Dlg"
 BEGIN
-  LTEXT "Property Page 3",-1,73,74,90,8
+  GROUPBOX "Appearance sample", -1, 7, 7, 228, 33, WS_CHILD | WS_VISIBLE
+  LTEXT "Positive:", -1, 13, 21, 31, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  EDITTEXT IDC_CURRENCYPOSSAMPLE, 42, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP
+  LTEXT "Negative:", -1, 120, 21, 31, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  EDITTEXT IDC_CURRENCYNEGSAMPLE, 154, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP
+  LTEXT "&Currency symbol:", -1, 20, 51, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYSYMBOL, 124, 49, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Positive Amount:", -1, 20, 68, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYPOSVALUE, 124, 66, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Negative Amount:", -1, 20, 85, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYNEGVALUE, 124, 83, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Decimal separator:", -1, 20, 111, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYDECSEP, 124, 109, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Number of fractional digits:", -1, 20, 128, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYDECNUM, 124, 126, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Grouping symbol:", -1, 20, 156, 100, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYGRPSEP, 124, 154, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Digit grouping:", -1, 20, 173, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYGRPNUM, 124, 171, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
 END
 
 
 END
 
 
index d125194..ffd0718 100644 (file)
@@ -8,7 +8,17 @@
 
 #define IDD_GENERALPAGE                100
 #define IDD_NUMBERSPAGE                101
 
 #define IDD_GENERALPAGE                100
 #define IDD_NUMBERSPAGE                101
-#define IDD_CURRENCYPAGE       102
+
+#define IDD_CURRENCYPAGE       140
+#define IDC_CURRENCYPOSSAMPLE  141
+#define IDC_CURRENCYNEGSAMPLE  142
+#define IDC_CURRENCYSYMBOL     143
+#define IDC_CURRENCYPOSVALUE   144
+#define IDC_CURRENCYNEGVALUE   145
+#define IDC_CURRENCYDECSEP     146
+#define IDC_CURRENCYDECNUM     148
+#define IDC_CURRENCYGRPSEP     149
+#define IDC_CURRENCYGRPNUM     150
 
 #define IDD_TIMEPAGE           103
 #define IDC_TIMESAMPLE         107
 
 #define IDD_TIMEPAGE           103
 #define IDC_TIMESAMPLE         107
index c7d293a..4994f35 100644 (file)
@@ -25,7 +25,25 @@ STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
 CAPTION "Äåíåæíàÿ åäèíèöà"
 FONT 8, "MS Shell Dlg"
 BEGIN
 CAPTION "Äåíåæíàÿ åäèíèöà"
 FONT 8, "MS Shell Dlg"
 BEGIN
-  LTEXT "Âêëàäêà 3",-1,73,74,90,8
+  GROUPBOX "Appearance sample", -1, 7, 7, 228, 33, WS_CHILD | WS_VISIBLE
+  LTEXT "Positive:", -1, 13, 21, 31, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  EDITTEXT IDC_CURRENCYPOSSAMPLE, 42, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP
+  LTEXT "Negative:", -1, 120, 21, 31, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  EDITTEXT IDC_CURRENCYNEGSAMPLE, 154, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP
+  LTEXT "&Currency symbol:", -1, 20, 51, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYSYMBOL, 124, 49, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Positive Amount:", -1, 20, 68, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYPOSVALUE, 124, 66, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Negative Amount:", -1, 20, 85, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYNEGVALUE, 124, 83, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Decimal separator:", -1, 20, 111, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYDECSEP, 124, 109, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Number of fractional digits:", -1, 20, 128, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYDECNUM, 124, 126, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Grouping symbol:", -1, 20, 156, 100, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYGRPSEP, 124, 154, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Digit grouping:", -1, 20, 173, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYGRPNUM, 124, 171, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
 END
 
 
 END
 
 
index e566700..705e0e7 100644 (file)
@@ -26,7 +26,25 @@ STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
 CAPTION "Valuta"
 FONT 8, "MS Shell Dlg"
 BEGIN
 CAPTION "Valuta"
 FONT 8, "MS Shell Dlg"
 BEGIN
-  LTEXT "Property Page 3",-1,73,74,90,8
+  GROUPBOX "Appearance sample", -1, 7, 7, 228, 33, WS_CHILD | WS_VISIBLE
+  LTEXT "Positive:", -1, 13, 21, 31, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  EDITTEXT IDC_CURRENCYPOSSAMPLE, 42, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP
+  LTEXT "Negative:", -1, 120, 21, 31, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  EDITTEXT IDC_CURRENCYNEGSAMPLE, 154, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP
+  LTEXT "&Currency symbol:", -1, 20, 51, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYSYMBOL, 124, 49, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Positive Amount:", -1, 20, 68, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYPOSVALUE, 124, 66, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Negative Amount:", -1, 20, 85, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYNEGVALUE, 124, 83, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Decimal separator:", -1, 20, 111, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYDECSEP, 124, 109, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Number of fractional digits:", -1, 20, 128, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYDECNUM, 124, 126, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Grouping symbol:", -1, 20, 156, 100, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYGRPSEP, 124, 154, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Digit grouping:", -1, 20, 173, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYGRPNUM, 124, 171, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
 END
 
 
 END
 
 
@@ -35,7 +53,23 @@ STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
 CAPTION "Tid"
 FONT 8, "MS Shell Dlg"
 BEGIN
 CAPTION "Tid"
 FONT 8, "MS Shell Dlg"
 BEGIN
-  LTEXT "Property Page 4",-1,73,74,90,8
+  GROUPBOX "Appearance sample", -1, 7, 7, 228, 33, WS_CHILD | WS_VISIBLE
+  LTEXT "Time sample:", -1, 13, 21, 54, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  EDITTEXT IDC_TIMESAMPLE, 68, 19, 84, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP
+  LTEXT "&Time format:", -1, 13, 52, 54, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_TIMEFORMAT, 68, 50, 84, 100, CBS_DROPDOWN | WS_CHILD | WS_VISIBLE | WS_TABSTOP
+  LTEXT "Time &separator:", -1, 13, 70, 54, 10, WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_TIMESEPARATOR, 68, 68, 84, 100, CBS_DROPDOWN | WS_CHILD | WS_VISIBLE | WS_TABSTOP
+  LTEXT "A&M symbol:", -1, 13, 88, 54, 10, WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_TIMEAMSYMBOL, 68, 86, 84, 100, CBS_DROPDOWN | WS_CHILD | WS_VISIBLE | WS_TABSTOP
+  LTEXT "&PM symbol:", -1, 13, 106, 54, 10, WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_TIMEPMSYMBOL, 68, 104, 84, 100, CBS_DROPDOWN | WS_CHILD | WS_VISIBLE | WS_TABSTOP
+  GROUPBOX "", -1, 7, 124, 228, 60, WS_VISIBLE
+  LTEXT "Time format notation\n\n\
+h = hour    m = minute    s = second    t = am or pm\n\n\
+h = 12 hour   H = 24 hour\n\
+hh, mm, ss = leading zero   h, m, s = no leading zero",
+        -1, 13, 133, 214, 47, WS_CHILD |WS_VISIBLE | WS_GROUP
 END
 
 
 END
 
 
index e1f93d5..2e5bf56 100644 (file)
@@ -32,7 +32,25 @@ STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
 CAPTION "Ãðîøîâà îäèíèöÿ"
 FONT 8, "MS Shell Dlg"
 BEGIN
 CAPTION "Ãðîøîâà îäèíèöÿ"
 FONT 8, "MS Shell Dlg"
 BEGIN
-  LTEXT "Âêëàäêà âëàñòèâîñòåé 3",-1,73,74,90,8
+  GROUPBOX "Appearance sample", -1, 7, 7, 228, 33, WS_CHILD | WS_VISIBLE
+  LTEXT "Positive:", -1, 13, 21, 31, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  EDITTEXT IDC_CURRENCYPOSSAMPLE, 42, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP
+  LTEXT "Negative:", -1, 120, 21, 31, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  EDITTEXT IDC_CURRENCYNEGSAMPLE, 154, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP
+  LTEXT "&Currency symbol:", -1, 20, 51, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYSYMBOL, 124, 49, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Positive Amount:", -1, 20, 68, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYPOSVALUE, 124, 66, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Negative Amount:", -1, 20, 85, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYNEGVALUE, 124, 83, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Decimal separator:", -1, 20, 111, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYDECSEP, 124, 109, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Number of fractional digits:", -1, 20, 128, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYDECNUM, 124, 126, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Grouping symbol:", -1, 20, 156, 100, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYGRPSEP, 124, 154, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
+  LTEXT "&Digit grouping:", -1, 20, 173, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
+  COMBOBOX IDC_CURRENCYGRPNUM, 124, 171, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
 END
 
 
 END
 
 
index 6f7bac2..ed5a713 100644 (file)
@@ -36,7 +36,6 @@
 /* Directory to load key layouts from */
 #define SYSTEMROOT_DIR L"\\SystemRoot\\System32\\"
 
 /* Directory to load key layouts from */
 #define SYSTEMROOT_DIR L"\\SystemRoot\\System32\\"
 
-
 /* GLOBALS *******************************************************************/
 
 typedef struct __TRACKINGLIST {
 /* GLOBALS *******************************************************************/
 
 typedef struct __TRACKINGLIST {
@@ -338,11 +337,27 @@ EnableWindow(HWND hWnd,
             BOOL bEnable)
 {
     LONG Style = NtUserGetWindowLong(hWnd, GWL_STYLE, FALSE);
             BOOL bEnable)
 {
     LONG Style = NtUserGetWindowLong(hWnd, GWL_STYLE, FALSE);
-    Style = bEnable ? Style & ~WS_DISABLED : Style | WS_DISABLED;
-    NtUserSetWindowLong(hWnd, GWL_STYLE, Style, FALSE);
-
-    SendMessageA(hWnd, WM_ENABLE, (LPARAM) IsWindowEnabled(hWnd), 0);
+    /* check if updating is needed */
+    UINT bIsDisabled = (Style & WS_DISABLED);
+    if ( (bIsDisabled && bEnable) || (!bIsDisabled && !bEnable) )
+    {
+        if (bEnable)
+        {
+            Style &= ~WS_DISABLED;
+        }
+        else
+        {
+            Style |= WS_DISABLED;
+            /* Remove keyboard focus from that window if it had focus */
+            if (hWnd == GetFocus())
+            {
+               SetFocus(NULL);
+            }
+        }
+        NtUserSetWindowLong(hWnd, GWL_STYLE, Style, FALSE);
 
 
+        SendMessageA(hWnd, WM_ENABLE, (LPARAM) IsWindowEnabled(hWnd), 0);
+    }
     // Return nonzero if it was disabled, or zero if it wasn't:
     return IsWindowEnabled(hWnd);
 }
     // Return nonzero if it was disabled, or zero if it wasn't:
     return IsWindowEnabled(hWnd);
 }
index 6ef84ff..2b1743c 100644 (file)
@@ -109,7 +109,7 @@ static const VGA_REGISTERS VidpMode3Regs =
    /* Sequencer Registers */
    {0x03, 0x00, 0x03, 0x00, 0x02},
    /* Misc Output Register */
    /* Sequencer Registers */
    {0x03, 0x00, 0x03, 0x00, 0x02},
    /* Misc Output Register */
-   0xE3
+   0x67
 };
 
 static const UCHAR DefaultPalette[] =
 };
 
 static const UCHAR DefaultPalette[] =
index bccf40a..80103ea 100644 (file)
@@ -97,7 +97,7 @@ ExfWakePushLock(PEX_PUSH_LOCK PushLock,
                 OldValue = NewValue;
 
                 /* Check if it's still locked */
                 OldValue = NewValue;
 
                 /* Check if it's still locked */
-                if (OldValue.Locked) continue;
+                if (!OldValue.Locked) break;
             }
         }
 
             }
         }
 
index 4619b68..6f201ea 100644 (file)
@@ -3,6 +3,24 @@
 
 #include <internal/kbd.h>
 
 
 #include <internal/kbd.h>
 
+typedef struct _KBDRVFILE
+{
+  PSINGLE_LIST_ENTRY pkbdfChain;
+  WCHAR wcKBDF[9];              // used w GetKeyboardLayoutName same as wszKLID.
+  struct _KBDTABLES* KBTables;  // KBDTABLES in ntoskrnl/include/internal/kbd.h
+} KBDRVFILE, *PKBDRVFILE;
+
+typedef struct _KBL
+{
+  PLIST_ENTRY pklChain;
+  DWORD dwKBLFlags;
+  HKL hkl;
+  PKBDRVFILE pkbdf;
+} KBL, *PKBL;
+
+#define KBL_UNLOADED 0x20000000
+#define KBL_RESET    0x40000000
+
 NTSTATUS FASTCALL
 InitInputImpl(VOID);
 NTSTATUS FASTCALL
 NTSTATUS FASTCALL
 InitInputImpl(VOID);
 NTSTATUS FASTCALL
index f98a428..3f764aa 100644 (file)
@@ -304,27 +304,37 @@ co_IntSetActiveWindow(PWINDOW_OBJECT Window OPTIONAL)
 
 static
 HWND FASTCALL
 
 static
 HWND FASTCALL
-co_IntSetFocusWindow(PWINDOW_OBJECT Window)
+co_IntSetFocusWindow(PWINDOW_OBJECT Window OPTIONAL)
 {
    HWND hWndPrev = 0;
    PUSER_MESSAGE_QUEUE ThreadQueue;
 
 {
    HWND hWndPrev = 0;
    PUSER_MESSAGE_QUEUE ThreadQueue;
 
-   ASSERT_REFS_CO(Window);
+   if (Window)
+      ASSERT_REFS_CO(Window);
 
    ThreadQueue = (PUSER_MESSAGE_QUEUE)PsGetCurrentThreadWin32Thread()->MessageQueue;
    ASSERT(ThreadQueue != 0);
 
    hWndPrev = ThreadQueue->FocusWindow;
 
    ThreadQueue = (PUSER_MESSAGE_QUEUE)PsGetCurrentThreadWin32Thread()->MessageQueue;
    ASSERT(ThreadQueue != 0);
 
    hWndPrev = ThreadQueue->FocusWindow;
-   if (hWndPrev == Window->hSelf)
-   {
-      return hWndPrev;
-   }
 
 
-   ThreadQueue->FocusWindow = Window->hSelf;
+   if (Window != 0)
+   {
+      if (hWndPrev == Window->hSelf)
+      {
+         return hWndPrev;
+      }
 
 
-   co_IntSendKillFocusMessages(hWndPrev, Window->hSelf);
-   co_IntSendSetFocusMessages(hWndPrev, Window->hSelf);
+      ThreadQueue->FocusWindow = Window->hSelf;
 
 
+      co_IntSendKillFocusMessages(hWndPrev, Window->hSelf);
+      co_IntSendSetFocusMessages(hWndPrev, Window->hSelf);
+   }
+   else
+   {
+      ThreadQueue->FocusWindow = 0;
+      co_IntSendKillFocusMessages(hWndPrev, 0);
+   }
    return hWndPrev;
 }
 
    return hWndPrev;
 }
 
@@ -562,16 +572,23 @@ NtUserSetFocus(HWND hWnd)
    DPRINT("Enter NtUserSetFocus(%x)\n", hWnd);
    UserEnterExclusive();
 
    DPRINT("Enter NtUserSetFocus(%x)\n", hWnd);
    UserEnterExclusive();
 
-   if (!(Window = UserGetWindowObject(hWnd)))
+   if (hWnd)
    {
    {
-      RETURN(NULL);
-   }
+      if (!(Window = UserGetWindowObject(hWnd)))
+      {
+         RETURN(NULL);
+      }
 
 
-   UserRefObjectCo(Window, &Ref);
-   ret = co_UserSetFocus(Window);
-   UserDerefObjectCo(Window);
+      UserRefObjectCo(Window, &Ref);
+      ret = co_UserSetFocus(Window);
+      UserDerefObjectCo(Window);
    
    
-   RETURN(ret);
+      RETURN(ret);
+   }
+   else
+   {
+      RETURN( co_UserSetFocus(0));
+   }
 
 CLEANUP:
    DPRINT("Leave NtUserSetFocus, ret=%i\n",_ret_);
 
 CLEANUP:
    DPRINT("Leave NtUserSetFocus, ret=%i\n",_ret_);
index d976606..e8ea268 100644 (file)
@@ -53,6 +53,9 @@
 BYTE gQueueKeyStateTable[256];
 
 
 BYTE gQueueKeyStateTable[256];
 
 
+PKBDRVFILE KBLList = NULL; // Keyboard layout list.
+
+
 /* FUNCTIONS *****************************************************************/
 
 /* Initialization -- Right now, just zero the key state and init the lock */
 /* FUNCTIONS *****************************************************************/
 
 /* Initialization -- Right now, just zero the key state and init the lock */
index 63bc4d0..ec20f50 100644 (file)
@@ -909,6 +909,7 @@ IntSystemParametersInfo(
 {
    PWINSTATION_OBJECT WinStaObject;
    NTSTATUS Status;
 {
    PWINSTATION_OBJECT WinStaObject;
    NTSTATUS Status;
+   BOOL bChanged = FALSE;
 
    static BOOL bInitialized = FALSE;
    static LOGFONTW IconFont;
 
    static BOOL bInitialized = FALSE;
    static LOGFONTW IconFont;
@@ -956,16 +957,18 @@ IntSystemParametersInfo(
       case SPI_SETDOUBLECLKHEIGHT:
       case SPI_SETDOUBLECLICKTIME:
       case SPI_SETDESKWALLPAPER:
       case SPI_SETDOUBLECLKHEIGHT:
       case SPI_SETDOUBLECLICKTIME:
       case SPI_SETDESKWALLPAPER:
+      case SPI_SETSCREENSAVERRUNNING: 
+      case SPI_SETSCREENSAVETIMEOUT:
+      case SPI_SETFLATMENU:
+         /* We will change something, so set the flag here */
+         bChanged = TRUE;
       case SPI_GETDESKWALLPAPER:
          case SPI_GETWHEELSCROLLLINES:
          case SPI_GETWHEELSCROLLCHARS:
       case SPI_GETDESKWALLPAPER:
          case SPI_GETWHEELSCROLLLINES:
          case SPI_GETWHEELSCROLLCHARS:
-         case SPI_SETSCREENSAVERRUNNING: 
          case SPI_GETSCREENSAVERRUNNING:
          case SPI_GETSCREENSAVETIMEOUT:
          case SPI_GETSCREENSAVERRUNNING:
          case SPI_GETSCREENSAVETIMEOUT:
-         case SPI_SETSCREENSAVETIMEOUT:
          case SPI_GETSCREENSAVEACTIVE:
          case SPI_GETFLATMENU:
          case SPI_GETSCREENSAVEACTIVE:
          case SPI_GETFLATMENU:
-      case SPI_SETFLATMENU:
          {
             PSYSTEM_CURSORINFO CurInfo;
 
          {
             PSYSTEM_CURSORINFO CurInfo;
 
@@ -982,43 +985,42 @@ IntSystemParametersInfo(
             switch(uiAction)
             {
                           case SPI_GETFLATMENU:
             switch(uiAction)
             {
                           case SPI_GETFLATMENU:
-                                  if (pvParam != NULL) *((UINT*)pvParam) = WinStaObject->FlatMenu;    
-                  return TRUE;
+                  ASSERT(pvParam);
+                  *((UINT*)pvParam) = WinStaObject->FlatMenu;
                              break;
                case SPI_SETFLATMENU:                              
                              break;
                case SPI_SETFLATMENU:                              
-                                  WinStaObject->FlatMenu = uiParam;                               
+                  WinStaObject->FlatMenu = uiParam;
                              break;
                           case SPI_GETSCREENSAVETIMEOUT:
                              break;
                           case SPI_GETSCREENSAVETIMEOUT:
-                                  if (pvParam != NULL) *((UINT*)pvParam) = WinStaObject->ScreenSaverTimeOut;                   
-                                  return TRUE;
-                                  break;
-                          case SPI_SETSCREENSAVETIMEOUT:                                 
-                   WinStaObject->ScreenSaverTimeOut = uiParam;                  
+                   ASSERT(pvParam);
+                   *((UINT*)pvParam) = WinStaObject->ScreenSaverTimeOut;
+               break;
+               case SPI_SETSCREENSAVETIMEOUT:
+                  WinStaObject->ScreenSaverTimeOut = uiParam;
                                  break;
                           case SPI_GETSCREENSAVERRUNNING:
                      if (pvParam != NULL) *((BOOL*)pvParam) = WinStaObject->ScreenSaverRunning;
                                  break;
                           case SPI_GETSCREENSAVERRUNNING:
                      if (pvParam != NULL) *((BOOL*)pvParam) = WinStaObject->ScreenSaverRunning;
-                  return TRUE;
                                  break;
                                  break;
-                          case SPI_SETSCREENSAVERRUNNING:                                
+               case SPI_SETSCREENSAVERRUNNING:
                                   if (pvParam != NULL) *((BOOL*)pvParam) = WinStaObject->ScreenSaverRunning;
                                   if (pvParam != NULL) *((BOOL*)pvParam) = WinStaObject->ScreenSaverRunning;
-                   WinStaObject->ScreenSaverRunning = uiParam;                                              
+                  WinStaObject->ScreenSaverRunning = uiParam;
                                  break;
                           case SPI_GETSCREENSAVEACTIVE:
                                        /* FIXME: how to disable the screensaver? */
                                  break;
                           case SPI_GETSCREENSAVEACTIVE:
                                        /* FIXME: how to disable the screensaver? */
-                                       if (pvParam != NULL) *((BOOL*)pvParam) = TRUE;
-                                 return TRUE;
+                  ASSERT(pvParam);
+                  *((BOOL*)pvParam) = TRUE;
                                  break;
                           case SPI_GETWHEELSCROLLLINES:
                                  break;
                           case SPI_GETWHEELSCROLLLINES:
+                  ASSERT(pvParam);
                                    CurInfo = IntGetSysCursorInfo(WinStaObject);
                                    CurInfo = IntGetSysCursorInfo(WinStaObject);
-                                       if (pvParam != NULL) *((UINT*)pvParam) = CurInfo->WheelScroLines;
+                  *((UINT*)pvParam) = CurInfo->WheelScroLines;
                                        /* FIXME add this value to scroll list as scroll value ?? */
                                        /* FIXME add this value to scroll list as scroll value ?? */
-                  return TRUE;
                   break;
                case SPI_GETWHEELSCROLLCHARS:
                   break;
                case SPI_GETWHEELSCROLLCHARS:
+                  ASSERT(pvParam);
                                    CurInfo = IntGetSysCursorInfo(WinStaObject);
                                    CurInfo = IntGetSysCursorInfo(WinStaObject);
-                                       if (pvParam != NULL) *((UINT*)pvParam) = CurInfo->WheelScroChars;
+                  *((UINT*)pvParam) = CurInfo->WheelScroChars;
                                        // FIXME add this value to scroll list as scroll value ?? 
                                        // FIXME add this value to scroll list as scroll value ?? 
-                  return TRUE;
                   break;
                case SPI_SETDOUBLECLKWIDTH:
                   CurInfo = IntGetSysCursorInfo(WinStaObject);
                   break;
                case SPI_SETDOUBLECLKWIDTH:
                   CurInfo = IntGetSysCursorInfo(WinStaObject);
@@ -1125,7 +1127,7 @@ IntSystemParametersInfo(
                      if(!KeyValuePartialInfo)
                      {
                         NtClose(KeyHandle);
                      if(!KeyValuePartialInfo)
                      {
                         NtClose(KeyHandle);
-                        return 0;
+                        return FALSE;
                      }
 
                      Status = ZwQueryValueKey(KeyHandle, &Tile, KeyValuePartialInformation,
                      }
 
                      Status = ZwQueryValueKey(KeyHandle, &Tile, KeyValuePartialInformation,
@@ -1134,7 +1136,7 @@ IntSystemParametersInfo(
                      {
                         ZwClose(KeyHandle);
                         ExFreePool(KeyValuePartialInfo);
                      {
                         ZwClose(KeyHandle);
                         ExFreePool(KeyValuePartialInfo);
-                        return 0;
+                        return FALSE;
                      }
                 
                      Tile.Length = KeyValuePartialInfo->DataLength;
                      }
                 
                      Tile.Length = KeyValuePartialInfo->DataLength;
@@ -1160,7 +1162,7 @@ IntSystemParametersInfo(
                      if(!KeyValuePartialInfo)
                      {
                         ZwClose(KeyHandle);
                      if(!KeyValuePartialInfo)
                      {
                         ZwClose(KeyHandle);
-                        return 0;
+                        return FALSE;
                      }
 
                      Status = ZwQueryValueKey(KeyHandle, &Style, KeyValuePartialInformation,
                      }
 
                      Status = ZwQueryValueKey(KeyHandle, &Style, KeyValuePartialInformation,
@@ -1169,7 +1171,7 @@ IntSystemParametersInfo(
                      {
                         ZwClose(KeyHandle);
                         ExFreePool(KeyValuePartialInfo);
                      {
                         ZwClose(KeyHandle);
                         ExFreePool(KeyValuePartialInfo);
-                        return 0;
+                        return FALSE;
                      }
                 
                      Style.Length = KeyValuePartialInfo->DataLength;
                      }
                 
                      Style.Length = KeyValuePartialInfo->DataLength;
@@ -1210,7 +1212,7 @@ IntSystemParametersInfo(
             /* FIXME save the value to the registry */
 
             ObDereferenceObject(WinStaObject);
             /* FIXME save the value to the registry */
 
             ObDereferenceObject(WinStaObject);
-            return TRUE;
+            break;
          }
       case SPI_SETWORKAREA:
          {
          }
       case SPI_SETWORKAREA:
          {
@@ -1226,8 +1228,9 @@ IntSystemParametersInfo(
             ASSERT(pvParam);
             rc = (RECT*)pvParam;
             Desktop->WorkArea = *rc;
             ASSERT(pvParam);
             rc = (RECT*)pvParam;
             Desktop->WorkArea = *rc;
+            bChanged = TRUE;
 
 
-            return TRUE;
+            break;
          }
       case SPI_GETWORKAREA:
          {
          }
       case SPI_GETWORKAREA:
          {
@@ -1242,13 +1245,14 @@ IntSystemParametersInfo(
             ASSERT(pvParam);
             IntGetDesktopWorkArea(Desktop, (PRECT)pvParam);
 
             ASSERT(pvParam);
             IntGetDesktopWorkArea(Desktop, (PRECT)pvParam);
 
-            return TRUE;
+            break;
          }
       case SPI_SETGRADIENTCAPTIONS:
          {
             GradientCaptions = (pvParam != NULL);
             /* FIXME - should be checked if the color depth is higher than 8bpp? */
          }
       case SPI_SETGRADIENTCAPTIONS:
          {
             GradientCaptions = (pvParam != NULL);
             /* FIXME - should be checked if the color depth is higher than 8bpp? */
-            return TRUE;
+            bChanged = TRUE;
+            break;
          }
       case SPI_GETGRADIENTCAPTIONS:
          {
          }
       case SPI_GETGRADIENTCAPTIONS:
          {
@@ -1256,78 +1260,83 @@ IntSystemParametersInfo(
             BOOL Ret = GradientCaptions;
 
             hDC = IntGetScreenDC();
             BOOL Ret = GradientCaptions;
 
             hDC = IntGetScreenDC();
-            if(hDC)
+            if(!hDC)
             {
             {
+               return FALSE;
+            }
                Ret = (NtGdiGetDeviceCaps(hDC, BITSPIXEL) > 8) && Ret;
 
                ASSERT(pvParam);
                *((PBOOL)pvParam) = Ret;
                Ret = (NtGdiGetDeviceCaps(hDC, BITSPIXEL) > 8) && Ret;
 
                ASSERT(pvParam);
                *((PBOOL)pvParam) = Ret;
-               return TRUE;
+            break;
             }
             }
-            return FALSE;
-         }
       case SPI_SETFONTSMOOTHING:
          {
             IntEnableFontRendering(uiParam != 0);
       case SPI_SETFONTSMOOTHING:
          {
             IntEnableFontRendering(uiParam != 0);
-            return TRUE;
+            bChanged = TRUE;
+            break;
          }
       case SPI_GETFONTSMOOTHING:
          {
             ASSERT(pvParam);
             *((BOOL*)pvParam) = IntIsFontRenderingEnabled();
          }
       case SPI_GETFONTSMOOTHING:
          {
             ASSERT(pvParam);
             *((BOOL*)pvParam) = IntIsFontRenderingEnabled();
-            return TRUE;
+            break;
          }
       case SPI_GETICONTITLELOGFONT:
          {
             ASSERT(pvParam);
             *((LOGFONTW*)pvParam) = IconFont;
          }
       case SPI_GETICONTITLELOGFONT:
          {
             ASSERT(pvParam);
             *((LOGFONTW*)pvParam) = IconFont;
-            return TRUE;
+            break;
          }
       case SPI_GETNONCLIENTMETRICS:
          {
             ASSERT(pvParam);
             *((NONCLIENTMETRICSW*)pvParam) = pMetrics;
          }
       case SPI_GETNONCLIENTMETRICS:
          {
             ASSERT(pvParam);
             *((NONCLIENTMETRICSW*)pvParam) = pMetrics;
-            return TRUE;
+            break;
          }
       case SPI_SETNONCLIENTMETRICS:
          {
             ASSERT(pvParam);
             pMetrics = *((NONCLIENTMETRICSW*)pvParam);
          }
       case SPI_SETNONCLIENTMETRICS:
          {
             ASSERT(pvParam);
             pMetrics = *((NONCLIENTMETRICSW*)pvParam);
-            return TRUE;
+            bChanged = TRUE;
+            break;
          }
       case SPI_GETMINIMIZEDMETRICS:
          {
             ASSERT(pvParam);
             *((MINIMIZEDMETRICS*)pvParam) = MinimizedMetrics;
          }
       case SPI_GETMINIMIZEDMETRICS:
          {
             ASSERT(pvParam);
             *((MINIMIZEDMETRICS*)pvParam) = MinimizedMetrics;
-            return TRUE;
+            break;
          }
       case SPI_SETMINIMIZEDMETRICS:
          {
             ASSERT(pvParam);
             MinimizedMetrics = *((MINIMIZEDMETRICS*)pvParam);
          }
       case SPI_SETMINIMIZEDMETRICS:
          {
             ASSERT(pvParam);
             MinimizedMetrics = *((MINIMIZEDMETRICS*)pvParam);
-            return TRUE;
+            bChanged = TRUE;
+            break;
          }
       case SPI_GETFOCUSBORDERHEIGHT:
          {
             ASSERT(pvParam);
             *((UINT*)pvParam) = FocusBorderHeight;
          }
       case SPI_GETFOCUSBORDERHEIGHT:
          {
             ASSERT(pvParam);
             *((UINT*)pvParam) = FocusBorderHeight;
-            return TRUE;
+            break;
          }
       case SPI_GETFOCUSBORDERWIDTH:
          {
             ASSERT(pvParam);
             *((UINT*)pvParam) = FocusBorderWidth;
          }
       case SPI_GETFOCUSBORDERWIDTH:
          {
             ASSERT(pvParam);
             *((UINT*)pvParam) = FocusBorderWidth;
-            return TRUE;
+            break;
          }
       case SPI_SETFOCUSBORDERHEIGHT:
          {
             FocusBorderHeight = (UINT)pvParam;
          }
       case SPI_SETFOCUSBORDERHEIGHT:
          {
             FocusBorderHeight = (UINT)pvParam;
-            return TRUE;
+            bChanged = TRUE;
+            break;
          }
       case SPI_SETFOCUSBORDERWIDTH:
          {
             FocusBorderWidth = (UINT)pvParam;
          }
       case SPI_SETFOCUSBORDERWIDTH:
          {
             FocusBorderWidth = (UINT)pvParam;
-            return TRUE;
+            bChanged = TRUE;
+            break;
          }
 
       default:
          }
 
       default:
@@ -1337,7 +1346,18 @@ IntSystemParametersInfo(
             return FALSE;
          }
    }
             return FALSE;
          }
    }
-   return FALSE;
+   /* Did we change something ? */
+   if (bChanged)
+   {
+      /* Shall we send a WM_SETTINGCHANGE message ? */
+      if (fWinIni & (SPIF_UPDATEINIFILE | SPIF_SENDCHANGE))
+      {
+         /* Broadcast WM_SETTINGCHANGE to all toplevel windows */
+         /* FIXME: lParam should be pointer to a string containing the reg key */
+         UserPostMessage(HWND_BROADCAST, WM_SETTINGCHANGE, (WPARAM)uiAction, 0);
+}
+   }
+   return TRUE;
 }
 
 /*
 }
 
 /*