hxwinver.h
上传用户:dangjiwu
上传日期:2013-07-19
资源大小:42019k
文件大小:7k
源码类别:

Symbian

开发平台:

Visual C++

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