/* DRW ole definitions. */

#ifndef drwOle_H
 #define drwOle_H

#ifndef ole_H
 #include "OSLib/ole.h"
#endif

#if defined NAMESPACE_DRWIMPC
  namespace DrWimpC {
#endif

#if defined NAMESPACE_OSLIB
  using namespace OSLib;
#endif

#define DRW_OLE_Version              0x47B00
#define DRW_OLE_SimulateSession      0x47B05

typedef bits   drw_session_type_flags;

#define drw_ole_unassigned_session   ((drw_session_type_flags) 0x0u)
#define drw_ole_client_session       ((drw_session_type_flags) 0x1u)
#define drw_ole_server_session       ((drw_session_type_flags) 0x2u)
#define drw_ole_isbeing_edited       ((drw_session_type_flags) 0x4u)
#define drw_ole_using_supp_mod       ((drw_session_type_flags) 0x8u)
#define drw_ole_using_myole_mod      ((drw_session_type_flags) 0x10u)
#define drw_ole_ignore_x_and_y       ((drw_session_type_flags) 0x20u)

typedef bits drw_ole_mod_type;

#define drw_ole_mod_type_none        ((drw_ole_mod_type) 0x0u)
#define drw_ole_mod_type_olesupp     ((drw_ole_mod_type) 0x1u)
#define drw_ole_mod_type_myole       ((drw_ole_mod_type) 0x2u)
#define drw_ole_mod_type_other       ((drw_ole_mod_type) 0x4u)

#define drw_use_def_ole_retry_limit  -1
#define drw_use_ole_curr_retry_limit -2

typedef struct drw_ole_search_data   drw_ole_search_data;
typedef struct drw_ole_data          drw_ole_data;


struct drw_ole_search_data {

wimp_t sender;
drw_ole_s session_handle;
bits ftype;
wimp_w w;
os_coord pos;
drw_session_type_flags session_types;

};


struct drw_ole_data {

wimp_t sender;
drw_session_type_flags session_type;
void *oledata;
int oledatasize;
ole_message_open_session olessn;
void *datahandle;
int maxretries;
int retries;

};

#include "DRW/drwolefn.h"

#if defined NAMESPACE_DRWIMPC
  }
#endif

#endif

/* End of DRW ole definitions. */

