hxwinver.h
上传用户:zhongxx05
上传日期:2007-06-06
资源大小:33641k
文件大小:6k
源码类别:

Symbian

开发平台:

C/C++

  1. /* ***** BEGIN LICENSE BLOCK ***** 
  2.  * Version: RCSL 1.0/RPSL 1.0 
  3.  *  
  4.  * Portions Copyright (c) 1995-2002 RealNetworks, Inc. All Rights Reserved. 
  5.  *      
  6.  * The contents of this file, and the files included with this file, are 
  7.  * subject to the current version of the RealNetworks Public Source License 
  8.  * Version 1.0 (the "RPSL") available at 
  9.  * http://www.helixcommunity.org/content/rpsl unless you have licensed 
  10.  * the file under the RealNetworks Community Source License Version 1.0 
  11.  * (the "RCSL") available at http://www.helixcommunity.org/content/rcsl, 
  12.  * in which case the RCSL will apply. You may also obtain the license terms 
  13.  * directly from RealNetworks.  You may not use this file except in 
  14.  * compliance with the RPSL or, if you have a valid RCSL with RealNetworks 
  15.  * applicable to this file, the RCSL.  Please see the applicable RPSL or 
  16.  * RCSL for the rights, obligations and limitations governing use of the 
  17.  * contents of the file.  
  18.  *  
  19.  * This file is part of the Helix DNA Technology. RealNetworks is the 
  20.  * developer of the Original Code and owns the copyrights in the portions 
  21.  * it created. 
  22.  *  
  23.  * This file, and the files included with this file, is distributed and made 
  24.  * available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 
  25.  * EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, 
  26.  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS 
  27.  * FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 
  28.  * 
  29.  * Technology Compatibility Kit Test Suite(s) Location: 
  30.  *    http://www.helixcommunity.org/content/tck 
  31.  * 
  32.  * Contributor(s): 
  33.  *  
  34.  * ***** END LICENSE BLOCK ***** */ 
  35. #include "hxtypes.h"
  36. typedef struct _HXVERSIONINFO
  37. {
  38. UINT16 wMajorVersion; // Operating System information
  39. UINT16 wMinorVersion; // Operating System information
  40. UINT16 wReleaseVersion; // Operating System information release value.
  41. ULONG32 dwPlatformId; // Operating System information
  42.     ULONG32 dwMachineType; // Hardware information
  43.     BOOL bFPUAvailable; // Hardware information
  44. } HXVERSIONINFO;
  45. // Add new platform IDs here (as they occur) these are defined as a bitfield
  46. // In case we need to determine subplatforms later (win16 & WfW for instance
  47. // though that's not done in this incantation).
  48. #define HX_PLATFORM_WIN16 0x00000001
  49. #define HX_PLATFORM_WIN32S 0x00000002
  50. #define HX_PLATFORM_WIN95 0x00000004
  51. #define HX_PLATFORM_WINNT 0x00000008
  52. #define HX_PLATFORM_MACOT 0x00000010
  53. #define HX_PLATFORM_MACTCP 0x00000020
  54. #define HX_PLATFORM_LINUX 0x00000040
  55. #define HX_PLATFORM_SOLARIS 0x00000080
  56. #define HX_PLATFORM_IRIX 0x00000100
  57. #define HX_PLATFORM_SUNOS 0x00000200
  58. #define HX_PLATFORM_WIN98 0x00000400
  59. #define HX_PLATFORM_QNXNTO 0x00000800
  60. #define HX_PLATFORM_SYMBIAN 0x00001000
  61. #define HX_PLATFORM_OPENWAVE 0x00002000
  62. #define HX_PLATFORM_UNKNOWN 0xFFFFFFFF
  63. // Old defines used by some windows specific code.
  64. #define HX_WINVER_16BIT HX_PLATFORM_WIN16
  65. #define HX_WINVER_32BIT_S HX_PLATFORM_WIN32S
  66. #define HX_WINVER_32BIT_NT HX_PLATFORM_WINNT
  67. #define HX_WINVER_32BIT_95 HX_PLATFORM_WIN95
  68. // Add new machine IDs here (as they occur) these too are defined as a bitfield
  69. #define HX_MACHINE_486 0x00000001 // 486 or better
  70. #define HX_MACHINE_586 0x00000002 // Pentium or better
  71. #define HX_MACHINE_686 0x00000004 // PentiumPro or better
  72. #define HX_MACHINE_PPC 0x00000008 // PowerPC
  73. #define HX_MACHINE_68K 0x00000010
  74. #define HX_MACHINE_ALPHA 0x00000020
  75. #define HX_MACHINE_MIPS 0x00000040
  76. #define HX_MACHINE_SPARC 0x00000080
  77. #define HX_MACHINE_ARM                  0x00000100
  78. #define HX_MACHINE_SYMEMULATOR          0x00000200
  79. #define HX_MACHINE_OWEMULATOR           0x00000400
  80. #define HX_MACHINE_TOOSLOW 0xFFFFFFFE // Anything that sucks. 286, 386, etc.
  81. #define HX_MACHINE_UNKNOWN 0xFFFFFFFF
  82. /*
  83.  ** ULONG32 HXGetWinVer( HXVERSIONINFO *pVersionInfo )
  84.  *
  85.  *  PARAMETERS:
  86.  * pVersionInfo : A pointer to the version info struct to receive the
  87.  * results.  (Can be NULL, in which case our only side
  88.  * effect is our return value).
  89.  *
  90.  *  DESCRIPTION:
  91.  * Gets information on the platform, version, and hardware we are running on.
  92.  *
  93.  *  RETURNS:
  94.  * A flag indicating the platform we are running on.
  95.  */
  96. ULONG32 HXGetWinVer( HXVERSIONINFO* pVersionInfo );
  97. /*
  98.  * const char* HXGetVerEncodedName( HXVERSIONINFO* pVersionInfo,
  99.  * const char* pProductName, const char* pProductVer,
  100.  * const char* pLanguage, const char* pDistCode)
  101.  *
  102.  *  PARAMETERS:
  103.  * pVersionInfo : A pointer to the version info struct to receive the
  104.  * results.
  105.  *
  106.  * pProductName : A pointer to the name of the product like play16 for
  107.  * the 16bit compiled player or plug32 for the 32bit
  108.  * compiled plugin.
  109.  *
  110.  * pProductVer : A pointer to the string form of the version of the
  111.  * product like 2.0b3.
  112.  *
  113.  * pLanguage : A pointer to the string form of the language code
  114.  * of the product like EN.
  115.  *
  116.  * pDistCode  : A pointer to the string form of the version of the
  117.  * distribution code like PN01 for the player.
  118.  *
  119.  *  DESCRIPTION:
  120.  * Returns a standard formatted encoded platform string.
  121.  *
  122.  *  RETURNS:
  123.  * pointer to temporary buffer containing the encoded string.
  124.  */
  125. const char* HXGetVerEncodedName
  126. (
  127. HXVERSIONINFO* pVersionInfo,
  128. const char* pProductName,
  129. const char* pProductVer,
  130. const char* pLanguage,
  131. const char* pDistCode
  132. );
  133. // convert the OS id into a string. "Linux", "WinNT", etc...
  134. const char* HXGetOSName(ULONG32 nPlatformID);
  135. // convert the Machine id into a string. "586", etc...
  136. const char* HXGetMachName(ULONG32 nMachineType);
  137. ///////////////////////////////////////////////////////////////////////
  138. //
  139. // FUNCTION:
  140. //
  141. // HXExtractDistributionCode()
  142. //
  143. // Description:
  144. //
  145. // Extracts the distribution code resource from the version
  146. // information of the module.
  147. //
  148. //
  149. BOOL HXExtractDistributionCode(char* pDistBuffer, UINT32 ulDistBufferLen, void* hMod);
  150. #define MAX_ENCODED_NAME 128