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