#define XVT_CC_ENUM_END       127

#define XVT_OS_WIN32 400
#define XVT_OS_LINUX 595

#ifdef WIN32
#define XVT_OS XVT_OS_WIN32
#else
#define XVT_OS XVT_OS_LINUX
#endif

#define XVT_WS_LINUX      301
#define XVT_WS_WIN_95     401
#define XVT_WS_WIN_98     402
#define XVT_WS_WIN_ME     403
#define XVT_WS_WIN_NT     411
#define XVT_WS_WIN_2000   412
#define XVT_WS_WIN_XP     413
#define XVT_WS_WIN_SERVER 414
#define XVT_WS_WIN_VISTA  415

#define XVT_WS_UNKNOWN        0
#define MACWS                 100      /* Apple Macintosh */
#define PMWS                  200      /* IBM OS/2 PM */
#define WIN32WS               300      /* MS Windows 3.1 for NT */
#define WIN16WS               400      /* MS Windows 3.x for Win16 */
#define WMWS                  450      /* Character */
#define MTFWS                 500      /* Motif */
#define XOLWS                 501      /* Open Look */
#define WXGTKWS               107
#define NTWS                  WIN32WS  /* for compatibility with docs */
#define WINWS                 WIN16WS  /* for compatibility with docs */ 

#if defined(WIN32)
  #define XVTWS WIN32WS
#elif defined(LINUX)
  #define XVTWS WXGTKWS
#else
  #define XVTWS XVT_WS_UNKNOWN
#endif

#define ATTR_WIN_BASE 10000
#define ATTR_WIN_CMD_LINE               (ATTR_WIN_BASE + 0)
#define ATTR_WIN_INSTANCE               (ATTR_WIN_BASE + 1)
#define ATTR_WIN_PREV_INSTANCE          (ATTR_WIN_BASE + 2)
#define ATTR_WIN_MDI                    (ATTR_WIN_BASE + 3)
#define ATTR_WIN_FCN_PRINT_INIT         (ATTR_WIN_BASE + 4)
#define ATTR_WIN_PM_CLASS_ICON          (ATTR_WIN_BASE + 5)
#define ATTR_WIN_PM_DRAWABLE_TWIN       (ATTR_WIN_BASE + 6)
#define ATTR_WIN_PM_SPECIAL_1ST_DOC     (ATTR_WIN_BASE + 7)
#define ATTR_WIN_PM_NO_TWIN             (ATTR_WIN_BASE + 8)
#define ATTR_WIN_PM_TWIN_STARTUP_DATA   (ATTR_WIN_BASE + 9)
#define ATTR_WIN_PM_TWIN_STARTUP_MASK   (ATTR_WIN_BASE + 10)
#define ATTR_WIN_PM_TWIN_STARTUP_RCT    (ATTR_WIN_BASE + 11)
#define ATTR_WIN_PM_TWIN_STARTUP_STYLE  (ATTR_WIN_BASE + 12)
#define ATTR_WIN_OPENFILENAME_HOOK      (ATTR_WIN_BASE + 13)
#define ATTR_WIN_POPUP_DETACHED         (ATTR_WIN_BASE + 14)
#define main xvt_main

/****************************************************************************
*   Define Prototyping Information
****************************************************************************/

#define XVT_CC_ARGL(al__)     (
#define XVT_CC_ARG(t__,a__)   t__ a__,
#define XVT_CC_LARG(t__,a__)  t__ a__)
#define XVT_CC_ARGS(al__)     al__
#define XVT_CC_NOARGS()       (void)

/* Default to no linkage conventions in callback typedef */
#define XVT_CALLCONV_TYPEDEF(ret, func, args) \
        ret (* func) XVT_CC_ARGS(args)