/* drwOlefn.h */


#ifdef __cplusplus 
extern "C" {
#endif

extern void drw_save_ole_data_todisc(char *leafnamein,
                                     void *appoledata,
                                     int appoledatasize,
                                     char *file_name,
                                     int maxfilenamelen,
                                     bits ftype,
                                     char *inputfile,
                                     int usescrapfile);
extern void drw_init_ole_str(void *oleptr);
extern int drw_compare_ole_data(void *thisole, void *cmpwith);
extern drw_ole_data *drw_find_ole_data(wimp_t sender,
                                       drw_ole_s olessn,
                                       bits ftype,
                                       wimp_w w,
                                       int x,
                                       int y,
                                       drw_session_type_flags session_types);
extern int drw_wimp_use_myole_mod(wimp_t *tout);
extern drw_ole_mod_type drw_start_ole_supp_mod(bits ftype,
                                               wimp_t *tout);
extern os_error *drw_get_ole_version(int *majvsnout,
                                     int *minvsnout,
                                     wimp_t *taskid);
extern drw_ole_mod_type drw_use_ole_supp_mod(bits ftype);
extern int drw_simulate_ole_session(bits ftype);
extern ole_s drw_nt_ole_session_handle(bits ftype,
                                       wimp_w w,
                                       int x,
                                       int y,
                                       void *datahandle);
extern int drw_start_ole_session(void *appoledata,
                                 int appoledatasize,
                                 char *leafnamein,
                                 wimp_w w,
                                 int x,
                                 int y,
                                 char *filetype,
                                 bits ftype,
                                 int warning,
                                 char *inputfile,
                                 int usescrapfile,
                                 void *datahandle,
                                 int maxretries,
                                 drw_ole_s *currentoleedithandle);
extern void drw_delete_ole_file(drw_ole_data *ole);
extern void drw_remove_ole_data(drw_ole_data *ole);
extern void drw_discard_ole_data(ole_s session_handle,
                                 wimp_w w,
                                 int x,
                                 int y,
                                 drw_session_type_flags session_types);
extern void drw_wint_returned_ole_open(wimp_message *wmsg);
extern void drw_wint_recv_ole_open(wimp_message *wmsg);
extern drw_ole_data *drw_new_ole_str(void);
extern void drw_wint_recv_ole_ack(wimp_message *wmsg);
extern int drw_ole_file_changed(wimp_w editwhan,
                                drw_ole_s session_handle,
                                char *filename);
extern void drw_recv_ole_file_changed(wimp_message *wmsg);
extern void drw_recv_ole_close_session(wimp_message *wmsg);
extern void drw_ole_session_is_not_edited(void *userfndata, void *oledata);
extern void drw_discard_ole_session(void *userfndata, void *oledata);
extern void drw_discard_ole_file(void *userfndata, void *oledata);
extern void drw_close_discard_ole_session(void *userfndata, void *oledata);
extern void drw_close_ole_session_handle(drw_ole_s handle,
                                         drw_session_type_flags session_type,
                                         int remove_session_data);
extern void drw_close_ole_session_task_handle(wimp_t taskhandle,
                                              drw_ole_s handle,
                             drw_session_type_flags session_type,
                                              int remove_session_data);
extern void drw_discard_ole_task_sessions(wimp_t oletask,
                                          ole_s session_handle,
                                          drw_session_type_flags session_types);
extern void drw_send_ole_close_session_msg(drw_ole_data *ole);
extern void drw_close_ole_session(void *userfndata, void *oledata);
extern void drw_ole_close_W_session(wimp_w w,
                                    int x,
                                    int y,
                                    int close_all);
extern void drw_close_all_ole_sessions(int all_client_sessions,
                                       int all_server_sessions,
                                       int discard_sessions);
extern void drw_update_ole_data_ptr(wimp_w whan,
                                    int x,
                                    int y,
                                    int server_session,
                                    void *oledata,
                                    int oledatasize);
extern void drw_ole_set_supp_mod_path(char *modpathname,
                                      char *appdirname);
extern void drw_set_ole_retry_edit_flag(int flagval);
extern void drw_set_ole_fns(void);
extern void drw_catch_msg_ole_open(wimp_message *wmsg,
                                   bits msgactioncode,
                                   wimp_event_no reason,
                                   void *actiondata);
extern void drw_catch_msg_ole_openack(wimp_message *wmsg,
                                      bits msgactioncode,
                                      wimp_event_no reason,
                                      void *actiondata);
extern void drw_catch_msg_ole_fchanged(wimp_message *wmsg,
                                       bits msgactioncode,
                                       wimp_event_no reason,
                                       void *actiondata);
extern void drw_catch_msg_ole_close(wimp_message *wmsg,
                                    bits msgactioncode,
                                    wimp_event_no reason,
                                    void *actiondata);
extern void drw_catch_rtnd_ole_open(wimp_message *wmsg,
                                    bits msgackcode,
                                    wimp_event_no reason,
                                    void *actiondata);
extern void drw_ole_init(void);
extern byte *drw_ole_initialise(char *suppmodpath,
                                byte *saveblk,
                                int tryreedit,
                                int usedrwimpdir,
                                int clientsessions,
                                int riucheck);
extern char *drw_get_ole_filename(drw_ole_s session_handle,
                                  wimp_w whan,
                                  int x,
                                  int y,
                                  drw_session_type_flags session_type,
                                  char *rtnbuffer,
                                  int rtnbuffersize);

#ifdef __cplusplus
}
#endif

