INFO: How the Accessibility RDK Determines the System Language.

ID: Q196787


The information in this article applies to:
  • Microsoft Win32 Software Development Kit (SDK)
    on the following platforms: NT, Win95, Win98


SUMMARY

The Active Accessibility Redistribution Kit (RDK) determines the language of the system by extracting it from the version information in User.exe.


MORE INFORMATION

The RDK compares the primary language ID [using the macro PRIMARYLANGID(lcid)] for the RDK (derived from Oleaccrc.dll) to the primary language ID for User.exe.

Below is a code snippet to extract the language information:


   #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.


REFERENCES

MSAA

Additional query words:

Keywords : kbAAcc kbNTOS kbSDKPlatform kbWinOS
Version : WINDOWS:
Platform : WINDOWS
Issue type : kbinfo


Last Reviewed: January 10, 2000
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.