X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/putty/blobdiff_plain/2c9c6388caa7e80195bffd93be7be7369c20bb98..a57cd64bc1a34bd8d8ca6ab1c9deb9c3eb1cdc6a:/winstuff.h diff --git a/winstuff.h b/winstuff.h index 6f080b3b..3bf43bcb 100644 --- a/winstuff.h +++ b/winstuff.h @@ -2,20 +2,58 @@ * winstuff.h: Windows-specific inter-module stuff. */ +#ifndef PUTTY_WINSTUFF_H +#define PUTTY_WINSTUFF_H + /* * Global variables. Most modules declare these `extern', but * window.c will do `#define PUTTY_DO_GLOBALS' before including this * module, and so will get them properly defined. */ +#ifndef GLOBAL #ifdef PUTTY_DO_GLOBALS #define GLOBAL #else #define GLOBAL extern #endif +#endif + +typedef struct config_tag Config; /* duplicated from putty.h */ + +#define PUTTY_REG_POS "Software\\SimonTatham\\PuTTY" +#define PUTTY_REG_PARENT "Software\\SimonTatham" +#define PUTTY_REG_PARENT_CHILD "PuTTY" +#define PUTTY_REG_GPARENT "Software" +#define PUTTY_REG_GPARENT_CHILD "SimonTatham" +#define GETTICKCOUNT GetTickCount +#define CURSORBLINK GetCaretBlinkTime() +#define TICKSPERSEC 1000 /* GetTickCount returns milliseconds */ + +#define DEFAULT_CODEPAGE CP_ACP + +typedef HDC Context; + +/* + * Window handles for the dialog boxes that can be running during a + * PuTTY session. + */ +GLOBAL HWND logbox; + +/* + * The all-important instance handle. + */ GLOBAL HINSTANCE hinst; /* + * 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) + +/* * Exports from winctrls.c. */ @@ -45,6 +83,9 @@ struct prefslist { int dragging; }; +/* + * Exports from winctrls.c. + */ void ctlposinit(struct ctlpos *cp, HWND hwnd, int leftborder, int rightborder, int topborder); HWND doctl(struct ctlpos *cp, RECT r, @@ -95,3 +136,30 @@ void fwdsetter(struct ctlpos *cp, int listid, char *stext, int sid, char *e1stext, int e1sid, int e1id, char *e2stext, int e2sid, int e2id, char *btext, int bid); + +/* + * Exports from windlg.c. + */ +void defuse_showwindow(void); +int do_config(void); +int do_reconfig(HWND); +void showeventlog(HWND); +void showabout(HWND); +void force_normal(HWND hwnd); + +/* + * Exports from sizetip.c. + */ +void UpdateSizeTip(HWND src, int cx, int cy); +void EnableSizeTip(int bEnable); + +/* + * Unicode and multi-byte character handling stuff. + */ +#define is_dbcs_leadbyte(cp, c) IsDBCSLeadByteEx(cp, c) +#define mb_to_wc(cp, flags, mbstr, mblen, wcstr, wclen) \ + MultiByteToWideChar(cp, flags, mbstr, mblen, wcstr, wclen) +#define wc_to_mb(cp, flags, wcstr, wclen, mbstr, mblen, def, defused) \ + WideCharToMultiByte(cp, flags, mbstr, mblen, wcstr, wclen, def,defused) + +#endif