X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/f6f450e2b1db4ae729c6df593dbbbff842bd6f3b..7440fd4419acfc9c784f142fb9dee3e64c9a18c2:/winstuff.h diff --git a/winstuff.h b/winstuff.h index b94f25d8..693fd42e 100644 --- a/winstuff.h +++ b/winstuff.h @@ -5,6 +5,10 @@ #ifndef PUTTY_WINSTUFF_H #define PUTTY_WINSTUFF_H +#ifndef AUTO_WINSOCK +#include +#endif +#include #include /* for FILENAME_MAX */ #include "tree234.h" @@ -23,11 +27,15 @@ struct FontSpec { int charset; }; +#define BOXFLAGS DLGWINDOWEXTRA +#define BOXRESULT DLGWINDOWEXTRA + 4 +#define DF_END 0x0001 + /* * 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 @@ -126,6 +134,23 @@ GLOBAL void *logctx; "All Files (*.*)\0*\0\0\0") /* + * winnet.c dynamically loads WinSock 2 or WinSock 1 depending on + * what it can get, which means any WinSock routines used outside + * that module must be exported from it as function pointers. So + * here they are. + */ +extern int (WINAPI *p_WSAAsyncSelect) + (SOCKET s, HWND hWnd, u_int wMsg, long lEvent); +extern int (WINAPI *p_WSAEventSelect) + (SOCKET s, WSAEVENT hEventObject, long lNetworkEvents); +extern int (WINAPI *p_select) + (int nfds, fd_set FAR * readfds, fd_set FAR * writefds, + fd_set FAR *exceptfds, const struct timeval FAR * timeout); +extern int (WINAPI *p_WSAGetLastError)(void); +extern int (WINAPI *p_WSAEnumNetworkEvents) + (SOCKET s, WSAEVENT hEventObject, LPWSANETWORKEVENTS lpNetworkEvents); + +/* * Exports from winctrls.c. */ @@ -308,6 +333,20 @@ void modal_about_box(HWND hwnd); void show_help(HWND hwnd); /* + * Exports from winmisc.c. + */ + +int SaneDialogBox(HINSTANCE hinst, + LPCTSTR tmpl, + HWND hwndparent, + DLGPROC lpDialogFunc); + +void SaneEndDialog(HWND hwnd, int ret); + +extern OSVERSIONINFO osVersion; +BOOL init_winver(void); + +/* * Exports from sizetip.c. */ void UpdateSizeTip(HWND src, int cx, int cy); @@ -319,4 +358,16 @@ void EnableSizeTip(int bEnable); struct unicode_data; void init_ucs(Config *, struct unicode_data *); +/* + * pageantc.c needs to schedule callbacks for asynchronous agent + * requests. This has to be done differently in GUI and console, so + * there's an exported function used for the purpose. + * + * Also, we supply FLAG_SYNCAGENT to force agent requests to be + * synchronous in pscp and psftp. + */ +void agent_schedule_callback(void (*callback)(void *, void *, int), + void *callback_ctx, void *data, int len); +#define FLAG_SYNCAGENT 0x1000 + #endif