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" 29 #include "bagel/mfc/winnt.h" 47 #define APIENTRY WINAPI 76 #define CATCH(KLASS, VAL) KLASS *VAL = nullptr; if (0) 79 DECLARE_HANDLE(HACCEL);
80 DECLARE_HANDLE(HCURSOR);
81 DECLARE_HANDLE(HDROP);
82 DECLARE_HANDLE(HHOOK);
83 DECLARE_HANDLE(HICON);
84 DECLARE_HANDLE(HMENU);
85 DECLARE_HANDLE(HRAWINPUT);
93 typedef HGDIOBJ
HFONT;
105 typedef uintptr WPARAM;
106 typedef intptr LPARAM;
107 typedef intptr LRESULT;
109 typedef LRESULT(CALLBACK *HOOKPROC)(
int code, WPARAM wParam, LPARAM lParam);
110 typedef LRESULT(CALLBACK *WNDPROC)(HWND,
unsigned int, WPARAM, LPARAM);
111 typedef intptr(FAR WINAPI *FARPROC)();
112 typedef intptr(NEAR WINAPI *NEARPROC)();
113 typedef intptr(WINAPI *PROC)();
114 typedef intptr(CALLBACK *DLGPROC)(HWND,
unsigned int, WPARAM, LPARAM);
117 #define max(a,b) (((a) > (b)) ? (a) : (b)) 121 #define min(a,b) (((a) < (b)) ? (a) : (b)) 124 #define MAKEWORD(a, b) ((uint16)(((byte)(((uintptr)(a)) & 0xff)) | ((uint16)((byte)(((uintptr)(b)) & 0xff))) << 8)) 125 #define MAKELONG(a, b) ((long)(((uint16)(((uintptr)(a)) & 0xffff)) | ((uint32)((uint16)(((uintptr)(b)) & 0xffff))) << 16)) 126 #define LOWORD(l) ((uint16)(((uintptr)(l)) & 0xffff)) 127 #define HIWORD(l) ((((uintptr)(l)) >> 16)) 128 #define LOBYTE(w) ((byte)(((uintptr)(w)) & 0xff)) 129 #define HIBYTE(w) ((byte)((((uintptr)(w)) >> 8) & 0xff)) 131 #define POINTTOPOINTS(pt) (MAKELONG((short)((pt).x), (short)((pt).y))) 132 #define MAKEWPARAM(l, h) ((WPARAM)(uint32)MAKELONG(l, h)) 133 #define MAKELPARAM(l, h) ((LPARAM)(uint32)MAKELONG(l, h)) 134 #define MAKELRESULT(l, h) ((LRESULT)(uint32)MAKELONG(l, h)) 136 typedef void *HANDLE;
137 typedef HANDLE NEAR *SPHANDLE;
138 typedef HANDLE FAR *LPHANDLE;
139 typedef HANDLE HGLOBAL;
140 typedef HANDLE HLOCAL;
141 typedef HANDLE GLOBALHANDLE;
142 typedef HANDLE LOCALHANDLE;
144 #define DECLARE_HANDLE(name) struct name##__{int unused;}; typedef struct name##__ *name 188 bool contains(
int x,
int y)
const {
192 bool contains(
const POINT &pt)
const {
204 dest.left = src.
left;
206 dest.right = src.
right;
207 dest.bottom = src.bottom;
210 inline RECT RectToRECT(
int x1,
int y1,
int x2,
int y2) {
219 inline bool RectsIntersect(
const RECT &r1,
const RECT &r2) {
220 return RECTtoRect(r1).
intersects(RECTtoRect(r2));
224 uint32 dwLowDateTime;
225 uint32 dwHighDateTime;
236 uint16 wMilliseconds;
245 byte rgbReserved[32];
253 unsigned int message = 0;
266 tagMSG(HWND hwnd_,
unsigned int message_, WPARAM wParam_ = 0,
267 LPARAM lParam_ = 0) :
268 hwnd(hwnd_), message(message_), wParam(wParam_),
274 inline bool PtInRect(
const RECT *lprc,
const POINT &pt) {
275 return pt.x >= lprc->left && pt.x < lprc->right &&
276 pt.y >= lprc->top && pt.y < lprc->bottom;
287 HBRUSH hbrBackground;
288 const char * lpszMenuName;
289 const char * lpszClassName;
293 bool m_bSaveAndValidate;
Definition: minwindef.h:166
T left
Definition: rect.h:170
Definition: afxwin.h:1140
bool intersects(const ConcreteRect &r) const
Definition: rect.h:291
Definition: minwindef.h:87
Definition: minwindef.h:161
Definition: minwindef.h:223
Definition: minwindef.h:158
Definition: minwindef.h:157
T right
Definition: rect.h:171
Definition: minwindef.h:153
Definition: minwindef.h:239
Definition: minwindef.h:150
Definition: minwindef.h:151
Definition: minwindef.h:156
Definition: minwindef.h:174
Definition: minwindef.h:154
Definition: minwindef.h:159
Definition: minwindef.h:179
Definition: minwindef.h:292
bool contains(T x, T y) const
Definition: rect.h:246
Definition: minwindef.h:228
Definition: minwindef.h:279
Definition: minwindef.h:155
Definition: minwindef.h:148
Definition: minwindef.h:251