00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef __WINE_WINDEF_H
00013 #define __WINE_WINDEF_H
00014
00015 #ifdef __WINE__
00016 # include "config.h"
00017 # undef UNICODE
00018 #endif
00019
00020 #ifdef _EGCS_
00021 #define __stdcall
00022 #endif
00023
00024 #ifdef __cplusplus
00025 extern "C" {
00026 #endif
00027
00028
00029
00030 #ifdef FALSE
00031 #undef FALSE
00032 #endif
00033 #define FALSE 0
00034
00035 #ifdef TRUE
00036 #undef TRUE
00037 #endif
00038 #define TRUE 1
00039
00040 #ifdef NULL
00041 #undef NULL
00042 #endif
00043 #define NULL 0
00044
00045
00046
00047
00048
00049 #ifdef __WINE__
00050 # define WINELIB_NAME_AW(func) \
00051 func##_must_be_suffixed_with_W_or_A_in_this_context \
00052 func##_must_be_suffixed_with_W_or_A_in_this_context
00053 #else
00054 # ifdef UNICODE
00055 # define WINELIB_NAME_AW(func) func##W
00056 # else
00057 # define WINELIB_NAME_AW(func) func##A
00058 # endif
00059 #endif
00060
00061 #ifdef __WINE__
00062 # define DECL_WINELIB_TYPE_AW(type)
00063 #else
00064 # define DECL_WINELIB_TYPE_AW(type) typedef WINELIB_NAME_AW(type) type;
00065 #endif
00066
00067 #ifndef NONAMELESSSTRUCT
00068 # if defined(__WINE__) || !defined(_FORCENAMELESSSTRUCT)
00069 # define NONAMELESSSTRUCT
00070 # endif
00071 #endif
00072
00073 #ifndef NONAMELESSUNION
00074 # if defined(__WINE__) || !defined(_FORCENAMELESSUNION) || !defined(__cplusplus)
00075 # define NONAMELESSUNION
00076 # endif
00077 #endif
00078
00079 #ifndef NONAMELESSSTRUCT
00080 #define DUMMYSTRUCTNAME
00081 #define DUMMYSTRUCTNAME1
00082 #define DUMMYSTRUCTNAME2
00083 #define DUMMYSTRUCTNAME3
00084 #define DUMMYSTRUCTNAME4
00085 #define DUMMYSTRUCTNAME5
00086 #else
00087 #define DUMMYSTRUCTNAME s
00088 #define DUMMYSTRUCTNAME1 s1
00089 #define DUMMYSTRUCTNAME2 s2
00090 #define DUMMYSTRUCTNAME3 s3
00091 #define DUMMYSTRUCTNAME4 s4
00092 #define DUMMYSTRUCTNAME5 s5
00093 #endif
00094
00095 #ifndef NONAMELESSUNION
00096 #define DUMMYUNIONNAME
00097 #define DUMMYUNIONNAME1
00098 #define DUMMYUNIONNAME2
00099 #define DUMMYUNIONNAME3
00100 #define DUMMYUNIONNAME4
00101 #define DUMMYUNIONNAME5
00102 #else
00103 #define DUMMYUNIONNAME u
00104 #define DUMMYUNIONNAME1 u1
00105 #define DUMMYUNIONNAME2 u2
00106 #define DUMMYUNIONNAME3 u3
00107 #define DUMMYUNIONNAME4 u4
00108 #define DUMMYUNIONNAME5 u5
00109 #endif
00110
00111
00112
00113 #ifdef __i386__
00114 # if defined(__GNUC__) && ((__GNUC__ > 2) || ((__GNUC__ == 2) && (__GNUC_MINOR__ >= 7)))
00115 # ifndef _EGCS_
00116 #define __stdcall __attribute__((__stdcall__))
00117 #define __cdecl __attribute__((__cdecl__))
00118 # define __RESTORE_ES __asm__ __volatile__("pushl %ds\n\tpopl %es")
00119 # endif
00120 # else
00121
00122 # endif
00123 #else
00124 # define __stdcall
00125 # define __cdecl
00126 # define __RESTORE_ES
00127 #endif
00128
00129 #define CALLBACK __stdcall
00130 #define WINAPI __stdcall
00131 #define APIPRIVATE __stdcall
00132 #define PASCAL __stdcall
00133 #define pascal __stdcall
00134 #define _pascal __stdcall
00135 #if !defined(__CYGWIN__) && !defined(__MINGW32__)
00136 #define _stdcall __stdcall
00137 #define _fastcall __stdcall
00138 #define __fastcall __stdcall
00139 #endif
00140 #define __export __stdcall
00141 #define CDECL __cdecl
00142 #define _CDECL __cdecl
00143 #define cdecl __cdecl
00144 #if !defined(__CYGWIN__) && !defined(__MINGW32__)
00145 #define _cdecl __cdecl
00146 #endif
00147 #define WINAPIV __cdecl
00148 #define APIENTRY WINAPI
00149
00150 #if !defined(__CYGWIN__) && !defined(__MINGW32__)
00151 #define __declspec(x)
00152 #endif
00153 #define dllimport
00154 #define dllexport
00155
00156 #define CONST const
00157
00158
00159
00160 typedef void VOID;
00161 typedef int INT;
00162 typedef unsigned int UINT;
00163 typedef unsigned short WORD;
00164 typedef unsigned long DWORD;
00165 typedef unsigned long ULONG;
00166 typedef unsigned char BYTE;
00167 typedef long LONG;
00168 typedef short SHORT;
00169 typedef unsigned short USHORT;
00170 typedef char CHAR;
00171 typedef unsigned char UCHAR;
00172
00173 typedef LONG SCODE;
00174
00175
00176 typedef unsigned short WCHAR;
00177 typedef int WIN_BOOL;
00178 typedef double DATE;
00179 typedef double DOUBLE;
00180 typedef long long LONGLONG;
00181 typedef unsigned long long ULONGLONG;
00182
00183
00184
00185
00186
00187
00188
00189
00190 #ifdef STRICT
00191 typedef VOID* HANDLE;
00192 #else
00193 typedef UINT HANDLE;
00194 #endif
00195
00196
00197 typedef HANDLE *LPHANDLE;
00198
00199
00200 typedef UINT WPARAM;
00201 typedef LONG LPARAM;
00202 typedef LONG HRESULT;
00203 typedef LONG LRESULT;
00204 typedef WORD ATOM;
00205 typedef WORD CATCHBUF[9];
00206 typedef WORD *LPCATCHBUF;
00207 typedef HANDLE HHOOK;
00208 typedef HANDLE HMONITOR;
00209 typedef DWORD LCID;
00210 typedef WORD LANGID;
00211 typedef DWORD LCTYPE;
00212 typedef float FLOAT;
00213
00214
00215
00216 typedef VOID *PVOID;
00217 typedef const void *PCVOID;
00218 typedef CHAR *PCHAR;
00219 typedef UCHAR *PUCHAR;
00220 typedef BYTE *PBYTE;
00221 typedef WORD *PWORD;
00222 typedef USHORT *PUSHORT;
00223 typedef SHORT *PSHORT;
00224 typedef ULONG *PULONG;
00225 typedef LONG *PLONG;
00226 typedef DWORD *PDWORD;
00227
00228 typedef CHAR *LPSTR;
00229 typedef CHAR *PSTR;
00230 typedef const CHAR *LPCSTR;
00231 typedef const CHAR *PCSTR;
00232 typedef WCHAR *LPWSTR;
00233 typedef WCHAR *PWSTR;
00234 typedef const WCHAR *LPCWSTR;
00235 typedef const WCHAR *PCWSTR;
00236 typedef BYTE *LPBYTE;
00237 typedef WORD *LPWORD;
00238 typedef DWORD *LPDWORD;
00239 typedef LONG *LPLONG;
00240 typedef VOID *LPVOID;
00241 typedef const VOID *LPCVOID;
00242 typedef INT *PINT;
00243 typedef INT *LPINT;
00244 typedef UINT *PUINT;
00245 typedef UINT *LPUINT;
00246 typedef FLOAT *PFLOAT;
00247 typedef FLOAT *LPFLOAT;
00248 typedef WIN_BOOL *PWIN_BOOL;
00249 typedef WIN_BOOL *LPWIN_BOOL;
00250
00251
00252
00253 #ifdef __WINE__
00254 typedef DWORD SEGPTR;
00255 #else
00256 typedef void* SEGPTR;
00257 #endif
00258
00259
00260
00261 #ifdef STRICT
00262 #define DECLARE_HANDLE(a) \
00263 typedef struct a##__ { int unused; } *a; \
00264 typedef a *P##a; \
00265 typedef a *LP##a
00266 #else
00267 #define DECLARE_HANDLE(a) \
00268 typedef HANDLE a; \
00269 typedef a *P##a; \
00270 typedef a *LP##a
00271 #endif
00272
00273 DECLARE_HANDLE(HACMDRIVERID);
00274 DECLARE_HANDLE(HACMDRIVER);
00275 DECLARE_HANDLE(HACMOBJ);
00276 DECLARE_HANDLE(HACMSTREAM);
00277 DECLARE_HANDLE(HMETAFILEPICT);
00278
00279 DECLARE_HANDLE(HACCEL);
00280 DECLARE_HANDLE(HBITMAP);
00281 DECLARE_HANDLE(HBRUSH);
00282 DECLARE_HANDLE(HCOLORSPACE);
00283 DECLARE_HANDLE(HCURSOR);
00284 DECLARE_HANDLE(HDC);
00285 DECLARE_HANDLE(HDROP);
00286 DECLARE_HANDLE(HDRVR);
00287 DECLARE_HANDLE(HDWP);
00288 DECLARE_HANDLE(HENHMETAFILE);
00289 DECLARE_HANDLE(HFILE);
00290 DECLARE_HANDLE(HFONT);
00291 DECLARE_HANDLE(HICON);
00292 DECLARE_HANDLE(HINSTANCE);
00293 DECLARE_HANDLE(HKEY);
00294 DECLARE_HANDLE(HMENU);
00295 DECLARE_HANDLE(HMETAFILE);
00296 DECLARE_HANDLE(HMIDI);
00297 DECLARE_HANDLE(HMIDIIN);
00298 DECLARE_HANDLE(HMIDIOUT);
00299 DECLARE_HANDLE(HMIDISTRM);
00300 DECLARE_HANDLE(HMIXER);
00301 DECLARE_HANDLE(HMIXEROBJ);
00302 DECLARE_HANDLE(HMMIO);
00303 DECLARE_HANDLE(HPALETTE);
00304 DECLARE_HANDLE(HPEN);
00305 DECLARE_HANDLE(HQUEUE);
00306 DECLARE_HANDLE(HRGN);
00307 DECLARE_HANDLE(HRSRC);
00308 DECLARE_HANDLE(HTASK);
00309 DECLARE_HANDLE(HWAVE);
00310 DECLARE_HANDLE(HWAVEIN);
00311 DECLARE_HANDLE(HWAVEOUT);
00312 DECLARE_HANDLE(HWINSTA);
00313 DECLARE_HANDLE(HDESK);
00314 DECLARE_HANDLE(HWND);
00315 DECLARE_HANDLE(HKL);
00316 DECLARE_HANDLE(HIC);
00317 DECLARE_HANDLE(HRASCONN);
00318
00319
00320
00321 typedef HINSTANCE HMODULE;
00322 typedef HANDLE HGDIOBJ;
00323 typedef HANDLE HGLOBAL;
00324 typedef HANDLE HLOCAL;
00325 typedef HANDLE GLOBALHANDLE;
00326 typedef HANDLE LOCALHANDLE;
00327
00328
00329
00330
00331 typedef WIN_BOOL CALLBACK (* DATEFMT_ENUMPROCA)(LPSTR);
00332 typedef WIN_BOOL CALLBACK (* DATEFMT_ENUMPROCW)(LPWSTR);
00333 DECL_WINELIB_TYPE_AW(DATEFMT_ENUMPROC)
00334 typedef WIN_BOOL CALLBACK (*DLGPROC)(HWND,UINT,WPARAM,LPARAM);
00335 typedef LRESULT CALLBACK (*DRIVERPROC)(DWORD,HDRVR,UINT,LPARAM,LPARAM);
00336 typedef INT CALLBACK (*EDITWORDBREAKPROCA)(LPSTR,INT,INT,INT);
00337 typedef INT CALLBACK (*EDITWORDBREAKPROCW)(LPWSTR,INT,INT,INT);
00338 DECL_WINELIB_TYPE_AW(EDITWORDBREAKPROC)
00339 typedef LRESULT CALLBACK (*FARPROC)();
00340 typedef INT CALLBACK (*PROC)();
00341 typedef WIN_BOOL CALLBACK (*GRAYSTRINGPROC)(HDC,LPARAM,INT);
00342 typedef LRESULT CALLBACK (*HOOKPROC)(INT,WPARAM,LPARAM);
00343 typedef WIN_BOOL CALLBACK (*PROPENUMPROCA)(HWND,LPCSTR,HANDLE);
00344 typedef WIN_BOOL CALLBACK (*PROPENUMPROCW)(HWND,LPCWSTR,HANDLE);
00345 DECL_WINELIB_TYPE_AW(PROPENUMPROC)
00346 typedef WIN_BOOL CALLBACK (*PROPENUMPROCEXA)(HWND,LPCSTR,HANDLE,LPARAM);
00347 typedef WIN_BOOL CALLBACK (*PROPENUMPROCEXW)(HWND,LPCWSTR,HANDLE,LPARAM);
00348 DECL_WINELIB_TYPE_AW(PROPENUMPROCEX)
00349 typedef WIN_BOOL CALLBACK (* TIMEFMT_ENUMPROCA)(LPSTR);
00350 typedef WIN_BOOL CALLBACK (* TIMEFMT_ENUMPROCW)(LPWSTR);
00351 DECL_WINELIB_TYPE_AW(TIMEFMT_ENUMPROC)
00352 typedef VOID CALLBACK (*TIMERPROC)(HWND,UINT,UINT,DWORD);
00353 typedef WIN_BOOL CALLBACK (*WNDENUMPROC)(HWND,LPARAM);
00354 typedef LRESULT CALLBACK (*WNDPROC)(HWND,UINT,WPARAM,LPARAM);
00355
00356
00357
00358
00359
00360
00361
00362
00363
00364
00365
00366 #ifndef __WINE_WINDEF16_H
00367 #define __WINE_WINDEF16_H
00368
00369 #include "windef.h"
00370
00371
00372
00373 typedef short INT16;
00374 typedef unsigned short UINT16;
00375 typedef unsigned short WIN_BOOL16;
00376
00377 typedef UINT16 HANDLE16;
00378 typedef HANDLE16 *LPHANDLE16;
00379
00380 typedef UINT16 WPARAM16;
00381 typedef INT16 *LPINT16;
00382 typedef UINT16 *LPUINT16;
00383
00384 #define DECLARE_HANDLE16(a) \
00385 typedef HANDLE16 a##16; \
00386 typedef a##16 *P##a##16; \
00387 typedef a##16 *NP##a##16; \
00388 typedef a##16 *LP##a##16
00389
00390 DECLARE_HANDLE16(HACMDRIVERID);
00391 DECLARE_HANDLE16(HACMDRIVER);
00392 DECLARE_HANDLE16(HACMOBJ);
00393 DECLARE_HANDLE16(HACMSTREAM);
00394 DECLARE_HANDLE16(HMETAFILEPICT);
00395
00396 DECLARE_HANDLE16(HACCEL);
00397 DECLARE_HANDLE16(HBITMAP);
00398 DECLARE_HANDLE16(HBRUSH);
00399 DECLARE_HANDLE16(HCOLORSPACE);
00400 DECLARE_HANDLE16(HCURSOR);
00401 DECLARE_HANDLE16(HDC);
00402 DECLARE_HANDLE16(HDROP);
00403 DECLARE_HANDLE16(HDRVR);
00404 DECLARE_HANDLE16(HDWP);
00405 DECLARE_HANDLE16(HENHMETAFILE);
00406 DECLARE_HANDLE16(HFILE);
00407 DECLARE_HANDLE16(HFONT);
00408 DECLARE_HANDLE16(HICON);
00409 DECLARE_HANDLE16(HINSTANCE);
00410 DECLARE_HANDLE16(HKEY);
00411 DECLARE_HANDLE16(HMENU);
00412 DECLARE_HANDLE16(HMETAFILE);
00413 DECLARE_HANDLE16(HMIDI);
00414 DECLARE_HANDLE16(HMIDIIN);
00415 DECLARE_HANDLE16(HMIDIOUT);
00416 DECLARE_HANDLE16(HMIDISTRM);
00417 DECLARE_HANDLE16(HMIXER);
00418 DECLARE_HANDLE16(HMIXEROBJ);
00419 DECLARE_HANDLE16(HMMIO);
00420 DECLARE_HANDLE16(HPALETTE);
00421 DECLARE_HANDLE16(HPEN);
00422 DECLARE_HANDLE16(HQUEUE);
00423 DECLARE_HANDLE16(HRGN);
00424 DECLARE_HANDLE16(HRSRC);
00425 DECLARE_HANDLE16(HTASK);
00426 DECLARE_HANDLE16(HWAVE);
00427 DECLARE_HANDLE16(HWAVEIN);
00428 DECLARE_HANDLE16(HWAVEOUT);
00429 DECLARE_HANDLE16(HWINSTA);
00430 DECLARE_HANDLE16(HDESK);
00431 DECLARE_HANDLE16(HWND);
00432 DECLARE_HANDLE16(HKL);
00433 DECLARE_HANDLE16(HIC);
00434 DECLARE_HANDLE16(HRASCONN);
00435 #undef DECLARE_HANDLE16
00436
00437 typedef HINSTANCE16 HMODULE16;
00438 typedef HANDLE16 HGDIOBJ16;
00439 typedef HANDLE16 HGLOBAL16;
00440 typedef HANDLE16 HLOCAL16;
00441
00442
00443 typedef struct
00444 {
00445 INT16 cx;
00446 INT16 cy;
00447 } SIZE16, *PSIZE16, *LPSIZE16;
00448
00449
00450
00451 typedef struct
00452 {
00453 INT16 x;
00454 INT16 y;
00455 } POINT16, *PPOINT16, *LPPOINT16;
00456
00457
00458
00459 typedef struct
00460 {
00461 INT16 left;
00462 INT16 top;
00463 INT16 right;
00464 INT16 bottom;
00465 } RECT16, *LPRECT16;
00466
00467
00468
00469 typedef LRESULT CALLBACK (*DRIVERPROC16)(DWORD,HDRVR16,UINT16,LPARAM,LPARAM);
00470 typedef WIN_BOOL16 CALLBACK (*DLGPROC16)(HWND16,UINT16,WPARAM16,LPARAM);
00471 typedef INT16 CALLBACK (*EDITWORDBREAKPROC16)(LPSTR,INT16,INT16,INT16);
00472 typedef LRESULT CALLBACK (*FARPROC16)();
00473 typedef INT16 CALLBACK (*PROC16)();
00474 typedef WIN_BOOL16 CALLBACK (*GRAYSTRINGPROC16)(HDC16,LPARAM,INT16);
00475 typedef LRESULT CALLBACK (*HOOKPROC16)(INT16,WPARAM16,LPARAM);
00476 typedef WIN_BOOL16 CALLBACK (*PROPENUMPROC16)(HWND16,SEGPTR,HANDLE16);
00477 typedef VOID CALLBACK (*TIMERPROC16)(HWND16,UINT16,UINT16,DWORD);
00478 typedef LRESULT CALLBACK (*WNDENUMPROC16)(HWND16,LPARAM);
00479 typedef LRESULT CALLBACK (*WNDPROC16)(HWND16,UINT16,WPARAM16,LPARAM);
00480
00481 #endif
00482
00483
00484
00485 #ifndef __WINE__
00486 #define NEAR
00487 #define FAR
00488 #define near
00489 #define far
00490 #define _near
00491 #define _far
00492 #define IN
00493 #define OUT
00494 #define OPTIONAL
00495 #endif
00496
00497
00498
00499 #ifdef __GNUC__
00500 #ifndef _EGCS_
00501 #define WINE_PACKED __attribute__((packed))
00502 #define WINE_UNUSED __attribute__((unused))
00503 #define WINE_NORETURN __attribute__((noreturn))
00504 #endif
00505 #else
00506 #define WINE_PACKED
00507 #define WINE_UNUSED
00508 #define WINE_NORETURN
00509 #endif
00510
00511
00512
00513 #define LOBYTE(w) ((BYTE)(WORD)(w))
00514 #define HIBYTE(w) ((BYTE)((WORD)(w) >> 8))
00515
00516 #define LOWORD(l) ((WORD)(DWORD)(l))
00517 #define HIWORD(l) ((WORD)((DWORD)(l) >> 16))
00518
00519 #define SLOWORD(l) ((INT16)(LONG)(l))
00520 #define SHIWORD(l) ((INT16)((LONG)(l) >> 16))
00521
00522 #define MAKEWORD(low,high) ((WORD)(((BYTE)(low)) | ((WORD)((BYTE)(high))) << 8))
00523 #define MAKELONG(low,high) ((LONG)(((WORD)(low)) | (((DWORD)((WORD)(high))) << 16)))
00524 #define MAKELPARAM(low,high) ((LPARAM)MAKELONG(low,high))
00525 #define MAKEWPARAM(low,high) ((WPARAM)MAKELONG(low,high))
00526 #define MAKELRESULT(low,high) ((LRESULT)MAKELONG(low,high))
00527 #define MAKEINTATOM(atom) ((LPCSTR)MAKELONG((atom),0))
00528
00529 #define SELECTOROF(ptr) (HIWORD(ptr))
00530 #define OFFSETOF(ptr) (LOWORD(ptr))
00531
00532 #ifdef __WINE__
00533
00534 #define SET_LOWORD(dw,val) ((dw) = ((dw) & 0xffff0000) | LOWORD(val))
00535 #define SET_LOBYTE(dw,val) ((dw) = ((dw) & 0xffffff00) | LOBYTE(val))
00536 #define SET_HIBYTE(dw,val) ((dw) = ((dw) & 0xffff00ff) | (LOWORD(val) & 0xff00))
00537 #define ADD_LOWORD(dw,val) ((dw) = ((dw) & 0xffff0000) | LOWORD((DWORD)(dw)+(val)))
00538 #endif
00539
00540
00541
00542
00543
00544
00545
00546
00547
00548
00549
00550
00551
00552 #if 1
00553 #define PUT_WORD(ptr,w) (*(WORD *)(ptr) = (w))
00554 #define GET_WORD(ptr) (*(WORD *)(ptr))
00555 #define PUT_DWORD(ptr,dw) (*(DWORD *)(ptr) = (dw))
00556 #define GET_DWORD(ptr) (*(DWORD *)(ptr))
00557 #else
00558 #define PUT_WORD(ptr,w) (*(BYTE *)(ptr) = LOBYTE(w), \
00559 *((BYTE *)(ptr) + 1) = HIBYTE(w))
00560 #define GET_WORD(ptr) ((WORD)(*(BYTE *)(ptr) | \
00561 (WORD)(*((BYTE *)(ptr)+1) << 8)))
00562 #define PUT_DWORD(ptr,dw) (PUT_WORD((ptr),LOWORD(dw)), \
00563 PUT_WORD((WORD *)(ptr)+1,HIWORD(dw)))
00564 #define GET_DWORD(ptr) ((DWORD)(GET_WORD(ptr) | \
00565 ((DWORD)GET_WORD((WORD *)(ptr)+1) << 16)))
00566 #endif
00567
00568
00569 #define __max(a,b) (((a) > (b)) ? (a) : (b))
00570 #define __min(a,b) (((a) < (b)) ? (a) : (b))
00571 #ifndef max
00572 #define max(a,b) (((a) > (b)) ? (a) : (b))
00573 #endif
00574 #ifndef min
00575 #define min(a,b) (((a) < (b)) ? (a) : (b))
00576 #endif
00577
00578 #ifndef _MAX_PATH
00579 #define _MAX_PATH 260
00580 #endif
00581 #ifndef MAX_PATH
00582 #define MAX_PATH 260
00583 #endif
00584 #ifndef _MAX_DRIVE
00585 #define _MAX_DRIVE 3
00586 #endif
00587 #ifndef _MAX_DIR
00588 #define _MAX_DIR 256
00589 #endif
00590 #ifndef _MAX_FNAME
00591 #define _MAX_FNAME 255
00592 #endif
00593 #ifndef _MAX_EXT
00594 #define _MAX_EXT 256
00595 #endif
00596
00597 #define HFILE_ERROR16 ((HFILE16)-1)
00598 #define HFILE_ERROR ((HFILE)-1)
00599
00600
00601 typedef struct tagSIZE
00602 {
00603 INT cx;
00604 INT cy;
00605 } SIZE, *PSIZE, *LPSIZE;
00606
00607
00608 typedef SIZE SIZEL, *PSIZEL, *LPSIZEL;
00609
00610 #define CONV_SIZE16TO32(s16,s32) \
00611 ((s32)->cx = (INT)(s16)->cx, (s32)->cy = (INT)(s16)->cy)
00612 #define CONV_SIZE32TO16(s32,s16) \
00613 ((s16)->cx = (INT16)(s32)->cx, (s16)->cy = (INT16)(s32)->cy)
00614
00615
00616 typedef struct tagPOINT
00617 {
00618 LONG x;
00619 LONG y;
00620 } POINT, *PPOINT, *LPPOINT;
00621
00622 typedef struct _POINTL
00623 {
00624 LONG x;
00625 LONG y;
00626 } POINTL;
00627
00628 #define CONV_POINT16TO32(p16,p32) \
00629 ((p32)->x = (INT)(p16)->x, (p32)->y = (INT)(p16)->y)
00630 #define CONV_POINT32TO16(p32,p16) \
00631 ((p16)->x = (INT16)(p32)->x, (p16)->y = (INT16)(p32)->y)
00632
00633 #define MAKEPOINT16(l) (*((POINT16 *)&(l)))
00634
00635
00636
00637 typedef struct tagPOINTS
00638 {
00639 SHORT x;
00640 SHORT y;
00641 } POINTS, *PPOINTS, *LPPOINTS;
00642
00643
00644 #define MAKEPOINTS(l) (*((POINTS *)&(l)))
00645
00646
00647
00648 typedef struct tagRECT
00649 {
00650 short left;
00651 short top;
00652 short right;
00653 short bottom;
00654 } RECT, *PRECT, *LPRECT;
00655 typedef const RECT *LPCRECT;
00656
00657
00658 typedef struct tagRECTL
00659 {
00660 LONG left;
00661 LONG top;
00662 LONG right;
00663 LONG bottom;
00664 } RECTL, *PRECTL, *LPRECTL;
00665
00666 typedef const RECTL *LPCRECTL;
00667
00668 #define CONV_RECT16TO32(r16,r32) \
00669 ((r32)->left = (INT)(r16)->left, (r32)->top = (INT)(r16)->top, \
00670 (r32)->right = (INT)(r16)->right, (r32)->bottom = (INT)(r16)->bottom)
00671 #define CONV_RECT32TO16(r32,r16) \
00672 ((r16)->left = (INT16)(r32)->left, (r16)->top = (INT16)(r32)->top, \
00673 (r16)->right = (INT16)(r32)->right, (r16)->bottom = (INT16)(r32)->bottom)
00674
00675 #ifdef __cplusplus
00676 }
00677 #endif
00678
00679 #endif