#ifndef DLLMainH
#define DLLMainH

// Arbitrary size (for demo purposes)
const int MAX_STRLEN = 100;

/*
  This is the structure that will be used to pass
  data between the DLL and the executable
*/
struct FormData
{
  int  map;
  int  spectre;     // bool
  int  arachnotron; // bool
  int  mancubus;    // bool
  int  spectre_count;
  int  arachnotron_count;
  int  mancubus_count;
  char title[MAX_STRLEN];
  char description[MAX_STRLEN];
};

// So the DLL can call into the EXE with the data
typedef void (*DLL_CALLBACK)(FormData *data);

// This is the "interface" between the EXE and the DLL
extern "C" __declspec(dllexport) __stdcall void CreateForm(DLL_CALLBACK);
extern "C" __declspec(dllexport) __stdcall void ShowForm(int);
extern "C" __declspec(dllexport) __stdcall void GetData(FormData *);

#endif