|
|
#ifdef WIN32
// Shouldn't be using these things.
#define _huge
#define _export
#define _loadds
#define SELECTOROF(x) ((UINT)(x))
#define OFFSETOF(x) ((UINT)(x))
#define ISLPTR(pv) ((BOOL)pv)
#define MAKELP(hmem,off) ((LPVOID)((LPBYTE)hmem+off))
#define MAKELRESULTFROMUINT(i) ((LRESULT)i)
#define ISVALIDHINSTANCE(hinst) ((BOOL)hinst)
#define DATASEG_READONLY
#define DATASEG_PERINSTANCE
#define DATASEG_SHARED
#define GetWindowInt GetWindowLong
#define SetWindowInt SetWindowLong
#define SetWindowID(hwnd,id) SetWindowLong(hwnd, GWL_ID, id)
#define CopyIcon(hInst, hIcon) CopyIcon(hIcon)
#define LOADICONEX(hInst, hInst2, a, b, c, d) LoadIconEx(hInst2, a, b, c, d)
#define SHELLEXECUTE(a, b, c, d, e, f) ShellExecuteEx(a, b, c, d, e, NULL, f)
#define ISVALIDLIBRARY(hLib) (hLib != NULL)
#else // WIN32
#define ISLPTR(pv) (SELECTOROF(pv))
#define MAKELRESULTFROMUINT(i) MAKELRESULT(i,0)
#define ISVALIDHINSTANCE(hinst) ((UINT)hinst>=(UINT)HINSTANCE_ERROR)
#define DATASEG_READONLY "_TEXT"
#define DATASEG_PERINSTANCE
#define DATASEG_SHARED
#define GetWindowInt GetWindowWord
#define SetWindowInt SetWindowWord
#define SetWindowID(hwnd,id) SetWindowWord(hwnd, GWW_ID, id)
#define MAKEPOINTS(l) (*((POINTS FAR*)&(l)))
#define LOADICONEX(hInst, hInst2, a, b, c, d) LoadIconEx(hInst, hInst2, a, b, c, d)
#define SHELLEXECUTE(a, b, c, d, e, f) ShellExecute(a, b, c, d, e, f)
#define ISVALIDLIBRARY(hLib) (hLib >= HINSTANCE_ERROR)
#endif // WIN32
#ifdef WIN32
/*****************************************************************************\
* PWIN32.H - PORTABILITY MAPPING HEADER FILE * * This file provides macros to map portable windows code to its 32 bit form. \*****************************************************************************/
/*-----------------------------------USER------------------------------------*/
/* HELPER MACROS */
#define MAPVALUE(v16, v32) (v32)
#define MAPTYPE(v16, v32) v32
#define MAKEMPOINT(l) (*((MPOINT *)&(l)))
#define MPOINT2POINT(mpt,pt) ((pt).x = (mpt).x, (pt).y = (mpt).y)
#define POINT2MPOINT(pt, mpt) ((mpt).x = (SHORT)(pt).x, (mpt).y = (SHORT)(pt).y)
#define LONG2POINT(l, pt) ((pt).x = (SHORT)LOWORD(l), (pt).y = (SHORT)HIWORD(l))
#define SETWINDOWUINT(hwnd, index, ui) (UINT)SetWindowLong(hwnd, index, (LONG)(ui))
#define GETWINDOWUINT(hwnd, index) (UINT)GetWindowLong(hwnd, index)
#define SETCLASSUINT(hwnd, index, ui) (UINT)SetClassLong(hwnd, index, (LONG)(ui))
#define GETCLASSUINT(hwnd, index) (UINT)GetClassLong(hwnd, index)
#define GETCBCLSEXTRA(hwnd) GETCLASSUINT(hwnd, GCL_CBCLSEXTRA)
#define SETCBCLSEXTRA(hwnd, cb) SETCLASSUINT(hwnd, GCL_CBCLSEXTRA, cb)
#define GETCBWNDEXTRA(hwnd) GETCLASSUINT(hwnd, GCL_CBWNDEXTRA)
#define SETCBWNDEXTRA(hwnd, cb) SETCLASSUINT(hwnd, GCL_CBWNDEXTRA, cb)
#define GETCLASSBRBACKGROUND(hwnd) (HBRUSH)GETCLASSUINT(hwnd, GCL_HBRBACKGROUND)
#define SETCLASSBRBACKGROUND(hwnd, h) (HBRUSH)SETCLASSUINT(hwnd, GCL_HBRBACKGROUND, h)
#define GETCLASSCURSOR(hwnd) (HCURSOR)GETCLASSUINT(hwnd, GCL_HCURSOR)
#define SETCLASSCURSOR(hwnd, h) (HCURSOR)SETCLASSUINT(hwnd, GCL_HCURSOR, h)
#define GETCLASSHMODULE(hwnd) (HMODULE)GETCLASSUINT(hwnd, GCL_HMODULE)
#define SETCLASSHMODULE(hwnd, h) (HMODULE)SETCLASSUINT(hwnd, GCL_HMODULE, h)
#define GETCLASSICON(hwnd) (HICON)GETCLASSUINT((hwnd), GCL_HICON)
#define SETCLASSICON(hwnd, h) (HICON)SETCLASSUINT((hwnd), GCL_HICON, h)
#define GETCLASSSTYLE(hwnd) GETCLASSUINT((hwnd), GCL_STYLE)
#define SETCLASSSTYLE(hwnd, style) SETCLASSUINT((hwnd), GCL_STYLE, style)
#define GETHWNDINSTANCE(hwnd) (HINSTANCE)GETWINDOWUINT((hwnd), GWL_HINSTANCE)
#define SETHWNDINSTANCE(hwnd, h) (HINSTANCE)SETWINDOWUINT((hwnd), GWL_HINSTANCE, h)
#define GETHWNDPARENT(hwnd) (HWND)GETWINDOWUINT((hwnd), GWL_HWNDPARENT)
#define SETHWNDPARENT(hwnd, h) (HWND)SETWINDOWUINT((hwnd), GWL_HWNDPARENT, h)
#define GETWINDOWID(hwnd) GETWINDOWUINT((hwnd), GWL_ID)
#define SETWINDOWID(hwnd, id) SETWINDOWUINT((hwnd), GWL_ID, id)
#else
/*****************************************************************************\
* PWIN16.H - PORTABILITY MAPPING HEADER FILE * * This file provides macros to map portable windows code to its 16 bit form. \*****************************************************************************/
/*-----------------------------------USER------------------------------------*/ /* HELPER MACROS */
#define MAPVALUE(v16, v32) (v16)
#define MAPTYPE(v16, v32) v16
#define MAKEMPOINT(l) (*((MPOINT FAR *)&(l)))
#define MPOINT2POINT(mpt, pt) (pt = *(POINT FAR *)&(mpt))
#define POINT2MPOINT(pt, mpt) (mpt = *(MPOINT FAR *)&(pt))
#define LONG2POINT(l, pt) ((pt).x = (INT)LOWORD(l), (pt).y = (INT)HIWORD(l))
#define GETWINDOWUINT(hwnd, index) (UINT)GetWindowWord(hwnd, index)
#define SETWINDOWUINT(hwnd, index, ui) (UINT)SetWindowWord(hwnd, index, (WORD)(ui))
#define SETCLASSUINT(hwnd, index, ui) (UINT)SetClassWord(hwnd, index, (WORD)(ui))
#define GETCLASSUINT(hwnd, index) (UINT)GetClassWord(hwnd, index)
#define GETCBCLSEXTRA(hwnd) GETCLASSUINT(hwnd, GCW_CBCLSEXTRA)
#define SETCBCLSEXTRA(hwnd, cb) SETCLASSUINT(hwnd, GCW_CBCLSEXTRA, cb)
#define GETCBWNDEXTRA(hwnd) GETCLASSUINT(hwnd, GCW_CBWNDEXTRA)
#define SETCBWNDEXTRA(hwnd, cb) SETCLASSUINT(hwnd, GCW_CBWNDEXTRA, cb)
#define GETCLASSBRBACKGROUND(hwnd) (HBRUSH)GETCLASSUINT(hwnd, GCW_HBRBACKGROUND)
#define SETCLASSBRBACKGROUND(hwnd, h) (HBRUSH)SETCLASSUINT(hwnd, GCW_HBRBACKGROUND, h)
#define GETCLASSCURSOR(hwnd) (HCURSOR)GETCLASSUINT(hwnd, GCW_HCURSOR)
#define SETCLASSCURSOR(hwnd, h) (HCURSOR)SETCLASSUINT(hwnd, GCW_HCURSOR, h)
#define GETCLASSHMODULE(hwnd) (HMODULE)GETCLASSUINT(hwnd, GCW_HMODULE)
#define SETCLASSHMODULE(hwnd, h) (HMODULE)SETCLASSUINT(hwnd, GCW_HMODULE, h)
#define GETCLASSICON(hwnd) (HICON)GETCLASSUINT((hwnd), GCW_HICON)
#define SETCLASSICON(hwnd, h) (HICON)SETCLASSUINT((hwnd), GCW_HICON, h)
#define GETCLASSSTYLE(hwnd) GETCLASSUINT((hwnd), GCW_STYLE)
#define SETCLASSSTYLE(hwnd, style) SETCLASSUINT((hwnd), GCW_STYLE, style)
#define GETHWNDINSTANCE(hwnd) (HMODULE)GETWINDOWUINT((hwnd), GWW_HINSTANCE)
#define SETHWNDINSTANCE(hwnd, h) (HMODULE)SETWINDOWUINT((hwnd), GWW_HINSTANCE, h)
#define GETHWNDPARENT(hwnd) (HWND)GETWINDOWUINT((hwnd), GWW_HWNDPARENT)
#define SETHWNDPARENT(hwnd, h) (HWND)SETWINDOWUINT((hwnd), GWW_HWNDPARENT, h)
#define GETWINDOWID(hwnd) GETWINDOWUINT((hwnd), GWW_ID)
#define SETWINDOWID(hwnd, id) SETWINDOWUINT((hwnd), GWW_ID, id)
#endif // WIN32
|