#ifndef drwFn31_H
 #define  drwFn31_H

#include "DRW/drwwh.h"

#if defined NAMESPACE_DRWIMPC
  namespace DrWimpC {
#endif

#if defined NAMESPACE_OSLIB
  using namespace OSLib;
#endif


typedef drw_ole_s (*drw_autofn_setolesessionno_fn)(drw_ole_s olehandle,
                                                   bits ftype,
                                                   wimp_w w,
                                                   int x,
                                                   int y,
                                                   void *datahandle,
                                                   void *userdata);


typedef drw_ole_s (*drw_setolesessionno_ufn)(drw_ole_s olehandle,
                                             bits ftype,
                                             wimp_w w,
                                             int x,
                                             int y,
                                             void *datahandle);


typedef int (*drw_autofn_acceptolefiletype_fn)(char *oleservername,
                                               char *clientolename,
                                               bits file_type,
                                               void *userdata);

typedef int (*drw_acceptolefiletype_ufn)(char *oleservername,
                                         char *clientolename,
                                         bits file_type);

typedef int (*drw_autofn_loadolefile_fn)(wimp_t sender,
                                         drw_ole_s session_handle,
                                         char *file_name,
                                         bits file_type,
                                         int restartedit,
                                         wimp_w *w,
                                         void **oledata,
                                         int *oledatsize,
                                         void *userdata);

typedef int (*drw_loadolefile_ufn)(wimp_t sender,
                                   drw_ole_s session_handle,
                                   char *file_name,
                                   bits file_type,
                                   int restartedit,
                                   wimp_w *w,
                                   void **oledata,
                                   int *oledatsize);

typedef int (*drw_autofn_olesessionopen_fn)(wimp_t taskid,
                                            drw_ole_s session_handle,
                                            bits file_type,
                                            wimp_w w,
                                            int x,
                                            int y,
                                            int oleclientsession,
                                            int newsession,
                                            void *userdata);

typedef int (*drw_olesessionopen_ufn)(wimp_t taskid,
                                      drw_ole_s session_handle,
                                      bits file_type,
                                      wimp_w w,
                                      int x,
                                      int y,
                                      int oleclientsession,
                                      int newsession);

typedef int (*drw_autofn_beginoleedit_fn)(wimp_message *wmsg,
                                          wimp_t taskid,
                                          char *clientolename,
                                          drw_ole_s session_handle,
                                          int format,
                                          wimp_w w,
                                          int x,
                                          int y,
                                          bits file_type,
                                          char *file_name,
                                          void *userdata);

typedef void (*drw_beginoleedit_ufn)(wimp_message *wmsg,
                                     wimp_t taskid,
                                     char *clientolename,
                                     drw_ole_s session_handle,
                                     int format,
                                     wimp_w w,
                                     int x,
                                     int y,
                                     bits file_type,
                                     char *file_name);

typedef void (*drw_autofn_olefilechanged_fn)(char *file_name,
                                             bits file_type,
                                             drw_ole_s session_handle,
                                             wimp_w w,
                                             int x,
                                             int y,
                                             wimp_t sender,
                                             void **oledata,
                                             int *oledatasize,
                                             void *userdata);

typedef void (*drw_olefilechanged_ufn)(char *file_name,
                                       bits file_type,
                                       drw_ole_s session_handle,
                                       wimp_w w,
                                       int x,
                                       int y,
                                       wimp_t sender,
                                       void **oledata,
                                       int *oledatasize);

typedef int (*drw_autofn_discardolesession_fn)(wimp_t sender,
                                               drw_ole_s session_handle,
                                               wimp_w w,
                                               int x,
                                               int y,
                                               void *oledata,
                                               int oleclientsession,
                                               int mustdiscard,
                                               int *fndone,
                                               void *userdata);

typedef int (*drw_discardolesession_ufn)(wimp_t sender,
                                         drw_ole_s session_handle,
                                         wimp_w w,
                                         int x,
                                         int y,
                                         void *oledata,
                                         int oleclientsession,
                                         int mustdiscard);

typedef struct drw_autofn_ole_data      drw_autofn_ole_data;

struct drw_autofn_ole_data {

drw_ole_s olehandle;
bits file_type;
wimp_w whan;
void *datahandle;
char *file_name;
char *clientolename;
wimp_t taskid;
int restartedit;
int format;
wimp_w *w;
void **oledata;
int *oledatasize;
void *oledataptr;
int oleclientsession;
int newsession;
int mustdiscard;
wimp_message *wmsg;

};

#if defined NAMESPACE_DRWIMPC
  }
#endif

#ifndef drwFn00_H
 #include "DRW/drwFn00h.h"
#endif

#include "DRW/drwFn31.h"

#endif

