home *** CD-ROM | disk | FTP | other *** search
/ Beginning C++ Through Gam…rogramming (2nd Edition) / BCGP2E.ISO / bloodshed / devcpp-4.9.9.2_setup.exe / wtypes.h < prev    next >
C/C++ Source or Header  |  2005-01-29  |  4KB  |  171 lines

  1. #include <rpc.h>
  2. #include <rpcndr.h>
  3.  
  4. #ifndef _WTYPES_H
  5. #define _WTYPES_H
  6. #if __GNUC__ >=3
  7. #pragma GCC system_header
  8. #endif
  9.  
  10. #ifdef __cplusplus
  11. extern "C" {
  12. #endif
  13.  
  14. #define IID_NULL GUID_NULL
  15. #define CLSID_NULL GUID_NULL
  16. #define CBPCLIPDATA(d) ((d).cbSize-sizeof((d).ulClipFmt))
  17. #define DECIMAL_NEG ((BYTE)0x80)
  18. #ifdef NONAMELESSUNION
  19. #define DECIMAL_SETZERO(d) {(d).DUMMYUNIONNAME2.Lo64=(d).Hi32=(d).DUMMYUNIONNAME.signscale=0;}
  20. #else
  21. #define DECIMAL_SETZERO(d) {(d).Lo64=(d).Hi32=(d).signscale=0;}
  22. #endif
  23. #define ROTFLAGS_REGISTRATIONKEEPSALIVE    0x01
  24. #define ROTFLAGS_ALLOWANYCLIENT        0x02
  25.  
  26. #ifndef __BLOB_T_DEFINED /* also in winsock2.h */
  27. #define __BLOB_T_DEFINED
  28. typedef struct _BLOB {
  29.     ULONG    cbSize;
  30.     BYTE    *pBlobData;
  31. } BLOB,*PBLOB,*LPBLOB;
  32. #endif
  33. typedef enum tagDVASPECT {
  34.     DVASPECT_CONTENT=1,
  35.     DVASPECT_THUMBNAIL=2,
  36.     DVASPECT_ICON=4,
  37.     DVASPECT_DOCPRINT=8
  38. } DVASPECT;
  39. typedef enum tagDVASPECT2 {
  40.     DVASPECT_OPAQUE=16,
  41.     DVASPECT_TRANSPARENT=32
  42. } DVASPECT2;
  43. typedef enum tagSTATFLAG {
  44.     STATFLAG_DEFAULT=0,
  45.     STATFLAG_NONAME=1
  46. } STATFLAG;
  47. typedef enum tagMEMCTX {
  48.     MEMCTX_LOCAL=0,
  49.     MEMCTX_TASK,
  50.     MEMCTX_SHARED,
  51.     MEMCTX_MACSYSTEM,
  52.     MEMCTX_UNKNOWN=-1,
  53.     MEMCTX_SAME=-2
  54. } MEMCTX;
  55. typedef enum tagMSHCTX {
  56.     MSHCTX_LOCAL=0,
  57.     MSHCTX_NOSHAREDMEM,
  58.     MSHCTX_DIFFERENTMACHINE,
  59.     MSHCTX_INPROC,
  60.     MSHCTX_CROSSCTX
  61. } MSHCTX;
  62. typedef enum tagCLSCTX {
  63.     CLSCTX_INPROC_SERVER=1,CLSCTX_INPROC_HANDLER=2,CLSCTX_LOCAL_SERVER=4,
  64.     CLSCTX_INPROC_SERVER16=8,CLSCTX_REMOTE_SERVER=16
  65. } CLSCTX;
  66. typedef enum tagMSHLFLAGS {
  67.     MSHLFLAGS_NORMAL,MSHLFLAGS_TABLESTRONG,MSHLFLAGS_TABLEWEAK
  68. } MSHLFLAGS;
  69. typedef struct _FLAGGED_WORD_BLOB {
  70.     unsigned long fFlags;
  71.     unsigned long clSize;
  72.     unsigned short asData[1];
  73. }FLAGGED_WORD_BLOB;
  74.  
  75. #ifndef OLE2ANSI
  76. typedef WCHAR OLECHAR;
  77. typedef LPWSTR LPOLESTR;
  78. typedef LPCWSTR LPCOLESTR;
  79. #define OLESTR(s) L##s
  80. #else
  81. typedef char OLECHAR;
  82. typedef LPSTR LPOLESTR;
  83. typedef LPCSTR LPCOLESTR;
  84. #define OLESTR(s) s
  85. #endif
  86. typedef unsigned short VARTYPE;
  87. typedef short VARIANT_BOOL;
  88. typedef VARIANT_BOOL _VARIANT_BOOL;
  89. #define VARIANT_TRUE ((VARIANT_BOOL)0xffff)
  90. #define VARIANT_FALSE ((VARIANT_BOOL)0)
  91. typedef OLECHAR *BSTR;
  92. typedef FLAGGED_WORD_BLOB *wireBSTR;
  93. typedef BSTR *LPBSTR;
  94. typedef LONG SCODE;
  95. typedef void *HCONTEXT;
  96. typedef union tagCY {
  97.     _ANONYMOUS_STRUCT struct {
  98.         unsigned long Lo;
  99.         long Hi;
  100.     }_STRUCT_NAME(s);
  101.     LONGLONG int64;
  102. } CY;
  103. typedef double DATE;
  104. typedef struct  tagBSTRBLOB {
  105.     ULONG cbSize;
  106.     PBYTE pData;
  107. }BSTRBLOB;
  108. typedef struct tagBSTRBLOB *LPBSTRBLOB;
  109. typedef struct tagCLIPDATA {
  110.     ULONG cbSize;
  111.     long ulClipFmt;
  112.     PBYTE pClipData;
  113. }CLIPDATA;
  114. typedef enum tagSTGC {
  115.     STGC_DEFAULT,STGC_OVERWRITE,STGC_ONLYIFCURRENT,
  116.     STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE
  117. }STGC;
  118. typedef enum tagSTGMOVE {
  119.     STGMOVE_MOVE,STGMOVE_COPY,STGMOVE_SHALLOWCOPY
  120. }STGMOVE;
  121. enum VARENUM {
  122.     VT_EMPTY,VT_NULL,VT_I2,VT_I4,VT_R4,VT_R8,VT_CY,VT_DATE,VT_BSTR,VT_DISPATCH,
  123.     VT_ERROR,VT_BOOL,VT_VARIANT,VT_UNKNOWN,VT_DECIMAL,VT_I1=16,VT_UI1,VT_UI2,VT_UI4,VT_I8,
  124.     VT_UI8,VT_INT,VT_UINT,VT_VOID,VT_HRESULT,VT_PTR,VT_SAFEARRAY,VT_CARRAY,VT_USERDEFINED,
  125.     VT_LPSTR,VT_LPWSTR,VT_RECORD=36,VT_INT_PTR=37,VT_UINT_PTR=38,VT_FILETIME=64,VT_BLOB,VT_STREAM,VT_STORAGE,VT_STREAMED_OBJECT,
  126.     VT_STORED_OBJECT,VT_BLOB_OBJECT,VT_CF,VT_CLSID,VT_BSTR_BLOB=0xfff,VT_VECTOR=0x1000,
  127.     VT_ARRAY=0x2000,VT_BYREF=0x4000,VT_RESERVED=0x8000,VT_ILLEGAL= 0xffff,VT_ILLEGALMASKED=0xfff,
  128.     VT_TYPEMASK=0xfff
  129. };
  130.  
  131. typedef struct _BYTE_SIZEDARR {
  132.     unsigned long clSize;
  133.     byte *pData;
  134. }BYTE_SIZEDARR;
  135. typedef struct _SHORT_SIZEDARR {
  136.     unsigned long clSize;
  137.     unsigned short *pData;
  138. }WORD_SIZEDARR;
  139. typedef struct _LONG_SIZEDARR {
  140.     unsigned long clSize;
  141.     unsigned long *pData;
  142. }DWORD_SIZEDARR;
  143. typedef struct _HYPER_SIZEDARR {
  144.     unsigned long clSize;
  145.     hyper *pData;
  146. }HYPER_SIZEDARR;
  147. typedef double DOUBLE;
  148. typedef struct tagDEC {
  149.     USHORT wReserved;
  150.     _ANONYMOUS_UNION union {
  151.         _ANONYMOUS_STRUCT struct {
  152.             BYTE scale;
  153.             BYTE sign;
  154.         }_STRUCT_NAME(s);
  155.         USHORT signscale;
  156.     } DUMMYUNIONNAME;
  157.     ULONG Hi32;
  158.     _ANONYMOUS_UNION union {
  159.         _ANONYMOUS_STRUCT struct {
  160.             ULONG Lo32;
  161.             ULONG Mid32;
  162.         }_STRUCT_NAME(s2);
  163.         ULONGLONG Lo64;
  164.     } DUMMYUNIONNAME2;
  165. } DECIMAL;
  166. typedef void *HMETAFILEPICT;
  167. #ifdef __cplusplus
  168. }
  169. #endif
  170. #endif
  171.