// Locale names cache
const static INT m_cchLocaleSize = 5;
- static ATL::CStringW m_szLocaleID;
- static ATL::CStringW m_szCachedINISectionLocale;
- static ATL::CStringW m_szCachedINISectionLocaleNeutral;
+ ATL::CStringW m_szLocaleID;
+ ATL::CStringW m_szCachedINISectionLocale;
+ ATL::CStringW m_szCachedINISectionLocaleNeutral;
const ATL::CStringW szConfigPath;
- static ATL::CStringW GetINIFullPath(const ATL::CStringW& FileName);
- static VOID CacheINILocaleLazy();
+ ATL::CStringW GetINIFullPath(const ATL::CStringW& FileName);
+ VOID CacheINILocale();
public:
- static const ATL::CStringW& GetLocale();
- static INT CConfigParser::GetLocaleSize();
-
CConfigParser(const ATL::CStringW& FileName = "");
UINT GetString(const ATL::CStringW& KeyName, ATL::CStringW& ResultString);
}
// CConfigParser
-ATL::CStringW CConfigParser::m_szLocaleID;
-ATL::CStringW CConfigParser::m_szCachedINISectionLocale;
-ATL::CStringW CConfigParser::m_szCachedINISectionLocaleNeutral;
CConfigParser::CConfigParser(const ATL::CStringW& FileName) : szConfigPath(GetINIFullPath(FileName))
{
- // we don't have cached section strings for the current system language, create them, lazy
- CacheINILocaleLazy();
+ CacheINILocale();
}
ATL::CStringW CConfigParser::GetINIFullPath(const ATL::CStringW& FileName)
return szBuffer;
}
-VOID CConfigParser::CacheINILocaleLazy()
+VOID CConfigParser::CacheINILocale()
{
- if (m_szLocaleID.IsEmpty())
- {
- // TODO: Set default locale if call fails
- // find out what is the current system lang code (e.g. "0a") and append it to SectionLocale
- GetLocaleInfoW(GetUserDefaultLCID(), LOCALE_ILANGUAGE,
- m_szLocaleID.GetBuffer(m_cchLocaleSize), m_cchLocaleSize);
-
- m_szLocaleID.ReleaseBuffer();
- m_szCachedINISectionLocale = L"Section." + m_szLocaleID;
-
- // turn "Section.0c0a" into "Section.0a", keeping just the neutral lang part
- m_szCachedINISectionLocaleNeutral = m_szCachedINISectionLocale + m_szLocaleID.Right(2);
- }
-}
+ // TODO: Set default locale if call fails
+ // find out what is the current system lang code (e.g. "0a") and append it to SectionLocale
+ GetLocaleInfoW(GetUserDefaultLCID(), LOCALE_ILANGUAGE,
+ m_szLocaleID.GetBuffer(m_cchLocaleSize), m_cchLocaleSize);
-const ATL::CStringW& CConfigParser::GetLocale()
-{
- CacheINILocaleLazy();
- return m_szLocaleID;
-}
+ m_szLocaleID.ReleaseBuffer();
+ m_szCachedINISectionLocale = L"Section." + m_szLocaleID;
-INT CConfigParser::GetLocaleSize()
-{
- return m_cchLocaleSize;
+ // turn "Section.0c0a" into "Section.0a", keeping just the neutral lang part
+ m_szCachedINISectionLocaleNeutral = m_szCachedINISectionLocale + m_szLocaleID.Right(2);
}
UINT CConfigParser::GetString(const ATL::CStringW& KeyName, ATL::CStringW& ResultString)