internal static extern bool nativeGetDTFIUserValues(int lcid, ref DTFIUserOverrideValues values);
//////////////////////////////////////////////////////////////////////////// // // Parameters: // calendarValueOnly Retrieve the values which are affected by the calendar change of DTFI. // This will cause values like longTimePattern not be retrieved since it is // not affected by the Calendar property in DTFI. // //////////////////////////////////////////////////////////////////////////// internal unsafe void GetDTFIOverrideValues(ref DTFIUserOverrideValues values) { BCLDebug.Assert(UseUserOverride, "CultureTableRecord.GetDTFIOverrideValues(): Call this only when UseUserOverride is true."); bool result = false; if (UseGetLocaleInfo) result = CultureInfo.nativeGetDTFIUserValues(InteropLCID, ref values); if (result) { // if we got values.yearMonthPattern = null this means the data is not located in the registry and // we couldn't call GetLocaleInfo. we leave yearMonthPattern as null here so the caller (DTFI) // will initialize it properly. values.firstDayOfWeek = ConvertFirstDayOfWeekMonToSun((int)values.firstDayOfWeek); // Need to do escaping of win32/file type patterns to NLS type patterns values.shortDatePattern = ReescapeWin32String(values.shortDatePattern); values.longDatePattern = ReescapeWin32String(values.longDatePattern); values.longTimePattern = ReescapeWin32String(values.longTimePattern); values.yearMonthPattern = ReescapeWin32String(values.yearMonthPattern); } else { // // We do not use user-override values or something failed during the call to GetLocaleInfo(). Use the information in culture.nlp. // values.firstDayOfWeek = IFIRSTDAYOFWEEK; values.calendarWeekRule = IFIRSTWEEKOFYEAR; values.shortDatePattern = SSHORTDATE; values.longDatePattern = SLONGDATE; values.yearMonthPattern = SYEARMONTH; values.amDesignator = S1159; values.pmDesignator = S2359; values.longTimePattern = STIMEFORMAT; } }