Metropoli BBS
VIEWER: useapi.pas MODE: TEXT (ASCII)
{*
 *  USEAPI.PAS
 *
 *  Shows the use of the XFSAPI: XFSLIB & XFSFMX
 *
 *}

uses
  WinCrt, WinProcs, XfsApi;

var
  opt:  TMOUNTOPT;
  info: TXFSINFO;
  dev, res: array[0..127] of Char;
  i: Integer;


begin
  if not XfsInstalled then exit;

  { Login }
  WriteLn(XfsLogin(nil, 'speedy', 'guest', 'guest'));

  { Get XFS info }
  XfsNetStat(info);
  WriteLn('Hostname ... ', info.hostname);
  WriteLn('User ....... ', info.username);
  WriteLn('UID ........ ', info.uid );
  WriteLn('GID ........ ', info.gid );
  WriteLn('Umask ...... ', info.umask );

  opt.timeo := 10;      { 10 sec. printing timeo }
  opt.rsize := 1024;
  opt.wsize := 1024;
  opt.retry := MOUNT_DEF_RETRY;
  opt.flags := MOUNT_DEF_OPT;

  { Mount }
  WriteLn(XfsMountDrive('R:', 'speedy', '/', opt));
  WriteLn(XfsMountPrinter('LPT2:', 'speedy', 'lp', opt));

  { Drive Login }
  WriteLn(XfsLogin('R:', 'speedy', 'admin', 'xyz'));

  XfsNetStat(info);
  WriteLn('User ....... ', info.username);
  WriteLn('UID ........ ', info.uid );
  WriteLn('GID ........ ', info.gid );

  { Show used resources }
  i := 0;
  while WGetRedirection(i, dev, res) = 0 do
  begin
    WriteLn( dev, ' ', res);
    inc(i)
  end;

  { Init the File Manager Extension }
  if InitFMX = 0 then exit;

  { Show the mount dialog }
  XfsFMXCall(0, CM_MOUNT);

  { Show the unmount dialog }
  XfsFMXCall(0, CM_UMOUNT);

  DoneFMX;

end.
[ RETURN TO DIRECTORY ]