X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/e73667f337301c82c515562f5c79a54fd40d4c55..973612f5e86c9eaabc812a47d81c5cb14f672249:/windows/winstuff.h?ds=sidebyside diff --git a/windows/winstuff.h b/windows/winstuff.h index 1ecf6dcb..9ec33de6 100644 --- a/windows/winstuff.h +++ b/windows/winstuff.h @@ -27,8 +27,47 @@ struct FontSpec { int charset; }; +#ifndef CLEARTYPE_QUALITY +#define CLEARTYPE_QUALITY 5 +#endif +#define FONT_QUALITY(fq) ( \ + (fq) == FQ_DEFAULT ? DEFAULT_QUALITY : \ + (fq) == FQ_ANTIALIASED ? ANTIALIASED_QUALITY : \ + (fq) == FQ_NONANTIALIASED ? NONANTIALIASED_QUALITY : \ + CLEARTYPE_QUALITY) + +/* + * Where we can, we use GetWindowLongPtr and friends because they're + * more useful on 64-bit platforms, but they're a relatively recent + * innovation, missing from VC++ 6 and older MinGW. Degrade nicely. + * (NB that on some systems, some of these things are available but + * not others...) + */ + +#ifndef GCLP_HCURSOR +/* GetClassLongPtr and friends */ +#undef GetClassLongPtr +#define GetClassLongPtr GetClassLong +#undef SetClassLongPtr +#define SetClassLongPtr SetClassLong +#define GCLP_HCURSOR GCL_HCURSOR +/* GetWindowLongPtr and friends */ +#undef GetWindowLongPtr +#define GetWindowLongPtr GetWindowLong +#undef SetWindowLongPtr +#define SetWindowLongPtr SetWindowLong +#undef GWLP_USERDATA +#define GWLP_USERDATA GWL_USERDATA +#undef DWLP_MSGRESULT +#define DWLP_MSGRESULT DWL_MSGRESULT +/* Since we've clobbered the above functions, we should clobber the + * associated type regardless of whether it's defined. */ +#undef LONG_PTR +#define LONG_PTR LONG +#endif + #define BOXFLAGS DLGWINDOWEXTRA -#define BOXRESULT DLGWINDOWEXTRA + 4 +#define BOXRESULT (DLGWINDOWEXTRA + sizeof(LONG_PTR)) #define DF_END 0x0001 /* @@ -95,13 +134,7 @@ GLOBAL int requested_help; GLOBAL Terminal *term; GLOBAL void *logctx; -/* - * I've just looked in the windows standard headr files for WM_USER, there - * are hundreds of flags defined using the form WM_USER+123 so I've - * renumbered this NETEVENT value and the two in window.c - */ -#define WM_XUSER (WM_USER + 0x2000) -#define WM_NETEVENT (WM_XUSER + 5) +#define WM_NETEVENT (WM_APP + 5) /* * On Windows, we send MA_2CLK as the only event marking the second