//---------------------------------------------------------------------------- // (C) Copyright 1994 by Borland International, All Rights Reserved // // TLocaleString default NLS compare function - used only if non-OLE //---------------------------------------------------------------------------- #if !defined(_Windows) # define _Windows // pretend we are in windows to get the headers we need #endif #include #if defined(BI_PLAT_WIN32) TLangId TLocaleString::GetSystemLangId() { return ::GetSystemDefaultLangID(); } TLangId TLocaleString::GetUserLangId() { return ::GetUserDefaultLangID(); } int TLocaleString::CompareLang(const char far* s1, const char far* s2, TLangId lang) { typedef int WINAPI (*TCompareStringA)(LCID, DWORD, LPCSTR, int, LPCSTR, int); static int WINAPI (*compareStringA)(LCID, DWORD, LPCSTR, int, LPCSTR, int) = (TCompareStringA)::GetProcAddress(::GetModuleHandle("kernel32"), "CompareStringA"); // Use CompareStringA if it is available // if (compareStringA) return compareStringA(lang, NORM_IGNORECASE | NORM_IGNORENONSPACE, s1,-1, s2,-1) - 2; // Otherwise just use RTL function // return _fstricmp(s1, s2); // only permissible if not an OLE application } #else #include TLangId TLocaleString::GetSystemLangId() { return 0x409; // US English if no OLE or Win32 support } TLangId TLocaleString::GetUserLangId() { return 0x409; // US English if no OLE or Win32 support } int TLocaleString::CompareLang(const char far* s1, const char far* s2, TLangId) { return _fstricmp(s1, s2); // only permissible if not an OLE application } #endif