Merge remote-tracking branch 'origin/master' into YaSp
[scilab.git] / scilab / modules / localization / src / c / LocaleNameToLCID_Windows.c
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2010 - DIGITEO - Allan CORNET
4  * 
5  * This file must be used under the terms of the CeCILL.
6  * This source file is licensed as described in the file COPYING, which
7  * you should have received as part of this distribution.  The terms
8  * are also available at    
9  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
10  *
11  */
12 /*--------------------------------------------------------------------------*/
13 #include "LocaleNameToLCID_Windows.h"
14 /*--------------------------------------------------------------------------*/
15 /* ONLY for Windows */
16 /* Some old XP without SP2 or more do not have this function ... */
17 /*--------------------------------------------------------------------------*/
18 static HINSTANCE KernelDll = NULL;
19 /*--------------------------------------------------------------------------*/
20 typedef LCID (WINAPI * LocaleNameToLCIDPROC)(LPCWSTR lpName, DWORD dwFlags);
21 /*--------------------------------------------------------------------------*/
22 LCID dllLocaleNameToLCID(LPCWSTR lpName, DWORD dwFlags)
23 {
24     if (KernelDll == NULL) KernelDll = LoadLibrary ("kernel32.dll"); 
25     if (KernelDll)
26     {
27         LocaleNameToLCIDPROC ptrFunctionLocaleNameToLCID = (LocaleNameToLCIDPROC)GetProcAddress(KernelDll, "LocaleNameToLCID");
28         if (ptrFunctionLocaleNameToLCID)
29         {
30             return (LCID)(ptrFunctionLocaleNameToLCID)(lpName, dwFlags);
31         }
32     }
33     return 0;
34 }
35 /*--------------------------------------------------------------------------*/