home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Internet 2000 May / MICD_2000_05.iso / CBuilder5 / INSTALL / DATA1.CAB / Program_Built_Files / Include / windef.h < prev    next >
C/C++ Source or Header  |  2000-02-01  |  9KB  |  385 lines

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