Metropoli BBS
VIEWER: xfsapi.h MODE: TEXT (ASCII)
/*
 *  $Id: xfsapi.h,v 1.85 1994/10/4 17:33:25 xfs Exp $
 *  $Source: /home/xfs/project/win/RCS/xfsapi.h,v $
 *
 *  XFSAPI.H - Interface to XFSLIB.DLL & XFSFMX.DLL
 *  Borland C++ Version
 *
 *  Copyright (C) 1994 Robert Juhasz
 */

#ifndef _XFSAPI_H
#define _XFSAPI_H
#include <windows.h>

// Mount defaults
#define  MOUNT_MAX_RSIZE  1280
#define  MOUNT_MAX_WSIZE  1280
#define  MOUNT_MAX_FWSIZE 8192     // for XFS IPF
#define  MOUNT_DEF_RETRY  4

// MOUNT flags
#define  MOUNT_OPT_RO      1       // read-only
#define  MOUNT_OPT_MAP     2       // 8+3 mapping
#define  MOUNT_OPT_UPPER   4       // uppercase mapping (for CD-ROMS's)

#define  MOUNT_DEF_OPT     MOUNT_OPT_MAP        // my default option

// XfsFMXCall calls
#define  CM_MOUNT          1       // FMX mount
#define  CM_UMOUNT         2       // FMX umount
#define  CM_LOGIN          3       // FMX login
#define  CM_LOGOUT         4       // FMX logout
#define  CM_INFO           5       // FMX info

// Error codes
// inet
#define  ECONN          (-1)             // can't connect (generic)
#define  ENETUNREACH    (-2)             // network unreachable
#define  EHOSTUNREACH   (-3)             // host unreachable
#define  EPROTUNREACH   (-4)             // unknown protocol
#define  EPORTUNREACH   (-5)             // unknown port
#define  ESOCK          (-10)            // bad socket descriptor
#define  ENOSOCK        (-11)            // out of socket descriptors
#define  ETIMEO         (-12)            // connection timeout

// arp
#define  EARPTIMEO      (-51)           // ARP timeout
#define  EARPUNREACH    (-52)           // local host not responding

// host
#define  EHOSTIO        (-200)          // 'hosts' file not found
#define  EHOSTNOENT     (-201)          // host not found

// (u)mount
#define  EMOUNT         (-300)          // can't mount/umount(given by server)

// pcnfsd
#define  EPCACCES       (-400)          // authentication failure
#define  EPCNOPRN       (-401)          // unknow printer
#define  EPCFAIL        (-402)          // failed initialization

// portmap
#define  EPMPORT        (-500)          // port not found

// DPMI
#define  EDOSMEM        (-600)          // can't allocate lower DOS mem

// Redirector (positive values)
#define  EDUP            0x55         // Duplicate redirections
#define  EDRIVE          0x0f         // Drive/device invalid
#define  EMEM            0x08         // insuficient memory in redirector
#define  EFUNC           0x01         // invalid operation


// Mount options struct
typedef struct tagTMOUNTOPT
{
  UINT timeo;   // seconds, for printers only
  UINT rsize;
  UINT wsize;
  UINT retry;
  UINT flags;
} MOUNTOPT;
typedef MOUNTOPT FAR* LPMOUNTOPT;

// XFS Host info
typedef struct tagTXFSINFO
{
  WORD version;           // XFS version, eg. 0x0177 for 1.77 or 0x8177 for 1.77IPF
  char hostname[64];      // Host name
  LONG ip_addr;           // Hostname's IP address
  LONG sm_addr;           // Subnet mask
  LONG gw_addr;           // Gateway IP address
  LONG pc_addr;           // PCNFSD IP address
  char username[64];      // User name
  WORD uid;               // User ID
  WORD gid;               // Group ID
  WORD umask;             // File creation mask
} XFSINFO;
typedef XFSINFO FAR* LPXFSINFO;


#ifdef __cplusplus
extern "C" {
#endif

// XFSLIB

BOOL WINAPI XfsInstalled(VOID);
int  WINAPI XfsMountDrive(LPSTR localdrive, LPSTR host, LPSTR filesystem, LPMOUNTOPT options);
int  WINAPI XfsMountPrinter(LPSTR localdrive, LPSTR host, LPSTR printer, LPMOUNTOPT options);
int  WINAPI XfsUmount(LPSTR localdrive);
int  WINAPI XfsFlush(LPSTR printer);
int  WINAPI XfsLogin(LPSTR localdrive, LPSTR host, LPSTR name, LPSTR password);
VOID WINAPI XfsLogout(LPSTR localdrive);
VOID WINAPI XfsNetStat(LPXFSINFO info);
WORD WINAPI XfsUmask(WORD mask);
UINT WINAPI WGetRedirection(UINT index, LPSTR device, LPSTR resource );

// XFSFMX

LONG WINAPI InitFMX(VOID);
LONG WINAPI XfsFMXCall( HWND Handle, WORD call);
VOID WINAPI DoneFMX(VOID);

#ifdef __cplusplus
}
#endif	/* __cplusplus */

#endif
[ RETURN TO DIRECTORY ]