Article ID: 196787
Article Last Modified on 7/11/2005
#define NUM_TCHARS_NEEDED_FOR_BACKSLASH (1)
#define NUM_TCHARS_NEEDED_FOR_NULL_TERM (1)
#define BACKSLASH (TEXT("\\"))
UINT nLenOfSysDirPath = 0;
LPTSTR lpszSysDir = NULL;
LPTSTR lpszSysFile = NULL;
UINT nLen = 0;
DWORD dwUseless = 0;
LPVOID lpVersionData = NULL;
DWORD dwSize = 0;
LCID lcidUSER;
TCHAR szUserLangName [64];
nLen = GetSystemDirectory( NULL, 0 );
nLenOfSysDirPath = nLen + NUM_TCHARS_NEEDED_FOR_BACKSLASH;
lpszSysDir = (LPTSTR) LocalAlloc( LPTR, nLenOfSysDirPath *
sizeof( TCHAR ) );
GetSystemDirectory( lpszSysDir, nLen );
if ( lstrcmp( (LPCTSTR) lpszSysDir[ lstrlen( lpszSysDir ) ], (LPCTSTR)
BACKSLASH ) )
lstrcat( lpszSysDir, (LPCTSTR) BACKSLASH );
lstrcpy( lpszSysFile, (LPCTSTR) lpszSysDir );
lstrcat( lpszSysFile, (LPCTSTR) TEXT("USER.EXE"));
dwSize = GetFileVersionInfoSize(lpszSysFile,&dwUseless);
if (dwSize)
{
lpVersionData = LocalAlloc(LPTR,(UINT)dwSize);
if (GetFileVersionInfo(lpszSysFile,dwUseless,dwSize,lpVersionData))
{
if(VerQueryValue(lpVersionData,TEXT("\\VarFileInfo\\Translation"),
(VOID**)&lpdwTrans, &cbTrans))
{
lcidUSER = LOWORD(lpdwTrans[0]);
}
} // end we got version data
LocalFree((HLOCAL)lpVersionData);
}
VerLanguageName (lcidUSER,szUserLangName,sizeof(szUserLangName));
This information is pertinent to Windows 95, Windows 98 and Windows NT 4.0
Service Pack 4 and later versions.
Keywords: kbinfo kbaacc KB196787