blob: 693b33da7b7d19800750b2369b6fab3d068691ad [file] [log] [blame]
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_shell.hxx"
#include "internal/config.hxx"
#include "internal/dbgmacros.hxx"
#include "internal/utilities.hxx"
//-----------------------------
// constants
//-----------------------------
const size_t MAX_RES_STRING = 1024;
const wchar_t SPACE_CHAR = _T(' ');
//---------------------------------
/**
*/
std::wstring StringToWString(const std::string& String)
{
int len = MultiByteToWideChar(
CP_ACP, 0, String.c_str(), -1, 0, 0);
wchar_t* buff = reinterpret_cast<wchar_t*>(
_alloca(len * sizeof(wchar_t)));
MultiByteToWideChar(
CP_ACP, 0, String.c_str(), -1, buff, len);
return std::wstring(buff);
}
//---------------------------------
/**
*/
std::string WStringToString(const std::wstring& String)
{
int len = WideCharToMultiByte(
CP_ACP, 0, String.c_str(), -1, 0, 0, 0, 0);
char* buff = reinterpret_cast<char*>(
_alloca(len * sizeof(char)));
WideCharToMultiByte(
CP_ACP, 0, String.c_str(), -1, buff, len, 0, 0);
return std::string(buff);
}
//---------------------------------
/**
*/
std::wstring GetResString(int ResId)
{
wchar_t szResStr[MAX_RES_STRING];
int rc = LoadStringW( GetModuleHandleW(MODULE_NAME), ResId, szResStr, sizeof(szResStr) );
OutputDebugStringFormat( "GetResString: read %d chars\n", rc );
ENSURE(rc, "String resource not found");
return std::wstring(szResStr);
}
//---------------------------------
/**
*/
bool is_windows_xp_or_above()
{
OSVERSIONINFO osvi;
ZeroMemory(&osvi, sizeof(osvi));
osvi.dwOSVersionInfoSize = sizeof(osvi);
GetVersionEx(&osvi);
// LLA: check for windows xp or above (Vista)
if (osvi.dwMajorVersion > 5 ||
(5 == osvi.dwMajorVersion && osvi.dwMinorVersion >= 1))
{
return true;
}
return false;
}
//---------------------------------
/**
*/
void SaveDebugInfoToFile( const std::wstring& str )
{
int handle;
if ((handle = open("c:\\temp\\SHELLRESULT.$$$", O_CREAT | O_RDWR | O_APPEND )) == -1)
{
perror("Error: open file error");
return;
}
write(handle, str.c_str(), str.length() );
close(handle);
}
//---------------------------------
/** helper function to judge if the string is only has spaces.
@returns
<TRUE>if the provided string contains only but at least one space
character else <FALSE/>.
*/
bool HasOnlySpaces(const std::wstring& String)
{
if ( String.length() == 0 )
return false;
const wchar_t* p = String.c_str();
while (*p)
{
if (*p++ != SPACE_CHAR)
return false;
}
return true;
}
//---------------------------------
/** helper function to convert windows pathes to short form.
@returns
shortend path.
*/
std::wstring getShortPathName( const std::wstring& aLongName )
{
std::wstring shortName = aLongName;
long length = GetShortPathName( aLongName.c_str(), NULL, 0 );
if ( length != 0 )
{
TCHAR* buffer = new TCHAR[ length+1 ];
length = GetShortPathName( aLongName.c_str(), buffer, length );
if ( length != 0 )
shortName = std::wstring( buffer );
delete [] buffer;
}
return shortName;
}
/** convert LocaleSet pair into Microsoft List of Locale ID (LCID)
according to ISO-639 and ISO-3166.
http://etext.lib.virginia.edu/tei/iso639.html
http://nl.ijs.si/gnusl/cee/std/ISO_3166.html
@param
Locale, LocaleSet
@returns
Windows Locale Identifier corresponding to input LocaleSet.
@Usage Sample
LocaleSet_t myDefaultLocale( ::std::wstring( L"zh" ),::std::wstring(L"HK") );
DWORD myLCID = LocaleSetToLCID( myDefaultLocale );
wchar_t buffer[20];
_ultow( myLCID, buffer, 16 );
MessageBox( NULL, buffer,L"the LCID is:",MB_OK );
*/
LCID LocaleSetToLCID( const LocaleSet_t & Locale )
{
if ( EMPTY_LOCALE == Locale )
return GetSystemDefaultLCID();
USHORT usPrimaryLang= LANG_NEUTRAL;
USHORT usSubLang=SUBLANG_DEFAULT;
::std::wstring wsLanguage(Locale.first);
::std::wstring wsCountry(Locale.second);
if ( wsLanguage == L"ar" )
{
usPrimaryLang = LANG_ARABIC; // Arabic 01
if ( wsCountry == L"SA" )
usSubLang = SUBLANG_ARABIC_SAUDI_ARABIA; // Arabic (Saudi Arabia)
else if ( wsCountry == L"IQ" )
usSubLang = SUBLANG_ARABIC_IRAQ; // Arabic (Iraq)
else if ( wsCountry == L"EG" )
usSubLang = SUBLANG_ARABIC_EGYPT; // Arabic (Egypt)
else if ( wsCountry == L"LY" )
usSubLang = SUBLANG_ARABIC_LIBYA; // Arabic (Libya)
else if ( wsCountry == L"DZ" )
usSubLang = SUBLANG_ARABIC_ALGERIA; // Arabic (Algeria)
else if ( wsCountry == L"MA" )
usSubLang = SUBLANG_ARABIC_MOROCCO; // Arabic (Morocco)
else if ( wsCountry == L"TN" )
usSubLang = SUBLANG_ARABIC_TUNISIA; // Arabic (Tunisia)
else if ( wsCountry == L"OM" )
usSubLang = SUBLANG_ARABIC_OMAN; // Arabic (Oman)
else if ( wsCountry == L"YE" )
usSubLang = SUBLANG_ARABIC_YEMEN; // Arabic (Yemen)
else if ( wsCountry == L"SY" )
usSubLang = SUBLANG_ARABIC_SYRIA; // Arabic (Syria)
else if ( wsCountry == L"JO" )
usSubLang = SUBLANG_ARABIC_JORDAN; // Arabic (Jordan)
else if ( wsCountry == L"LB" )
usSubLang = SUBLANG_ARABIC_LEBANON; // Arabic (Lebanon)
else if ( wsCountry == L"KW" )
usSubLang = SUBLANG_ARABIC_KUWAIT; // Arabic (Kuwait)
else if ( wsCountry == L"AE" )
usSubLang = SUBLANG_ARABIC_UAE; // Arabic (U.A.E.)
else if ( wsCountry == L"BH" )
usSubLang = SUBLANG_ARABIC_BAHRAIN; // Arabic (Bahrain)
else if ( wsCountry == L"QA" )
usSubLang = SUBLANG_ARABIC_QATAR; // Arabic (Qatar)
else
usSubLang = SUBLANG_DEFAULT; //default sub language
}
else if ( wsLanguage == L"bg" )
usPrimaryLang = LANG_BULGARIAN; //Bulgarian 02
else if ( wsLanguage == L"ca" )
usPrimaryLang = LANG_CATALAN; //Catalan 03
else if ( wsLanguage == L"zh" )
{
usPrimaryLang = LANG_CHINESE; //Chinese
if ( wsCountry == L"TW" )
usSubLang = SUBLANG_CHINESE_TRADITIONAL; // Chinese (Traditional)
else if ( wsCountry == L"CN" )
usSubLang = SUBLANG_CHINESE_SIMPLIFIED; // Chinese (Simplified)
else if ( wsCountry == L"HK" )
usSubLang = SUBLANG_CHINESE_HONGKONG; // Chinese (Hong Kong SAR, PRC)
else if ( wsCountry == L"SG" )
usSubLang = SUBLANG_CHINESE_SINGAPORE; // Chinese (Singapore)
else if ( wsCountry == L"MO" )
usSubLang = SUBLANG_CHINESE_MACAU; // Chinese (Macau SAR)
else
usSubLang = SUBLANG_DEFAULT; //default sub language
}
else if ( wsLanguage == L"cs" )
usPrimaryLang = LANG_CZECH; //Czech
else if ( wsLanguage == L"da" )
usPrimaryLang = LANG_DANISH; //Danish
else if ( wsLanguage == L"de" )
{
usPrimaryLang = LANG_GERMAN; //German
if ( wsCountry == L"DE" )
usSubLang = SUBLANG_GERMAN; // German
else if ( wsCountry == L"CH" )
usSubLang = SUBLANG_GERMAN_SWISS; // German (Swiss)
else if ( wsCountry == L"AT" )
usSubLang = SUBLANG_GERMAN_AUSTRIAN; // German (Austrian)
else if ( wsCountry == L"LU" )
usSubLang = SUBLANG_GERMAN_LUXEMBOURG; // German (Luxembourg)
else if ( wsCountry == L"LI" )
usSubLang = SUBLANG_GERMAN_LIECHTENSTEIN; // German (Liechtenstein)
else
usSubLang = SUBLANG_DEFAULT; //default sub language
}
else if ( wsLanguage == L"el" )
usPrimaryLang = LANG_GREEK; //Greek
else if ( wsLanguage == L"en" )
{
usPrimaryLang = LANG_ENGLISH; //English
if ( wsCountry == L"US" )
usSubLang = SUBLANG_ENGLISH_US; // English (US)
else if ( wsCountry == L"GB" )
usSubLang = SUBLANG_ENGLISH_UK; // English (UK)
else if ( wsCountry == L"AU" )
usSubLang = SUBLANG_ENGLISH_AUS; // English (Australian)
else if ( wsCountry == L"CA" )
usSubLang = SUBLANG_ENGLISH_CAN; // English (Canadian)
else if ( wsCountry == L"NZ" )
usSubLang = SUBLANG_ENGLISH_NZ; // English (New Zealand)
else if ( wsCountry == L"IE" )
usSubLang = SUBLANG_ENGLISH_EIRE; // English (Ireland)
else if ( wsCountry == L"ZA" )
usSubLang = SUBLANG_ENGLISH_SOUTH_AFRICA; // English (South Africa)
else if ( wsCountry == L"JM" )
usSubLang = SUBLANG_ENGLISH_JAMAICA; // English (Jamaica)
else if ( wsCountry == L"GD" )
usSubLang = SUBLANG_ENGLISH_CARIBBEAN; // English (Caribbean) Grenada
else if ( wsCountry == L"BZ" )
usSubLang = SUBLANG_ENGLISH_BELIZE; // English (Belize)
else if ( wsCountry == L"TT" )
usSubLang = SUBLANG_ENGLISH_TRINIDAD; // English (Trinidad)
else if ( wsCountry == L"ZW" )
usSubLang = SUBLANG_ENGLISH_ZIMBABWE; // English (Zimbabwe)
else if ( wsCountry == L"PH" )
usSubLang = SUBLANG_ENGLISH_PHILIPPINES; // English (Philippines)
else
usSubLang = SUBLANG_DEFAULT; //default sub language
}
else if ( wsLanguage == L"es" )
{
usPrimaryLang = LANG_SPANISH; //Spanish
//else if ( wsCountry == L"ES" )
// usSubLang = SUBLANG_SPANISH; // Spanish (Castilian)
if ( wsCountry == L"MX" )
usSubLang = SUBLANG_SPANISH_MEXICAN; // Spanish (Mexican)
else if ( wsCountry == L"ES" )
usSubLang = SUBLANG_SPANISH_MODERN; // Spanish (Spain)
else if ( wsCountry == L"GT" )
usSubLang = SUBLANG_SPANISH_GUATEMALA; // Spanish (Guatemala)
else if ( wsCountry == L"CR" )
usSubLang = SUBLANG_SPANISH_COSTA_RICA; // Spanish (Costa Rica)
else if ( wsCountry == L"PA" )
usSubLang = SUBLANG_SPANISH_PANAMA; // Spanish (Panama)
else if ( wsCountry == L"DO" )
usSubLang = SUBLANG_SPANISH_DOMINICAN_REPUBLIC; // Spanish (Dominican Republic)
else if ( wsCountry == L"VE" )
usSubLang = SUBLANG_SPANISH_VENEZUELA; // Spanish (Venezuela)
else if ( wsCountry == L"CO" )
usSubLang = SUBLANG_SPANISH_COLOMBIA; // Spanish (Colombia)
else if ( wsCountry == L"PE" )
usSubLang = SUBLANG_SPANISH_PERU; // Spanish (Peru)
else if ( wsCountry == L"AR" )
usSubLang = SUBLANG_SPANISH_ARGENTINA; // Spanish (Argentina)
else if ( wsCountry == L"EC" )
usSubLang = SUBLANG_SPANISH_ECUADOR; // Spanish (Ecuador)
else if ( wsCountry == L"CL" )
usSubLang = SUBLANG_SPANISH_CHILE; // Spanish (Chile)
else if ( wsCountry == L"UY" )
usSubLang = SUBLANG_SPANISH_URUGUAY; // Spanish (Uruguay)
else if ( wsCountry == L"PY" )
usSubLang = SUBLANG_SPANISH_PARAGUAY; // Spanish (Paraguay)
else if ( wsCountry == L"BO" )
usSubLang = SUBLANG_SPANISH_BOLIVIA; // Spanish (Bolivia)
else if ( wsCountry == L"SV" )
usSubLang = SUBLANG_SPANISH_EL_SALVADOR; // Spanish (El Salvador)
else if ( wsCountry == L"HN" )
usSubLang = SUBLANG_SPANISH_HONDURAS; // Spanish (Honduras)
else if ( wsCountry == L"NI" )
usSubLang = SUBLANG_SPANISH_NICARAGUA; // Spanish (Nicaragua)
else if ( wsCountry == L"PR" )
usSubLang = SUBLANG_SPANISH_PUERTO_RICO; // Spanish (Puerto Rico)
else
usSubLang = SUBLANG_DEFAULT; //default sub language
}
else if ( wsLanguage == L"fi" )
usPrimaryLang = LANG_FINNISH; //Finnish
else if ( wsLanguage == L"fr" )
{
usPrimaryLang = LANG_FRENCH; //French
if ( wsCountry == L"FR" )
usSubLang = SUBLANG_FRENCH; // French
else if ( wsCountry == L"BE" )
usSubLang = SUBLANG_FRENCH_BELGIAN; // French (Belgian)
else if ( wsCountry == L"CA" )
usSubLang = SUBLANG_FRENCH_CANADIAN; // French (Canadian)
else if ( wsCountry == L"CH" )
usSubLang = SUBLANG_FRENCH_SWISS; // French (Swiss)
else if ( wsCountry == L"LU" )
usSubLang = SUBLANG_FRENCH_LUXEMBOURG; // French (Luxembourg)
else if ( wsCountry == L"MC" )
usSubLang = SUBLANG_FRENCH_MONACO; // French (Monaco)
else
usSubLang = SUBLANG_DEFAULT; //default sub language
}
else if ( wsLanguage == L"iw" )
usPrimaryLang = LANG_HEBREW; //Hebrew
else if ( wsLanguage == L"hu" )
usPrimaryLang = LANG_HUNGARIAN; //Hungarian
else if ( wsLanguage == L"is" )
usPrimaryLang = LANG_ICELANDIC; //Icelandic
else if ( wsLanguage == L"it" )
{
usPrimaryLang = LANG_ITALIAN; //Italian
if ( wsCountry == L"IT" )
usSubLang = SUBLANG_ITALIAN; // Italian
else if ( wsCountry == L"CH" )
usSubLang = SUBLANG_ITALIAN_SWISS; // Italian (Swiss)
else
usSubLang = SUBLANG_DEFAULT; //default sub language
}
else if ( wsLanguage == L"ja" )
usPrimaryLang = LANG_JAPANESE; //Japanese
else if ( wsLanguage == L"ko" )
{
usPrimaryLang = LANG_KOREAN; //Korean
if ( wsCountry == L"KR" )
usSubLang = SUBLANG_KOREAN; // Korean
else
usSubLang = SUBLANG_DEFAULT; //default sub language
}
else if ( wsLanguage == L"nl" )
{
usPrimaryLang = LANG_DUTCH; //Dutch
if ( wsCountry == L"NL" )
usSubLang = SUBLANG_DUTCH; // Dutch
else if ( wsCountry == L"BE" )
usSubLang = SUBLANG_DUTCH_BELGIAN; // Dutch (Belgian)
else
usSubLang = SUBLANG_DEFAULT; //default sub language
}
else if ( wsLanguage == L"no" )
{
usPrimaryLang = LANG_NORWEGIAN; //Norwegian
if ( wsCountry == L"NO" )
usSubLang = SUBLANG_NORWEGIAN_BOKMAL; // Norwegian (Bokmal)
//else if ( wsCountry == L"NO" )
// usSubLang = SUBLANG_NORWEGIAN_NYNORSK; // Norwegian (Nynorsk)
else
usSubLang = SUBLANG_DEFAULT; //default sub language
}
else if ( wsLanguage == L"pl" )
usPrimaryLang = LANG_POLISH; //Polish
else if ( wsLanguage == L"pt" )
{
usPrimaryLang = LANG_PORTUGUESE; //Portuguese
if ( wsCountry == L"BR" )
usSubLang = SUBLANG_PORTUGUESE_BRAZILIAN; // Portuguese (Brazil)
else if ( wsCountry == L"PT" )
usSubLang = SUBLANG_PORTUGUESE; // Portuguese (Portugal)
else
usSubLang = SUBLANG_DEFAULT; //default sub language
}
else if ( wsLanguage == L"ro" )
usPrimaryLang = LANG_ROMANIAN; //Romanian
else if ( wsLanguage == L"ru" )
usPrimaryLang = LANG_RUSSIAN; //Russian
else if ( wsLanguage == L"hr" )
usPrimaryLang = LANG_CROATIAN; //Croatian
else if ( wsLanguage == L"sr" )
{
usPrimaryLang = LANG_SERBIAN; //Serbian
if ( wsCountry == L"VA" )
usSubLang = SUBLANG_SERBIAN_LATIN; // Serbian (Latin)
else if ( wsCountry == L"HR" )
usSubLang = SUBLANG_SERBIAN_CYRILLIC; // Serbian (Cyrillic)
else
usSubLang = SUBLANG_DEFAULT; //default sub language
}
else if ( wsLanguage == L"sk" )
usPrimaryLang = LANG_SLOVAK; //Slovak
else if ( wsLanguage == L"sq" )
usPrimaryLang = LANG_ALBANIAN; //Albanian
else if ( wsLanguage == L"sv" )
{
usPrimaryLang = LANG_SWEDISH; //Swedish
if ( wsCountry == L"SE" )
usSubLang = SUBLANG_SWEDISH; // Swedish
else if ( wsCountry == L"FI" )
usSubLang = SUBLANG_SWEDISH_FINLAND; // Swedish (Finland)
else
usSubLang = SUBLANG_DEFAULT; //default sub language
}
else if ( wsLanguage == L"th" )
usPrimaryLang = LANG_THAI; //Thai
else if ( wsLanguage == L"tr" )
usPrimaryLang = LANG_TURKISH; //Turkish
else if ( wsLanguage == L"ur" )
{
usPrimaryLang = LANG_URDU; //Urdu
if ( wsCountry == L"PK" )
usSubLang = SUBLANG_URDU_PAKISTAN; // Urdu (Pakistan)
else if ( wsCountry == L"IN" )
usSubLang = SUBLANG_URDU_INDIA; // Urdu (India)
else
usSubLang = SUBLANG_DEFAULT; //default sub language
}
else if ( wsLanguage == L"in" )
usPrimaryLang = LANG_INDONESIAN; //Indonesian
else if ( wsLanguage == L"uk" )
usPrimaryLang = LANG_UKRAINIAN; //Ukrainian
else if ( wsLanguage == L"be" )
usPrimaryLang = LANG_BELARUSIAN; //Belarusian
else if ( wsLanguage == L"sl" )
usPrimaryLang = LANG_SLOVENIAN; //Slovenian
else if ( wsLanguage == L"et" )
usPrimaryLang = LANG_ESTONIAN; //Estonian
else if ( wsLanguage == L"lv" )
usPrimaryLang = LANG_LATVIAN; //Latvian
else if ( wsLanguage == L"lt" )
{
usPrimaryLang = LANG_LITHUANIAN; //Lithuanian
if ( wsCountry == L"LT" )
usSubLang = SUBLANG_LITHUANIAN; // Lithuanian
else
usSubLang = SUBLANG_DEFAULT; //default sub language
}
else if ( wsLanguage == L"fa" )
usPrimaryLang = LANG_FARSI; //Farsi
else if ( wsLanguage == L"vi" )
usPrimaryLang = LANG_VIETNAMESE; //Vietnamese
else if ( wsLanguage == L"hy" )
usPrimaryLang = LANG_ARMENIAN; //Armenian
else if ( wsLanguage == L"az" )
{
usPrimaryLang = LANG_AZERI; //Azeri
//if ( wsCountry == L" " )
// usSubLang = SUBLANG_AZERI_LATIN; // Azeri (Latin)
//else if ( wsCountry == L" " )
// usSubLang = SUBLANG_AZERI_CYRILLIC; // Azeri (Cyrillic)
}
else if ( wsLanguage == L"eu" )
usPrimaryLang = LANG_BASQUE; //Basque
else if ( wsLanguage == L"mk" )
usPrimaryLang = LANG_MACEDONIAN; //FYRO Macedonian
else if ( wsLanguage == L"af" )
usPrimaryLang = LANG_AFRIKAANS; //Afrikaans
else if ( wsLanguage == L"ka" )
usPrimaryLang = LANG_GEORGIAN; //Georgian
else if ( wsLanguage == L"fo" )
usPrimaryLang = LANG_FAEROESE; //Faeroese
else if ( wsLanguage == L"hi" )
usPrimaryLang = LANG_HINDI; //Hindi
else if ( wsLanguage == L"ms" )
{
usPrimaryLang = LANG_MALAY; //Malay
if ( wsCountry == L"MY" )
usSubLang = SUBLANG_MALAY_MALAYSIA; // Malay (Malaysia)
else if ( wsCountry == L"BN" )
usSubLang = SUBLANG_MALAY_BRUNEI_DARUSSALAM; // Malay (Brunei Darassalam)
else
usSubLang = SUBLANG_DEFAULT; //default sub language
}
else if ( wsLanguage == L"kk" )
usPrimaryLang = LANG_KAZAK; //Kazak
else if ( wsLanguage == L"ky" )
usPrimaryLang = LANG_KYRGYZ; //Kyrgyz
else if ( wsLanguage == L"sw" )
usPrimaryLang = LANG_SWAHILI; //Swahili
else if ( wsLanguage == L"uz" )
{
usPrimaryLang = LANG_UZBEK; //Uzbek
if ( wsCountry == L"UZ" )
usSubLang = SUBLANG_UZBEK_LATIN; // Uzbek (Latin)
else if ( wsCountry == L"DE" )
usSubLang = SUBLANG_UZBEK_CYRILLIC; // Uzbek (Cyrillic)
else
usSubLang = SUBLANG_DEFAULT; //default sub language
}
else if ( wsLanguage == L"tt" )
usPrimaryLang = LANG_TATAR; //Tatar
else if ( wsLanguage == L"bn" )
usPrimaryLang = LANG_BENGALI; //Not supported.
else if ( wsLanguage == L"pa" )
usPrimaryLang = LANG_PUNJABI; //Punjabi
else if ( wsLanguage == L"gu" )
usPrimaryLang = LANG_GUJARATI; //Gujarati
else if ( wsLanguage == L"or" )
usPrimaryLang = LANG_ORIYA; //Not supported.
else if ( wsLanguage == L"ta" )
usPrimaryLang = LANG_TAMIL; //Tamil
else if ( wsLanguage == L"te" )
usPrimaryLang = LANG_TELUGU; //Telugu
else if ( wsLanguage == L"kn" )
usPrimaryLang = LANG_KANNADA; //Kannada
else if ( wsLanguage == L"ml" )
usPrimaryLang = LANG_MALAYALAM; //Not supported.
else if ( wsLanguage == L"as" )
usPrimaryLang = LANG_ASSAMESE; //Not supported.
else if ( wsLanguage == L"mr" )
usPrimaryLang = LANG_MARATHI; //Marathi
else if ( wsLanguage == L"sa" )
usPrimaryLang = LANG_SANSKRIT; //Sanskrit
else if ( wsLanguage == L"mn" )
usPrimaryLang = LANG_MONGOLIAN; //Mongolian
else if ( wsLanguage == L"gl" )
usPrimaryLang = LANG_GALICIAN; //Galician
else if ( wsLanguage == L"sd" )
usPrimaryLang = LANG_SINDHI; //Not supported.
else if ( wsLanguage == L"ks" )
usPrimaryLang = LANG_KASHMIRI; //Not supported.
else if ( wsLanguage == L"ne" )
usPrimaryLang = LANG_NEPALI; //Not supported.
//else if ( wsLanguage == L" " )
// usPrimaryLang = LANG_MANIPURI; //Not supported.
//else if ( wsLanguage == L" " )
// usPrimaryLang = LANG_KONKANI; //Konkani
//else if ( wsLanguage == L" " )
// usPrimaryLang = LANG_SYRIAC; //Syriac
//else if ( wsLanguage == L" " )
// usPrimaryLang = LANG_DIVEHI; //Divehi
else
return GetSystemDefaultLCID(); //System Default Locale
return MAKELCID( MAKELANGID( usPrimaryLang, usSubLang ), SORT_DEFAULT );
}