pnbastsd.h
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:3k
源码类别:

多媒体编程

开发平台:

Visual C++

  1. /****************************************************************************
  2.  * 
  3.  *  $Id: pnbastsd.h,v 1.1 2003/05/30 02:17:36 gabest Exp $
  4.  * 
  5.  *  Copyright (C) 1995-1999 RealNetworks, Inc. All rights reserved.
  6.  *  
  7.  *  http://www.real.com/devzone
  8.  *
  9.  *  This file is a replacement for the basetsd.h file from VC++ 6.0.
  10.  *  This will automatically be included by pntypes.h when using VC++
  11.  *  6.0 or greater. This file correctly defines the basic sized types
  12.  *  so they don't conflict with the G2 SDK.
  13.  *
  14.  */
  15. #if !(defined(_MSC_VER) && (_MSC_VER > 1100))
  16. #error pnbastsd.h is only intended for use with Microsoft VC++ 6.0 or higher
  17. #endif
  18. #ifndef _BASETSD_H_
  19. #define _BASETSD_H_
  20. #ifdef __cplusplus
  21. extern "C" {
  22. #endif
  23. /*
  24.  * The following types were defined in pntypes.h and so are intentionally
  25.  * not included in this file. They are left here for documentation purposes.
  26.  */
  27. #if 0
  28. typedef int LONG32;
  29. typedef int INT32;
  30. typedef unsigned int ULONG32;
  31. typedef unsigned int UINT32;
  32. #endif
  33. /*
  34.  * The following types are 32 bits wide and unsigned.
  35.  */
  36. typedef unsigned int *PULONG32;
  37. typedef unsigned int DWORD32, *PDWORD32;
  38. typedef unsigned int *PUINT32;
  39. /*
  40.  * INT_PTR is the same size as a pointer.  Its size changes with pointer 
  41.  * size (32 bit or 64 bit).  HALF_PTR is half the size of a pointer.
  42.  */
  43. #ifdef _WIN64
  44. typedef __int64 INT_PTR, *PINT_PTR;
  45. typedef unsigned __int64 UINT_PTR, *PUINT_PTR;
  46. #define MAXINT_PTR (0x7fffffffffffffffI64)
  47. #define MININT_PTR (0x8000000000000000I64)
  48. #define MAXUINT_PTR (0xffffffffffffffffUI64)
  49. typedef unsigned int UHALF_PTR, *PUHALF_PTR;
  50. typedef int HALF_PTR, *PHALF_PTR;
  51. #define MAXUHALF_PTR (0xffffffffUL)
  52. #define MAXHALF_PTR (0x7fffffffL)
  53. #define MINHALF_PTR (0x80000000L)
  54. #pragma warning(disable:4311)   /* type cast truncation */
  55. #if !defined(__midl)
  56. __inline
  57. unsigned long
  58. HandleToUlong(
  59.     void *h
  60.     )
  61. {
  62.     return((unsigned long) h );
  63. }
  64. __inline
  65. unsigned long
  66. PtrToUlong(
  67.     void  *p
  68.     )
  69. {
  70.     return((unsigned long) p );
  71. }
  72. __inline
  73. unsigned short
  74. PtrToUshort(
  75.     void  *p
  76.     )
  77. {
  78.     return((unsigned short) p );
  79. }
  80. __inline
  81. long
  82. PtrToLong(
  83.     void  *p
  84.     )
  85. {
  86.     return((long) p );
  87. }
  88. __inline
  89. short
  90. PtrToShort(
  91.     void  *p
  92.     )
  93. {
  94.     return((short) p );
  95. }
  96. #endif
  97. #pragma warning(3:4311)   /* type cast truncation */
  98. #else
  99. typedef long INT_PTR, *PINT_PTR;
  100. typedef unsigned long UINT_PTR, *PUINT_PTR;
  101. #define MAXINT_PTR (0x7fffffffL)
  102. #define MININT_PTR (0x80000000L)
  103. #define MAXUINT_PTR (0xffffffffUL)
  104. typedef unsigned short UHALF_PTR, *PUHALF_PTR;
  105. typedef short HALF_PTR, *PHALF_PTR;
  106. #define MAXUHALF_PTR 0xffff
  107. #define MAXHALF_PTR 0x7fff
  108. #define MINHALF_PTR 0x8000
  109. #define HandleToUlong( h ) ((ULONG) (h) )
  110. #define PtrToUlong( p ) ((ULONG) (p) )
  111. #define PtrToLong( p ) ((LONG) (p) )
  112. #define PtrToUshort( p ) ((unsigned short) (p) )
  113. #define PtrToShort( p ) ((short) (p) )
  114. #endif
  115. /*
  116.  * Basic SIZE_T support.
  117.  */
  118. typedef UINT_PTR SIZE_T, *PSIZE_T;
  119. typedef INT_PTR SSIZE_T, *PSSIZE_T;
  120. /*
  121.  * These types are 64 bits wide and signed.
  122.  */
  123. typedef __int64 LONG64, *PLONG64;
  124. typedef __int64 INT64, *PINT64;
  125. /*
  126.  * These types are 64 bits wide and unsigned.
  127.  */
  128. typedef unsigned __int64 ULONG64, *PULONG64;
  129. typedef unsigned __int64 DWORD64, *PDWORD64;
  130. typedef unsigned __int64 UINT64, *PUINT64;
  131. #ifdef __cplusplus
  132. }
  133. #endif
  134. #endif /* _BASETSD_H_ */