Fix `puttygen-unix-perms': f_open(), PuTTY's wrapper on fopen, now
[u/mdw/putty] / windows / winstuff.h
index 9ec33de..14e20ba 100644 (file)
@@ -18,7 +18,7 @@
 struct Filename {
     char path[FILENAME_MAX];
 };
-#define f_open(filename, mode) ( fopen((filename).path, (mode)) )
+#define f_open(filename, mode, isprivate) ( fopen((filename).path, (mode)) )
 
 struct FontSpec {
     char name[64];
@@ -97,6 +97,7 @@ typedef struct terminal_tag Terminal;
 #define PUTTY_REG_GPARENT_CHILD "SimonTatham"
 
 #define PUTTY_HELP_FILE "putty.hlp"
+#define PUTTY_CHM_FILE "putty.chm"
 #define PUTTY_HELP_CONTENTS "putty.cnt"
 
 #define GETTICKCOUNT GetTickCount
@@ -120,11 +121,13 @@ GLOBAL HWND logbox;
 GLOBAL HINSTANCE hinst;
 
 /*
- * Details of the help file.
+ * Help file stuff in winhelp.c.
  */
-GLOBAL char *help_path;
-GLOBAL int help_has_contents;
-GLOBAL int requested_help;
+void init_help(void);
+void shutdown_help(void);
+int has_help(void);
+void launch_help(HWND hwnd, const char *topic);
+void quit_help(HWND hwnd);
 
 /*
  * The terminal and logging context are notionally local to the
@@ -199,6 +202,8 @@ extern int (WINAPI *p_WSAEnumNetworkEvents)
 
 extern int socket_writable(SOCKET skt);
 
+extern void socket_reselect_all(void);
+
 /*
  * Exports from winctrls.c.
  */
@@ -373,7 +378,7 @@ void dp_cleanup(struct dlgparam *dp);
  * Exports from wincfg.c.
  */
 void win_setup_config_box(struct controlbox *b, HWND *hwndp, int has_help,
-                         int midsession);
+                         int midsession, int protocol);
 
 /*
  * Exports from windlg.c.
@@ -406,6 +411,27 @@ struct unicode_data;
 void init_ucs(Config *, struct unicode_data *);
 
 /*
+ * Exports from winhandl.c.
+ */
+#define HANDLE_FLAG_OVERLAPPED 1
+#define HANDLE_FLAG_IGNOREEOF 2
+#define HANDLE_FLAG_UNITBUFFER 4
+struct handle;
+typedef int (*handle_inputfn_t)(struct handle *h, void *data, int len);
+typedef void (*handle_outputfn_t)(struct handle *h, int new_backlog);
+struct handle *handle_input_new(HANDLE handle, handle_inputfn_t gotdata,
+                               void *privdata, int flags);
+struct handle *handle_output_new(HANDLE handle, handle_outputfn_t sentdata,
+                                void *privdata, int flags);
+int handle_write(struct handle *h, const void *data, int len);
+HANDLE *handle_get_events(int *nevents);
+void handle_free(struct handle *h);
+void handle_got_event(HANDLE event);
+void handle_unthrottle(struct handle *h, int backlog);
+int handle_backlog(struct handle *h);
+void *handle_get_privdata(struct handle *h);
+
+/*
  * 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.
@@ -417,4 +443,9 @@ void agent_schedule_callback(void (*callback)(void *, void *, int),
                             void *callback_ctx, void *data, int len);
 #define FLAG_SYNCAGENT 0x1000
 
+/*
+ * Exports from winser.c.
+ */
+extern Backend serial_backend;
+
 #endif