/*  $DOC$
 *  $FUNCNAME$
 *      NETCANCEL()
 *  $CATEGORY$
 *      HBCT net functions
 *  $ONELINER$
 *      Releases the redirection of a local device
 *  $SYNTAX$
 *      NETCANCEL(<cLocalDevice>) --> lReleased
 *  $ARGUMENTS$
 *      <cLocalDevice>  Designates the name for the local device, for which
 *      an existing redirection in the network is released.
 *  $RETURNS$
 *      NETCANCEL() returns .T. when a redirection existed for the designated
 *      device and it was released.
 *  $DESCRIPTION$
 *      NETWORK CANCEL REDIRECTION
 *      With NETCANCEL(), an existing redirection for a local device can be
 *      released.  You call the function by simply specifying the device name,
 *      d: or LPTn:.
 *
 *      If the return value is .F., the device did not exist or was not
 *      previously redirected.
 *  $EXAMPLES$
 *      Make LPT1 redirected printer devices local
 *
 *      NETCANCEL("LPT1:")
 *  $TESTS$
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is Clipper tools compliant.
 *  $PLATFORMS$
 *      WINDOWS
 *  $FILES$
 *      Source is ctnet.c, library is ct.
 *  $SEEALSO$
 *      NETREDIR(),NETLOCNAME()
 *  $END$
 */
/*  $DOC$
 *  $FUNCNAME$
 *      NETPRINTER()
 *  $CATEGORY$
 *      HBCT net functions
 *  $ONELINER$
 *      Determines whether the current printer is a local or network printer.
 *  $SYNTAX$
 *      NETPRINTER() --> lServerPrinter
 *  $ARGUMENTS$
 *      None
 *  $RETURNS$
 *      NETPRINTER() returns .T. when the printer installed using the xHarbour
 *      SET PRINTER TO <LPTn> command has been redirected onto a network server.
 *  $DESCRIPTION$
 *      NETWORK PRINTER
 *      This function allows you to determine if the printer installed using the
 *      xHarbour SET PRINTER TO <LPTn> command is local or resides on a
 *      network server.
 *  $EXAMPLES$
 *      Determine whether LPT1 and LPT2 are local or remote:
 *
 *      SET PRINTER TO LPT1
 *      ? NETPRINTER()                        // .F., local printer
 *      SET PRINTER TO LPT2
 *      NETREDIR("LPT2:","\\COMPUTER\PRINTER")
 *      ? NETPRINTER()                        // .T., network printer
 *  $TESTS$
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is Clipper tools compliant.
 *  $PLATFORMS$
 *      WINDOWS
 *  $FILES$
 *      Source is ctnet.c, library is ct.
 *  $SEEALSO$
 *      NETREDIR(),NETDISK()
 *  $END$
 */
/*  $DOC$
 *  $FUNCNAME$
 *      NETDISK()
 *  $CATEGORY$
 *      HBCT net functions
 *  $ONELINER$
 *      Determines whether a drive is local or resident on the server
 *  $SYNTAX$
 *      NETDISK(<cDrive>) --> lServerDrive
 *  $ARGUMENTS$
 *      <cDrive>  Designates the drive that is tested in a range from A to Z.
 *  $RETURNS$
 *      NETDISK() returns .T. when the specified drive is a network drive.
 *  $DESCRIPTION$
 *      NETWORK DISK
 *      This function allows you to determine if a drive in the range of A: to
 *      Z: is local or remote.  Remote means that a drive is actually resident
 *      on a file server and that the local device address has been redirected
 *      through DOS.
 *  $EXAMPLES$
 *      Test all drives to determine if they are local or resident on the
 *      server:
 *
 *      FOR I = ASC("A") TO ASC("Z")
 *          ? NETDISK(CHR(I))
 *      NEXT I
 *  $TESTS$
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is Clipper Tools compliant.
 *  $PLATFORMS$
 *      WINDOWS
 *  $FILES$
 *      Source is ctnet.c, library is ct.
 *  $SEEALSO$
 *      NETREDIR(),NETPRINTER()
 *  $END$
 */
/*  $DOC$
 *  $FUNCNAME$
 *      NETREDIR()
 *  $CATEGORY$
 *      HBCT net functions
 *  $ONELINER$
 *      Redirects a local device to a server device
 *  $SYNTAX$
 *      NETREDIR(<cLocalDevice>, <cServerDevice>, [<cPassword>], [<lShowError>] ) --> lRedirection
 *  $ARGUMENTS$
 *      <cLocalDevice>  Designates the name of the local device (LPTn:,
 *      PRN:, or d:).
 *
 *      <cServerDevice>  Designates the complete path for the server
 *      (\\<Servername>\<Devicename>).
 *
 *      <cPassword>  Can designate a password when it is required by the
 *      server.
 *
 *      <lShowError> If true shows an alert box if any error ocurrs. the default
 *                   is false. This parameter is a xHarbour's extension.
 *  $RETURNS$
 *      NETREDIR() returns .T. when the specified local device has been
 *      redirected to the selected server device.
 *  $DESCRIPTION$
 *      NETWORK REDIRECTION
 *      Under PC LAN/MS-NET, server devices can be redirected to local devices
 *      using the NET USE <local> <remote> command.  Exactly the same thing can
 *      be accomplished using the NETREDIR() function from within an
 *      application. The function returns .T. when the redirection has been
 *      carried out. A return of .F. could occur for several reasons:
 *
 *      The device is not available on the server.  Use NET USE or NET SHARE
 *      on the selected server to review all the devices available there.
 *
 *      The server device is unavailable.
 *
 *      The server device name is wrong.
 *
 *      The password is incorrect or does not exist.
 *
 *      Too many devices have already been allocated.  In this instance you must
 *      change some of the flags with the NET START command. See PC LAN/MS-NET manual.
 *  $EXAMPLES$
 *      Create a new drive H:
 *
 *      ? NETREDIR("H:", "\\SERVER\DRIVEC")            // .T. if OK
 *
 *      In this example, the server device asks for a password:
 *
 *      ? NETREDIR("H:", "\\SERVER\DRIVEC", "SECRET")  // .T. if OK
 *
 *      Allocate a server printer to LPT2:
 *
 *      ? NETREDIR("LPT2:", "\\SERVER\PRINTER")        // .T. if OK
 *  $TESTS$
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is Clipper tools compliant.
 *  $PLATFORMS$
 *      WINDOWS
 *  $FILES$
 *      Source is ctnet.c, lib is ct.
 *  $SEEALSO$
 *      NETCANCEL(),NETLOCNAME(),NETRMTNAME()
 *  $END$
 */
/*  $DOC$
 *  $FUNCNAME$
 *      NETRMTNAME()
 *  $CATEGORY$
 *      HBCT net functions
 *  $ONELINER$
 *      Determines the name of a server device for a local device
 *  $SYNTAX$
 *      NETRMTNAME(<cLocalDevice>) --> cServerDevice
 *  $ARGUMENTS$
 *      <cLocalDevice>  Designates the local devie name.
 *  $RETURNS$
 *      NETRMTNAME() returns the local device name for the designated location in the
 *      DOS redirection table (<cLocalDevice>), or a null string if no name is available.
 *  $DESCRIPTION$
 *      NETWORK REMOTE NAME
 *      Under PC LAN/MS-NET server devices can be redirected to local devices
 *      using the NET USE <local> <remote> command. In this way, NETRMTNAME()
 *      allows you to determine the server device that have been redirected to
 *      a local device.
 *
 *      Note
 *
 *      Using NETLOCNAME() allows you to determine the name of the
 *      corresponding local device.
 *  $EXAMPLES$
 *      Determine the server device used by the local device:
 *
 *      ?  NETRMTNAME( "F:" ) // Display server device
 *  $TESTS$
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is Clipper tools compliant.
 *  $PLATFORMS$
 *      WINDOWS
 *  $FILES$
 *      Source is ctnet.c, lib is ct.
 *  $SEEALSO$
 *      NETLOCNAME()
 *  $END$
 */
/*  $DOC$
 *  $FUNCNAME$
 *      NETWORK()
 *  $CATEGORY$
 *      HBCT net functions
 *  $ONELINER$
 *      Tests to see if a network is active
 *  $SYNTAX$
 *      NETWORK() --> lActiveNet
 *  $ARGUMENTS$
 *      None
 *  $RETURNS$
 *      NETWORK() returns .T. when a PC LAN/MS-NET or a Novell network is
 *      available.
 *  $DESCRIPTION$
 *      With NETWORK(), you can determine whether or not an IBM PC LAN/MS-NET or
 *      Novell network is available and active.  Using NNETWORK() allows you to
 *      further differentiate to see if you are dealing with a Novell network.
 *  $EXAMPLES$
 *      Test to see if one of the two networks is available:
 *
 *      IF NETWORK()
 *         IF !NNETWORK()
 *            // This is a PC LAN/MS-NET network.
 *         ELSE
 *            // This is a Novell network.
 *         ENDIF
 *      ENDIF
 *  $TESTS$
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is Clipper tools compliant.
 *  $PLATFORMS$
 *      WINDOWS
 *  $FILES$
 *      Source is ctnet.c, library is ct.
 *  $SEEALSO$
 *      NNETWORK()
 *  $END$
 */
/*  $DOC$
 *  $FUNCNAME$
 *      NNETWORK()
 *  $CATEGORY$
 *      HBCT net functions
 *  $ONELINER$
 *      Determines whether or not a Novell network is active
 *  $SYNTAX$
 *      NNETWORK() --> lNovellNetActive
 *
 *      Netware: 2.2 and 3.11
 *  $ARGUMENTS$
 *      None
 *  $RETURNS$
 *      NNETWORK() returns .T. when you are working in a Novell network.
 *  $DESCRIPTION$
 *      NOVELL NETWORK
 *      With NNETWORK(), you can determine if you are working with a Novell
 *      network.
 *
 *      Note
 *
 *      This function only tests to see if a Novell shell (requestor)
 *      has been loaded.
 *  $EXAMPLES$
 *      Determine if there a Novell network, version => 2.0/ELS I that is
 *      active:
 *
 *      IF NNETWORK()
 *         ...
 *      ENDIF
 *  $TESTS$
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is Clipper tools compliant.
 *  $PLATFORMS$
 *      WINDOWS
 *  $FILES$
 *      Source is ctnet.c, library is ct.
 *  $SEEALSO$
 *      NETWORK()
 *  $END$
 */
