Ejemplo n.º 1
0
        public bool RemovePolicy(LoadedPolicyObject policy)
        {
            InternationalPolicy t = JsonConvert.DeserializeObject <InternationalPolicy>(policy.PolicyObject.Data);

            t.ID = policy.PolicyObject.ID;
            ToRemove.Add(t);
            return(true);
        }
Ejemplo n.º 2
0
        void ApplyPolicy(InternationalPolicy p)
        {
            if (p.EnableMainSystemLocale == true)
            {
                try
                {
                    CultureInfo c = new CultureInfo(p.MainSystemLocale);
                    using (RegistryKey RK = Registry.LocalMachine.OpenSubKey("SYSTEM\\CurrentControlSet\\Control\\Nls\\Language", true))
                    {
                        if (RK == null)
                        {
                            FoxEventLog.WriteEventLog("Cannot open SYSTEM\\CurrentControlSet\\Control\\Nls\\Language - Registry broken?", System.Diagnostics.EventLogEntryType.Error);
                        }
                        else
                        {
                            RK.SetValue("Default", p.MainSystemLocale.ToString("X4"), RegistryValueKind.String);
                        }
                    }

                    using (RegistryKey RK = Registry.LocalMachine.OpenSubKey("SYSTEM\\CurrentControlSet\\Control\\Nls\\Locale", true))
                    {
                        if (RK == null)
                        {
                            FoxEventLog.WriteEventLog("Cannot open SYSTEM\\CurrentControlSet\\Control\\Nls\\Locale - Registry broken?", System.Diagnostics.EventLogEntryType.Error);
                        }
                        else
                        {
                            RK.SetValue(null, p.MainSystemLocale.ToString("X8"), RegistryValueKind.String);
                        }
                    }
                }
                catch (Exception ee)
                {
                    FoxEventLog.WriteEventLog("Cannot apply System Locale for ID " + p.MainSystemLocale + "\n" + ee.ToString(), System.Diagnostics.EventLogEntryType.Error);
                }
            }

            if (p.EnableTimeZone == true && string.IsNullOrWhiteSpace(p.TimeZone) == false)
            {
                try
                {
                    bool?res = ProgramAgent.CPP.ApplyTimeZone(p.TimeZone);
                    if (res == false)
                    {
                        FoxEventLog.WriteEventLog("Cannot apply System Timezone for ID " + p.TimeZone + "\nCannot apply TZ " + p.TimeZone + " - 0x" + ProgramAgent.CPP.WGetLastError().ToString("X"), System.Diagnostics.EventLogEntryType.Warning);
                    }
                    if (res == null)
                    {
                        FoxEventLog.WriteEventLog("Cannot apply System Timezone for ID " + p.TimeZone + "\nCannot find TZ " + p.TimeZone, System.Diagnostics.EventLogEntryType.Warning);
                    }
                }
                catch (Exception ee)
                {
                    FoxEventLog.WriteEventLog("Cannot apply System Timezone for ID " + p.TimeZone + "\n" + ee.ToString(), System.Diagnostics.EventLogEntryType.Error);
                }
            }
        }
Ejemplo n.º 3
0
        public bool UpdatePolicy(LoadedPolicyObject oldpolicy, LoadedPolicyObject newpolicy)
        {
            InternationalPolicy t1 = JsonConvert.DeserializeObject <InternationalPolicy>(oldpolicy.PolicyObject.Data);
            InternationalPolicy t2 = JsonConvert.DeserializeObject <InternationalPolicy>(newpolicy.PolicyObject.Data);

            t1.ID = oldpolicy.PolicyObject.ID;
            t2.ID = newpolicy.PolicyObject.ID;
            ToAdd.Add(t2);
            ToRemove.Add(t1);
            return(true);
        }
Ejemplo n.º 4
0
        public bool ApplyOrdering(LoadedPolicyObject policy, long Ordering)
        {
            InternationalPolicy t = JsonConvert.DeserializeObject <InternationalPolicy>(policy.PolicyObject.Data);

            foreach (InternationalPolicy w in ToAdd)
            {
                if (policy.PolicyObject.ID == w.ID)
                {
                    w.Order = Ordering;
                }
            }
            foreach (InternationalPolicy w in ActivePolicies)
            {
                if (policy.PolicyObject.ID == w.ID)
                {
                    w.Order = Ordering;
                }
            }
            return(true);
        }
Ejemplo n.º 5
0
        void Merge()
        {
            List <InternationalPolicy> rm = new List <InternationalPolicy>();

            foreach (InternationalPolicy ap in ToRemove)
            {
                foreach (InternationalPolicy a in ActivePolicies)
                {
                    if (ap.ID == a.ID)
                    {
                        rm.Add(a);
                    }
                }
            }

            foreach (InternationalPolicy r in rm)
            {
                ActivePolicies.Remove(r);
            }

            foreach (InternationalPolicy a in ToAdd)
            {
                ActivePolicies.Add(a);
            }

            rm.Clear();
            ToAdd.Clear();
            ToRemove.Clear();

            ActivePolicies.Sort((x, y) => x.Order.CompareTo(y.Order));

            RunningPolicy = new InternationalPolicy();
            foreach (InternationalPolicy p in ActivePolicies)
            {
                if (p.EnableCurrCurrencySymbol != null)
                {
                    RunningPolicy.EnableCurrCurrencySymbol = p.EnableCurrCurrencySymbol;
                }
                if (p.EnableCurrCurrencySymbol == true)
                {
                    RunningPolicy.CurrCurrencySymbol = p.CurrCurrencySymbol;
                }

                if (p.EnableCurrDecimalSymbol != null)
                {
                    RunningPolicy.EnableCurrDecimalSymbol = p.EnableCurrDecimalSymbol;
                }
                if (p.EnableCurrDecimalSymbol == true)
                {
                    RunningPolicy.CurrDecimalSymbol = p.CurrDecimalSymbol;
                }

                if (p.EnableCurrDigitGrouping != null)
                {
                    RunningPolicy.EnableCurrDigitGrouping = p.EnableCurrDigitGrouping;
                }
                if (p.EnableCurrDigitGrouping == true)
                {
                    RunningPolicy.CurrDigitGrouping = p.CurrDigitGrouping;
                }

                if (p.EnableCurrDigitGroupingSymbol != null)
                {
                    RunningPolicy.EnableCurrDigitGroupingSymbol = p.EnableCurrDigitGroupingSymbol;
                }
                if (p.EnableCurrDigitGroupingSymbol == true)
                {
                    RunningPolicy.CurrDigitGroupingSymbol = p.CurrDigitGroupingSymbol;
                }

                if (p.EnableCurrNegativeFormat != null)
                {
                    RunningPolicy.EnableCurrNegativeFormat = p.EnableCurrNegativeFormat;
                }
                if (p.EnableCurrNegativeFormat == true)
                {
                    RunningPolicy.CurrNegativeFormat = p.CurrNegativeFormat;
                }

                if (p.EnableCurrNumDigitsAfterDec != null)
                {
                    RunningPolicy.EnableCurrNumDigitsAfterDec = p.EnableCurrNumDigitsAfterDec;
                }
                if (p.EnableCurrNumDigitsAfterDec == true)
                {
                    RunningPolicy.CurrNumDigitsAfterDec = p.CurrNumDigitsAfterDec;
                }

                if (p.EnableCurrPositiveFormat != null)
                {
                    RunningPolicy.EnableCurrPositiveFormat = p.EnableCurrPositiveFormat;
                }
                if (p.EnableCurrPositiveFormat == true)
                {
                    RunningPolicy.CurrPositiveFormat = p.CurrPositiveFormat;
                }

                if (p.EnableDate1stDayOfWeek != null)
                {
                    RunningPolicy.EnableDate1stDayOfWeek = p.EnableDate1stDayOfWeek;
                }
                if (p.EnableDate1stDayOfWeek == true)
                {
                    RunningPolicy.Date1stDayOfWeek = p.Date1stDayOfWeek;
                }

                if (p.EnableDate2DigitYear != null)
                {
                    RunningPolicy.EnableDate2DigitYear = p.EnableDate2DigitYear;
                }
                if (p.EnableDate2DigitYear == true)
                {
                    RunningPolicy.Date2DigitYear = p.Date2DigitYear;
                }

                if (p.EnableDateLongDate != null)
                {
                    RunningPolicy.EnableDateLongDate = p.EnableDateLongDate;
                }
                if (p.EnableDateLongDate == true)
                {
                    RunningPolicy.DateLongDate = p.DateLongDate;
                }

                if (p.EnableDateShortDate != null)
                {
                    RunningPolicy.EnableDateShortDate = p.EnableDateShortDate;
                }
                if (p.EnableDateShortDate == true)
                {
                    RunningPolicy.DateShortDate = p.DateShortDate;
                }

                if (p.EnableKeyboardLayout1 != null)
                {
                    RunningPolicy.EnableKeyboardLayout1 = p.EnableKeyboardLayout1;
                }
                if (p.EnableKeyboardLayout1 == true)
                {
                    RunningPolicy.KeyboardLayout1 = p.KeyboardLayout1;
                }

                if (p.EnableKeyboardLayout2 != null)
                {
                    RunningPolicy.EnableKeyboardLayout2 = p.EnableKeyboardLayout2;
                }
                if (p.EnableKeyboardLayout2 == true)
                {
                    RunningPolicy.KeyboardLayout2 = p.KeyboardLayout2;
                }

                if (p.EnableKeyboardLayout3 != null)
                {
                    RunningPolicy.EnableKeyboardLayout3 = p.EnableKeyboardLayout3;
                }
                if (p.EnableKeyboardLayout3 == true)
                {
                    RunningPolicy.KeyboardLayout3 = p.KeyboardLayout3;
                }

                if (p.EnableMainFormat != null)
                {
                    RunningPolicy.EnableMainFormat = p.EnableMainFormat;
                }
                if (p.EnableMainFormat == true)
                {
                    RunningPolicy.MainFormat = p.MainFormat;
                }

                if (p.EnableMainLocation != null)
                {
                    RunningPolicy.EnableMainLocation = p.EnableMainLocation;
                }
                if (p.EnableMainLocation == true)
                {
                    RunningPolicy.MainLocation = p.MainLocation;
                }

                if (p.EnableMainSystemLocale != null)
                {
                    RunningPolicy.EnableMainSystemLocale = p.EnableMainSystemLocale;
                }
                if (p.EnableMainSystemLocale == true)
                {
                    RunningPolicy.MainSystemLocale = p.MainSystemLocale;
                }

                if (p.EnableNumDecimalSymbol != null)
                {
                    RunningPolicy.EnableNumDecimalSymbol = p.EnableNumDecimalSymbol;
                }
                if (p.EnableNumDecimalSymbol == true)
                {
                    RunningPolicy.NumDecimalSymbol = p.NumDecimalSymbol;
                }

                if (p.EnableNumDigitGrouping != null)
                {
                    RunningPolicy.EnableNumDigitGrouping = p.EnableNumDigitGrouping;
                }
                if (p.EnableNumDigitGrouping == true)
                {
                    RunningPolicy.NumDigitGrouping = p.NumDigitGrouping;
                }

                if (p.EnableNumDigitGroupingSymbol != null)
                {
                    RunningPolicy.EnableNumDigitGroupingSymbol = p.EnableNumDigitGroupingSymbol;
                }
                if (p.EnableNumDigitGroupingSymbol == true)
                {
                    RunningPolicy.NumDigitGroupingSymbol = p.NumDigitGroupingSymbol;
                }

                if (p.EnableNumDisplayLeading0 != null)
                {
                    RunningPolicy.EnableNumDisplayLeading0 = p.EnableNumDisplayLeading0;
                }
                if (p.EnableNumDisplayLeading0 == true)
                {
                    RunningPolicy.NumDisplayLeading0 = p.NumDisplayLeading0;
                }

                if (p.EnableNumListSeparator != null)
                {
                    RunningPolicy.EnableNumListSeparator = p.EnableNumListSeparator;
                }
                if (p.EnableNumListSeparator == true)
                {
                    RunningPolicy.NumListSeparator = p.NumListSeparator;
                }

                if (p.EnableNumMeasurement != null)
                {
                    RunningPolicy.EnableNumMeasurement = p.EnableNumMeasurement;
                }
                if (p.EnableNumMeasurement == true)
                {
                    RunningPolicy.NumMeasurement = p.NumMeasurement;
                }

                if (p.EnableNumNegativeNumberFormat != null)
                {
                    RunningPolicy.EnableNumNegativeNumberFormat = p.EnableNumNegativeNumberFormat;
                }
                if (p.EnableNumNegativeNumberFormat == true)
                {
                    RunningPolicy.NumNegativeNumberFormat = p.NumNegativeNumberFormat;
                }

                if (p.EnableNumNegativeSignSymbol != null)
                {
                    RunningPolicy.EnableNumNegativeSignSymbol = p.EnableNumNegativeSignSymbol;
                }
                if (p.EnableNumNegativeSignSymbol == true)
                {
                    RunningPolicy.NumNegativeSignSymbol = p.NumNegativeSignSymbol;
                }

                if (p.EnableNumNumOfDigitsAfterDec != null)
                {
                    RunningPolicy.EnableNumNumOfDigitsAfterDec = p.EnableNumNumOfDigitsAfterDec;
                }
                if (p.EnableNumNumOfDigitsAfterDec == true)
                {
                    RunningPolicy.NumNumOfDigitsAfterDec = p.NumNumOfDigitsAfterDec;
                }

                if (p.EnableNumStdDigits != null)
                {
                    RunningPolicy.EnableNumStdDigits = p.EnableNumStdDigits;
                }
                if (p.EnableNumStdDigits == true)
                {
                    RunningPolicy.NumStdDigits = p.NumStdDigits;
                }

                if (p.EnableNumUseNativeDigits != null)
                {
                    RunningPolicy.EnableNumUseNativeDigits = p.EnableNumUseNativeDigits;
                }
                if (p.EnableNumUseNativeDigits == true)
                {
                    RunningPolicy.NumUseNativeDigits = p.NumUseNativeDigits;
                }

                if (p.EnableTelephoneIDN != null)
                {
                    RunningPolicy.EnableTelephoneIDN = p.EnableTelephoneIDN;
                }
                if (p.EnableTelephoneIDN == true)
                {
                    RunningPolicy.TelephoneIDN = p.TelephoneIDN;
                }

                if (p.EnableTimeAM != null)
                {
                    RunningPolicy.EnableTimeAM = p.EnableTimeAM;
                }
                if (p.EnableTimeAM == true)
                {
                    RunningPolicy.TimeAM = p.TimeAM;
                }

                if (p.EnableTimePM != null)
                {
                    RunningPolicy.EnableTimePM = p.EnableTimePM;
                }
                if (p.EnableTimePM == true)
                {
                    RunningPolicy.TimePM = p.TimePM;
                }

                if (p.EnableTimeLongTime != null)
                {
                    RunningPolicy.EnableTimeLongTime = p.EnableTimeLongTime;
                }
                if (p.EnableTimeLongTime == true)
                {
                    RunningPolicy.TimeLongTime = p.TimeLongTime;
                }

                if (p.EnableTimeShortTime != null)
                {
                    RunningPolicy.EnableTimeShortTime = p.EnableTimeShortTime;
                }
                if (p.EnableTimeShortTime == true)
                {
                    RunningPolicy.TimeShortTime = p.TimeShortTime;
                }

                if (p.EnableTimeZone != null)
                {
                    RunningPolicy.EnableTimeZone = p.EnableTimeZone;
                }
                if (p.EnableTimeZone == true)
                {
                    RunningPolicy.TimeZone = p.TimeZone;
                }

                if (p.EnableNumPositiveSignSymbol != null)
                {
                    RunningPolicy.EnableNumPositiveSignSymbol = p.EnableNumPositiveSignSymbol;
                }
                if (p.EnableNumPositiveSignSymbol == true)
                {
                    RunningPolicy.NumPositiveSignSymbol = p.NumPositiveSignSymbol;
                }

                if (p.DeleteOtherKeyboardLayouts != null)
                {
                    RunningPolicy.DeleteOtherKeyboardLayouts = p.DeleteOtherKeyboardLayouts;
                }
                if (p.AutoDST != null)
                {
                    RunningPolicy.AutoDST = p.AutoDST;
                }

                if (p.EnableTimeShortPrefix0Hour != null)
                {
                    RunningPolicy.EnableTimeShortPrefix0Hour = p.EnableTimeShortPrefix0Hour;
                }
                if (p.EnableTimeShortPrefix0Hour == true)
                {
                    RunningPolicy.TimeShortTimePrefix0Hour = p.TimeShortTimePrefix0Hour;
                }

                if (p.EnableTime24Hour != null)
                {
                    RunningPolicy.EnableTime24Hour = p.EnableTime24Hour;
                }
                if (p.EnableTime24Hour == true)
                {
                    RunningPolicy.Time24Hour = p.Time24Hour;
                }

                if (p.EnableDateSeparator != null)
                {
                    RunningPolicy.EnableDateSeparator = p.EnableDateSeparator;
                }
                if (p.EnableDateSeparator == true)
                {
                    RunningPolicy.DateSeparator = p.DateSeparator;
                }

                if (p.EnableDateFirstWeekOfYear != null)
                {
                    RunningPolicy.EnableDateFirstWeekOfYear = p.EnableDateFirstWeekOfYear;
                }
                if (p.EnableDateFirstWeekOfYear == true)
                {
                    RunningPolicy.DateFirstWeekOfYear = p.DateFirstWeekOfYear;
                }

                if (p.EnablePaperSize != null)
                {
                    RunningPolicy.EnablePaperSize = p.EnablePaperSize;
                }
                if (p.EnablePaperSize == true)
                {
                    RunningPolicy.PaperSize = p.PaperSize;
                }

                if (p.EnableTimeSeparator != null)
                {
                    RunningPolicy.EnableTimeSeparator = p.EnableTimeSeparator;
                }
                if (p.EnableTimeSeparator == true)
                {
                    RunningPolicy.TimeSeparator = p.TimeSeparator;
                }
            }
        }
Ejemplo n.º 6
0
        void ApplyUserPolicy(InternationalPolicy p)
        {
            try
            {
                using (RegistryKey intluser = Registry.CurrentUser.OpenSubKey("Control Panel\\International", true))
                {
                    if (intluser == null)
                    {
                        FoxEventLog.WriteEventLog("Cannot open HKCU\\Control Panel\\International - Registry broken?", System.Diagnostics.EventLogEntryType.Error);
                        return;
                    }

                    if (p.EnableMainLocation == true)
                    {
                        using (RegistryKey k = intluser.CreateSubKey("Geo"))
                        {
                            k.SetValue("Nation", p.MainLocation, RegistryValueKind.String);
                        }
                    }

                    if (p.EnableDate2DigitYear == true)
                    {
                        using (RegistryKey k = intluser.CreateSubKey("Calendars\\TwoDigitYearMax"))
                        {
                            k.SetValue("1", p.Date2DigitYear, RegistryValueKind.String);
                            k.SetValue("10", p.Date2DigitYear, RegistryValueKind.String);
                            k.SetValue("11", p.Date2DigitYear, RegistryValueKind.String);
                            k.SetValue("12", p.Date2DigitYear, RegistryValueKind.String);
                            k.SetValue("2", p.Date2DigitYear, RegistryValueKind.String);
                            k.SetValue("9", p.Date2DigitYear, RegistryValueKind.String);
                        }
                    }

                    if (p.EnableMainFormat == true)
                    {
                        try
                        {
                            CultureInfo c    = new CultureInfo(p.MainFormat);
                            RegionInfo  regi = new RegionInfo(p.MainFormat);

                            intluser.SetValue("sLanguage", c.ThreeLetterWindowsLanguageName, RegistryValueKind.String);
                            intluser.SetValue("sCountry", regi.NativeName, RegistryValueKind.String);
                            intluser.SetValue("LocaleName", c.IetfLanguageTag, RegistryValueKind.String);
                            intluser.SetValue("Locale", p.MainFormat.ToString("X8"));

                            Console.WriteLine(c.ThreeLetterWindowsLanguageName); //ENG
                            Console.WriteLine(c.IetfLanguageTag);                //en-GB
                            Console.WriteLine(regi.NativeName);                  //United Kingdom
                        }
                        catch
                        {
                            FoxEventLog.WriteEventLog("Cannot apply main region settings for ID " + p.MainFormat, System.Diagnostics.EventLogEntryType.Warning);
                        }
                    }

                    if (p.EnableCurrCurrencySymbol == true)
                    {
                        intluser.SetValue("sCurrency", p.CurrCurrencySymbol, RegistryValueKind.String);
                    }

                    if (p.EnableCurrDecimalSymbol == true)
                    {
                        intluser.SetValue("sMonDecimalSep", p.CurrDecimalSymbol, RegistryValueKind.String);
                    }

                    if (p.EnableCurrDigitGrouping == true)
                    {
                        switch (p.CurrDigitGrouping)
                        {
                        case 0:
                            intluser.SetValue("sMonGrouping", "0", RegistryValueKind.String);
                            break;

                        case 1:
                            intluser.SetValue("sMonGrouping", "3;0", RegistryValueKind.String);
                            break;

                        case 2:
                            intluser.SetValue("sMonGrouping", "3;0;0", RegistryValueKind.String);
                            break;

                        case 3:
                            intluser.SetValue("sMonGrouping", "3;2;0", RegistryValueKind.String);
                            break;

                        default:
                            FoxEventLog.WriteEventLog("Invalid policy value in Intl Policy \"CurrDigitGrouping\"", System.Diagnostics.EventLogEntryType.Warning);
                            break;
                        }
                    }

                    if (p.EnableCurrDigitGroupingSymbol == true)
                    {
                        intluser.SetValue("sMonThousandSep", p.CurrDigitGroupingSymbol, RegistryValueKind.String);
                    }

                    if (p.EnableCurrNegativeFormat == true)
                    {
                        intluser.SetValue("iNegCurr", p.CurrNegativeFormat, RegistryValueKind.String);
                    }

                    if (p.EnableCurrNumDigitsAfterDec == true)
                    {
                        intluser.SetValue("iCurrDigits", p.CurrNumDigitsAfterDec, RegistryValueKind.String);
                    }

                    if (p.EnableCurrPositiveFormat == true)
                    {
                        intluser.SetValue("iCurrency", p.CurrPositiveFormat, RegistryValueKind.String);
                    }

                    if (p.EnableDate1stDayOfWeek == true)
                    {
                        intluser.SetValue("iFirstDayOfWeek", p.Date1stDayOfWeek, RegistryValueKind.String);
                    }

                    if (p.EnableDateFirstWeekOfYear == true)
                    {
                        intluser.SetValue("iFirstWeekOfYear", p.DateFirstWeekOfYear, RegistryValueKind.String);
                    }

                    if (p.EnableDateFormat == true)
                    {
                        intluser.SetValue("iDate", p.DateFormat, RegistryValueKind.String);
                    }

                    if (p.EnableDateLongDate == true)
                    {
                        intluser.SetValue("sLongDate", p.DateLongDate, RegistryValueKind.String);
                    }

                    if (p.EnableDateSeparator == true)
                    {
                        intluser.SetValue("sDate", p.DateSeparator, RegistryValueKind.String);
                    }

                    if (p.EnableDateShortDate == true)
                    {
                        intluser.SetValue("sShortDate", p.DateShortDate, RegistryValueKind.String);
                    }

                    if (p.EnableNumDecimalSymbol == true)
                    {
                        intluser.SetValue("sDecimal", p.NumDecimalSymbol, RegistryValueKind.String);
                    }

                    if (p.EnableNumDigitGrouping == true)
                    {
                        switch (p.NumDigitGrouping)
                        {
                        case 0:
                            intluser.SetValue("sGrouping", "0", RegistryValueKind.String);
                            break;

                        case 1:
                            intluser.SetValue("sGrouping", "3;0", RegistryValueKind.String);
                            break;

                        case 2:
                            intluser.SetValue("sGrouping", "3;0;0", RegistryValueKind.String);
                            break;

                        case 3:
                            intluser.SetValue("sGrouping", "3;2;0", RegistryValueKind.String);
                            break;

                        default:
                            FoxEventLog.WriteEventLog("Invalid policy value in Intl Policy \"NumDigitGrouping\"", System.Diagnostics.EventLogEntryType.Warning);
                            break;
                        }
                    }

                    if (p.EnableNumDigitGroupingSymbol == true)
                    {
                        intluser.SetValue("sThousand", p.NumDigitGroupingSymbol, RegistryValueKind.String);
                    }


                    if (p.EnableNumDisplayLeading0 == true)
                    {
                        intluser.SetValue("iLZero", p.NumDisplayLeading0, RegistryValueKind.String);
                    }

                    if (p.EnableNumListSeparator == true)
                    {
                        intluser.SetValue("sList", p.NumListSeparator, RegistryValueKind.String);
                    }

                    if (p.EnableNumMeasurement == true)
                    {
                        intluser.SetValue("iMeasure", p.NumMeasurement, RegistryValueKind.String);
                    }

                    if (p.EnableNumNegativeNumberFormat == true)
                    {
                        intluser.SetValue("iNegNumber", p.NumNegativeNumberFormat, RegistryValueKind.String);
                    }

                    if (p.EnableNumNegativeSignSymbol == true)
                    {
                        intluser.SetValue("sNegativeSign", p.NumNegativeSignSymbol, RegistryValueKind.String);
                    }

                    if (p.EnableNumNumOfDigitsAfterDec == true)
                    {
                        intluser.SetValue("iDigits", p.NumNumOfDigitsAfterDec, RegistryValueKind.String);
                    }

                    if (p.EnableNumPositiveSignSymbol == true)
                    {
                        intluser.SetValue("sPositiveSign", p.NumPositiveSignSymbol, RegistryValueKind.String);
                    }

                    if (p.EnableNumStdDigits == true)
                    {
                        switch (p.NumStdDigits)
                        {
                        case 0:
                            intluser.SetValue("sNativeDigits", "0123456789", RegistryValueKind.String);
                            break;

                        default:
                            FoxEventLog.WriteEventLog("Invalid policy value in Intl Policy \"NumStdDigits\"", System.Diagnostics.EventLogEntryType.Warning);
                            break;
                        }
                    }

                    if (p.EnableNumUseNativeDigits == true)
                    {
                        intluser.SetValue("NumShape", p.NumUseNativeDigits, RegistryValueKind.String);
                    }

                    if (p.EnablePaperSize == true)
                    {
                        intluser.SetValue("iPaperSize", p.PaperSize, RegistryValueKind.String);
                    }

                    if (p.EnableTelephoneIDN == true)
                    {
                        intluser.SetValue("iCountry", p.TelephoneIDN, RegistryValueKind.String);
                    }

                    if (p.EnableTime24Hour == true)
                    {
                        intluser.SetValue("iTime", p.Time24Hour, RegistryValueKind.String);
                    }

                    if (p.EnableTimeAM == true)
                    {
                        intluser.SetValue("s1159", p.TimeAM, RegistryValueKind.String);
                    }

                    if (p.EnableTimePM == true)
                    {
                        intluser.SetValue("s2359", p.TimePM, RegistryValueKind.String);
                    }

                    if (p.EnableTimeLongTime == true)
                    {
                        intluser.SetValue("sTimeFormat", p.TimeLongTime, RegistryValueKind.String);
                    }

                    if (p.EnableTimeShortPrefix0Hour == true)
                    {
                        intluser.SetValue("iTLZero", p.TimeShortTimePrefix0Hour, RegistryValueKind.String);
                    }

                    if (p.EnableTimeShortTime == true)
                    {
                        intluser.SetValue("sShortTime", p.TimeShortTime, RegistryValueKind.String);
                    }

                    if (p.EnableTimeSeparator == true)
                    {
                        intluser.SetValue("sTime", p.TimeSeparator, RegistryValueKind.String);
                    }
                }
            }
            catch (Exception ee)
            {
                FoxEventLog.WriteEventLog("Cannot apply User Intl Settings for ID " + p.ID + "\n" + ee.ToString(), System.Diagnostics.EventLogEntryType.Error);
            }
        }