home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1997 May / Pcwk0597.iso / borland / cb / setup / cbuilder / data.z / WINDEF.H < prev    next >
C/C++ Source or Header  |  1997-02-28  |  8KB  |  329 lines

  1. /****************************************************************************
  2. *                                                                           *
  3. * windef.h -- Basic Windows Type Definitions                                *
  4. *                                                                           *
  5. * Copyright (c) 1985-1995, Microsoft Corp. All rights reserved.             *
  6. *                                                                           *
  7. ****************************************************************************/
  8.  
  9.  
  10. #ifndef _WINDEF_
  11. #define _WINDEF_
  12. #pragma option -b
  13.  
  14.  
  15. #ifdef __cplusplus
  16. extern "C" {
  17. #endif
  18.  
  19. #ifndef WINVER
  20. #define WINVER 0x0400
  21. #endif
  22.  
  23.  
  24. /*
  25.  * BASETYPES is defined in ntdef.h if these types are already defined
  26.  */
  27.  
  28. #ifndef BASETYPES
  29. #define BASETYPES
  30. typedef unsigned long ULONG;
  31. typedef ULONG *PULONG;
  32. typedef unsigned short USHORT;
  33. typedef USHORT *PUSHORT;
  34. typedef unsigned char UCHAR;
  35. typedef UCHAR *PUCHAR;
  36. typedef char *PSZ;
  37. #endif  /* !BASETYPES */
  38.  
  39. #define MAX_PATH          260
  40.  
  41. #ifndef NULL
  42. #if defined(__cplusplus) || defined(_Windows)
  43. #define NULL    0
  44. #else
  45. #define NULL    ((void *)0)
  46. #endif
  47. #endif
  48.  
  49. #ifndef FALSE
  50. #define FALSE               0
  51. #endif
  52.  
  53. #ifndef TRUE
  54. #define TRUE                1
  55. #endif
  56.  
  57. #ifndef IN
  58. #define IN
  59. #endif
  60.  
  61. #ifndef OUT
  62. #define OUT
  63. #endif
  64.  
  65. #ifndef OPTIONAL
  66. #define OPTIONAL
  67. #endif
  68.  
  69. #undef far
  70. #undef near
  71. #undef pascal
  72.  
  73. #if defined(__BORLANDC__)
  74. #define _STDCALL_SUPPORTED
  75. #define _PUSHPOP_SUPPORTED
  76. #if (__BORLANDC__ < 0x500)
  77. #define _M_IX86 300
  78. #ifndef _WIN32
  79. #define _WIN32
  80. #endif
  81. #ifndef __cplusplus
  82. #if !defined(_WCHAR_T) && !defined(_WCHAR_T_DEFINED)
  83. #define _WCHAR_T
  84. #define _WCHAR_T_DEFINED  /* For WINDOWS.H */
  85. typedef unsigned short wchar_t;
  86. #endif
  87. #endif
  88. #endif
  89. #endif
  90.  
  91. #define far
  92. #define near
  93. #if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) || defined(__BORLANDC__)
  94. #define pascal __stdcall
  95. #else
  96. #define pascal
  97. #endif
  98.  
  99. #if defined(DOSWIN32) || defined(__BORLANDC__)
  100. #define cdecl _cdecl
  101. #ifndef CDECL
  102. #define CDECL _cdecl
  103. #endif
  104. #else
  105. #define cdecl
  106. #ifndef CDECL
  107. #define CDECL
  108. #endif
  109. #endif
  110.  
  111. #if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) || defined(__BORLANDC__)
  112. #define CALLBACK    __stdcall
  113. #define WINAPI      __stdcall
  114. #define WINAPIV     __cdecl
  115. #define APIENTRY    WINAPI
  116. #define APIPRIVATE  __stdcall
  117. #define PASCAL      __stdcall
  118. #else
  119. #define CALLBACK
  120. #define WINAPI
  121. #define WINAPIV
  122. #define APIENTRY    WINAPI
  123. #define APIPRIVATE
  124. #define PASCAL      pascal
  125. #endif
  126.  
  127. #define FAR                 far
  128. #define NEAR                near
  129. #ifndef CONST
  130. #define CONST               const
  131. #endif
  132.  
  133. typedef unsigned long       DWORD;
  134. typedef int                 BOOL;
  135. typedef unsigned char       BYTE;
  136. typedef unsigned short      WORD;
  137. typedef float               FLOAT;
  138. typedef FLOAT               *PFLOAT;
  139. typedef BOOL near           *PBOOL;
  140. typedef BOOL far            *LPBOOL;
  141. typedef BYTE near           *PBYTE;
  142. typedef BYTE far            *LPBYTE;
  143. typedef int near            *PINT;
  144. typedef int far             *LPINT;
  145. typedef WORD near           *PWORD;
  146. typedef WORD far            *LPWORD;
  147. typedef long far            *LPLONG;
  148. typedef DWORD near          *PDWORD;
  149. typedef DWORD far           *LPDWORD;
  150. typedef void far            *LPVOID;
  151. typedef CONST void far      *LPCVOID;
  152.  
  153. typedef int                 INT;
  154. typedef unsigned int        UINT;
  155. typedef unsigned int        *PUINT;
  156.  
  157. #ifndef NT_INCLUDED
  158. #pragma option -b.
  159. #include <winnt.h>
  160. #pragma option -b
  161. #endif /* NT_INCLUDED */
  162.  
  163. /* Types use for passing & returning polymorphic values */
  164. typedef UINT WPARAM;
  165. typedef LONG LPARAM;
  166. typedef LONG LRESULT;
  167.  
  168. #if !defined(NOMINMAX) && !defined(__cplusplus)
  169.  
  170. #ifndef max
  171. #define max(a,b)            (((a) > (b)) ? (a) : (b))
  172. #endif
  173.  
  174. #ifndef min
  175. #define min(a,b)            (((a) < (b)) ? (a) : (b))
  176. #endif
  177.  
  178. #endif  /* NOMINMAX && !__cplusplus */
  179.  
  180. #define MAKEWORD(a, b)      ((WORD)(((BYTE)(a)) | (((WORD)((BYTE)(b))) << 8)))
  181. #define MAKELONG(a, b)      ((LONG)(((WORD)(a)) | (((DWORD)((WORD)(b))) << 16)))
  182. #define LOWORD(l)           ((WORD)(l))
  183. #define HIWORD(l)           ((WORD)(((DWORD)(l) >> 16) & 0xFFFF))
  184. #define LOBYTE(w)           ((BYTE)(w))
  185. #define HIBYTE(w)           ((BYTE)(((WORD)(w) >> 8) & 0xFF))
  186.  
  187.  
  188. #ifndef WIN_INTERNAL
  189. DECLARE_HANDLE            (HWND);
  190. DECLARE_HANDLE            (HHOOK);
  191. #endif
  192.  
  193. typedef WORD                ATOM;
  194.  
  195. typedef HANDLE NEAR         *SPHANDLE;
  196. typedef HANDLE FAR          *LPHANDLE;
  197. typedef HANDLE              HGLOBAL;
  198. typedef HANDLE              HLOCAL;
  199. typedef HANDLE              GLOBALHANDLE;
  200. typedef HANDLE              LOCALHANDLE;
  201. typedef int (FAR WINAPI *FARPROC)();
  202. typedef int (NEAR WINAPI *NEARPROC)();
  203. typedef int (WINAPI *PROC)();
  204.  
  205. #ifdef STRICT
  206. typedef void NEAR* HGDIOBJ;
  207. #else
  208. DECLARE_HANDLE(HGDIOBJ);
  209. #endif
  210.  
  211. DECLARE_HANDLE(HACCEL);
  212. DECLARE_HANDLE(HBITMAP);
  213. DECLARE_HANDLE(HBRUSH);
  214. #if(WINVER >= 0x0400)
  215. DECLARE_HANDLE(HCOLORSPACE);
  216. #endif /* WINVER >= 0x0400 */
  217. DECLARE_HANDLE(HDC);
  218. DECLARE_HANDLE(HGLRC);          // OpenGL
  219. DECLARE_HANDLE(HDESK);
  220. DECLARE_HANDLE(HENHMETAFILE);
  221. DECLARE_HANDLE(HFONT);
  222. DECLARE_HANDLE(HICON);
  223. DECLARE_HANDLE(HMENU);
  224. DECLARE_HANDLE(HMETAFILE);
  225. DECLARE_HANDLE(HINSTANCE);
  226. typedef HINSTANCE HMODULE;      /* HMODULEs can be used in place of HINSTANCEs */
  227. DECLARE_HANDLE(HPALETTE);
  228. DECLARE_HANDLE(HPEN);
  229. DECLARE_HANDLE(HRGN);
  230. DECLARE_HANDLE(HRSRC);
  231. DECLARE_HANDLE(HSTR);
  232. DECLARE_HANDLE(HTASK);
  233. DECLARE_HANDLE(HWINSTA);
  234. DECLARE_HANDLE(HKL);
  235.  
  236. typedef int HFILE;
  237. typedef HICON HCURSOR;      /* HICONs & HCURSORs are polymorphic */
  238.  
  239. typedef DWORD   COLORREF;
  240. typedef DWORD   *LPCOLORREF;
  241.  
  242. #define HFILE_ERROR ((HFILE)-1)
  243.  
  244. typedef struct tagRECT
  245. {
  246.     LONG    left;
  247.     LONG    top;
  248.     LONG    right;
  249.     LONG    bottom;
  250. } RECT, *PRECT, NEAR *NPRECT, FAR *LPRECT;
  251.  
  252. typedef const RECT FAR* LPCRECT;
  253.  
  254. typedef struct _RECTL       /* rcl */
  255. {
  256.     LONG    left;
  257.     LONG    top;
  258.     LONG    right;
  259.     LONG    bottom;
  260. } RECTL, *PRECTL, *LPRECTL;
  261.  
  262. typedef const RECTL FAR* LPCRECTL;
  263.  
  264. typedef struct tagPOINT
  265. {
  266.     LONG  x;
  267.     LONG  y;
  268. } POINT, *PPOINT, NEAR *NPPOINT, FAR *LPPOINT;
  269.  
  270. typedef struct _POINTL      /* ptl  */
  271. {
  272.     LONG  x;
  273.     LONG  y;
  274. } POINTL, *PPOINTL;
  275.  
  276. typedef struct tagSIZE
  277. {
  278.     LONG        cx;
  279.     LONG        cy;
  280. } SIZE, *PSIZE, *LPSIZE;
  281.  
  282. typedef SIZE               SIZEL;
  283. typedef SIZE               *PSIZEL, *LPSIZEL;
  284.  
  285. typedef struct tagPOINTS
  286. {
  287.     SHORT   x;
  288.     SHORT   y;
  289. } POINTS, *PPOINTS, *LPPOINTS;
  290.  
  291. /* mode selections for the device mode function */
  292. #define DM_UPDATE           1
  293. #define DM_COPY             2
  294. #define DM_PROMPT           4
  295. #define DM_MODIFY           8
  296.  
  297. #define DM_IN_BUFFER        DM_MODIFY
  298. #define DM_IN_PROMPT        DM_PROMPT
  299. #define DM_OUT_BUFFER       DM_COPY
  300. #define DM_OUT_DEFAULT      DM_UPDATE
  301.  
  302. /* device capabilities indices */
  303. #define DC_FIELDS           1
  304. #define DC_PAPERS           2
  305. #define DC_PAPERSIZE        3
  306. #define DC_MINEXTENT        4
  307. #define DC_MAXEXTENT        5
  308. #define DC_BINS             6
  309. #define DC_DUPLEX           7
  310. #define DC_SIZE             8
  311. #define DC_EXTRA            9
  312. #define DC_VERSION          10
  313. #define DC_DRIVER           11
  314. #define DC_BINNAMES         12
  315. #define DC_ENUMRESOLUTIONS  13
  316. #define DC_FILEDEPENDENCIES 14
  317. #define DC_TRUETYPE         15
  318. #define DC_PAPERNAMES       16
  319. #define DC_ORIENTATION      17
  320. #define DC_COPIES           18
  321.  
  322. #ifdef __cplusplus
  323. }
  324. #endif
  325.  
  326.  
  327. #pragma option -b.
  328. #endif /* _WINDEF_ */
  329.