//*************************************************************************//
// Filename:    ProcessComm.h
// Autor:       Christian Taulien of Strange Intelligence
// Purpose:     Includefile für alles, was mit der Interprozesskommunikation
//              zu tun hat.
// Creation:    29. März 1998
//*************************************************************************//

#include "global.h"

#include <exec/ports.h>
#include <utility/tagitem.h>

// Tags for the WindowList-Type
#define FLXTAG_WINDOWCOMMAND   TAG_USER + 42
#define FLXTAG_APIMSG          TAG_USER + 43
#define FLXTAG_Left            TAG_USER + 44
#define FLXTAG_Top             TAG_USER + 45
#define FLXTAG_Entries         TAG_USER + 46
#define FLXTAG_KeepPos         TAG_USER + 47

//comands for the window-
#define FLXWINDOWCMD_UNDEFINED  0
#define FLXWINDOWCMD_OPEN       1
#define FLXWINDOWCMD_CLOSE      2
#define FLXWINDOWCMD_UPDATE     3
#define FLXWINDOWCMD_TEXTMODIFY 4
#define FLXWINDOWCMD_CREATED    5

// Tags for the AREXX-Remote
#define FLXTAG_REMOTECOMMAND   TAG_USER + 42
#define FLXTAG_FileName        TAG_USER + 43
//commands for the
#define FLXREMOTECMD_UNDEFINED  0
#define FLXREMOTECMD_RELOADFILE 1

struct FelixMessage : public struct Message
{
  enum { FLXMSG_WINDOWLIST,
         FLXMSG_REMOTECMD,
         FLXMSG_UNKNOWN
       };

  ULONG           m_ulType;
  struct TagItem *m_poTagList;
};

extern void sendMsgToGoldED(char *arg_sCommand, char *arg_sParameter, BOOL arg_bAsync);
extern void SendeNachricht(char *arg_sName, UBYTE arg_uyMsgType, ULONG arg_eTags ...);
extern void SendeNachrichtA(char *arg_sName, UBYTE arg_uyMsgType, struct TagItem *arg_poTagList);
extern void BeendeProzess(void);
extern void StarteProzess(void);

