22 #ifndef BAGEL_MFC_MINWINDEF_H 23 #define BAGEL_MFC_MINWINDEF_H 25 #include "common/scummsys.h" 26 #include "common/algorithm.h" 27 #include "common/rect.h" 28 #include "bagel/mfc/winnt.h" 46 #define APIENTRY WINAPI 75 #define CATCH(KLASS, VAL) KLASS *VAL = nullptr; if (0) 78 DECLARE_HANDLE(HACCEL);
79 DECLARE_HANDLE(HCURSOR);
80 DECLARE_HANDLE(HDROP);
81 DECLARE_HANDLE(HHOOK);
82 DECLARE_HANDLE(HICON);
83 DECLARE_HANDLE(HMENU);
84 DECLARE_HANDLE(HRAWINPUT);
92 typedef HGDIOBJ
HFONT;
104 typedef uintptr WPARAM;
105 typedef intptr LPARAM;
106 typedef intptr LRESULT;
108 typedef LRESULT(CALLBACK *HOOKPROC)(
int code, WPARAM wParam, LPARAM lParam);
109 typedef LRESULT(CALLBACK *WNDPROC)(HWND,
unsigned int, WPARAM, LPARAM);
110 typedef intptr(FAR WINAPI *FARPROC)();
111 typedef intptr(NEAR WINAPI *NEARPROC)();
112 typedef intptr(WINAPI *PROC)();
113 typedef intptr(CALLBACK *DLGPROC)(HWND,
unsigned int, WPARAM, LPARAM);
116 #define max(a,b) (((a) > (b)) ? (a) : (b)) 120 #define min(a,b) (((a) < (b)) ? (a) : (b)) 123 #define MAKEWORD(a, b) ((uint16)(((byte)(((uintptr)(a)) & 0xff)) | ((uint16)((byte)(((uintptr)(b)) & 0xff))) << 8)) 124 #define MAKELONG(a, b) ((long)(((uint16)(((uintptr)(a)) & 0xffff)) | ((uint32)((uint16)(((uintptr)(b)) & 0xffff))) << 16)) 125 #define LOWORD(l) ((uint16)(((uintptr)(l)) & 0xffff)) 126 #define HIWORD(l) ((((uintptr)(l)) >> 16)) 127 #define LOBYTE(w) ((byte)(((uintptr)(w)) & 0xff)) 128 #define HIBYTE(w) ((byte)((((uintptr)(w)) >> 8) & 0xff)) 130 #define POINTTOPOINTS(pt) (MAKELONG((short)((pt).x), (short)((pt).y))) 131 #define MAKEWPARAM(l, h) ((WPARAM)(uint32)MAKELONG(l, h)) 132 #define MAKELPARAM(l, h) ((LPARAM)(uint32)MAKELONG(l, h)) 133 #define MAKELRESULT(l, h) ((LRESULT)(uint32)MAKELONG(l, h)) 135 typedef void *HANDLE;
136 typedef HANDLE NEAR *SPHANDLE;
137 typedef HANDLE FAR *LPHANDLE;
138 typedef HANDLE HGLOBAL;
139 typedef HANDLE HLOCAL;
140 typedef HANDLE GLOBALHANDLE;
141 typedef HANDLE LOCALHANDLE;
143 #define DECLARE_HANDLE(name) struct name##__{int unused;}; typedef struct name##__ *name 187 bool contains(
int x,
int y)
const {
191 bool contains(
const POINT &pt)
const {
203 dest.left = src.
left;
205 dest.right = src.
right;
206 dest.bottom = src.bottom;
209 inline RECT RectToRECT(
int x1,
int y1,
int x2,
int y2) {
218 inline bool RectsIntersect(
const RECT &r1,
const RECT &r2) {
219 return RECTtoRect(r1).
intersects(RECTtoRect(r2));
223 uint32 dwLowDateTime;
224 uint32 dwHighDateTime;
235 uint16 wMilliseconds;
244 byte rgbReserved[32];
252 unsigned int message = 0;
265 tagMSG(HWND hwnd_,
unsigned int message_, WPARAM wParam_ = 0,
266 LPARAM lParam_ = 0) :
267 hwnd(hwnd_), message(message_), wParam(wParam_),
273 inline bool PtInRect(
const RECT *lprc,
const POINT &pt) {
274 return pt.x >= lprc->left && pt.x < lprc->right &&
275 pt.y >= lprc->top && pt.y < lprc->bottom;
286 HBRUSH hbrBackground;
287 const char * lpszMenuName;
288 const char * lpszClassName;
292 bool m_bSaveAndValidate;
Definition: minwindef.h:165
T left
Definition: rect.h:170
Definition: afxwin.h:1125
bool intersects(const ConcreteRect &r) const
Definition: rect.h:291
Definition: minwindef.h:86
Definition: minwindef.h:160
Definition: minwindef.h:222
Definition: minwindef.h:157
Definition: minwindef.h:156
T right
Definition: rect.h:171
Definition: minwindef.h:152
Definition: minwindef.h:238
Definition: minwindef.h:149
Definition: minwindef.h:150
Definition: minwindef.h:155
Definition: minwindef.h:173
Definition: minwindef.h:153
Definition: minwindef.h:158
Definition: minwindef.h:178
Definition: minwindef.h:291
bool contains(T x, T y) const
Definition: rect.h:246
Definition: minwindef.h:227
Definition: minwindef.h:278
Definition: minwindef.h:154
Definition: minwindef.h:147
Definition: minwindef.h:250