int GetAdvanceHijriDate() {
int hijriAdvance = 0;
const int parameterValueLength = 255;
StringBuilder parameterValue = new StringBuilder(parameterValueLength);
bool rc = Win32Native.FetchConfigurationString(true, m_HijriAdvanceRegKeyEntry, parameterValue, parameterValueLength);
if( rc )
{
String str = parameterValue.ToString();
if (String.Compare(str, 0, m_HijriAdvanceRegKeyEntry, 0, m_HijriAdvanceRegKeyEntry.Length, true, CultureInfo.InvariantCulture) == 0) {
if (str.Length == m_HijriAdvanceRegKeyEntry.Length)
hijriAdvance = -1;
else {
str = str.Substring(m_HijriAdvanceRegKeyEntry.Length);
try {
int advance = Int32.Parse(str.ToString(), CultureInfo.InvariantCulture);
if ((advance >= MinAdvancedHijri) && (advance <= MaxAdvancedHijri)) {
hijriAdvance = advance;
}
}
// If we got garbage from registry just ignore it.
// hijriAdvance = 0 because of declaraction assignment up above.
catch (ArgumentException) { }
catch (FormatException) { }
catch (OverflowException) { }
}
}
}
return (hijriAdvance);
}