I was asked to upload this DLL to help others get around some common
problems using Visual basic 3.0.  

In particular, determining what type of drive was being accessed
(or determining if the drive is a CD-ROM drive), and determining 
how much disk space is available.

The function "GetDriveTypeEx" returns the type of drive for the drive
number passed to it.  

The function "GetDiskFreeSpace" returns the amount of disk space free
for the drive number passed to it.

Both functions require that an integer be passed to it.  Valid drive
numbers are 0 (zero) to 25. (i.e. the A drive is drive 0, the C Drive 
is drive 2, etc)

Place the file FNAVWGEN.DLL in your already cluttered \WINDOWS\SYSTEM 
directory  :)

I have included a couple of code snippets to get you started....

Brad Clarke 
CIS - 75474,1557
Internet - bclarke@magi.com

'API Declarations

Declare Function GetDriveTypeEx Lib "FNAVWGEN.DLL" (ByVal nDrive As Integer) As Integer
Declare Function GetDiskFreeSpace Lib "FNAVWGEN.DLL" (ByVal nDrive As Integer) As Long

'Drive type constants (External DLL)
Global Const EX_DRIVE_INVALID = 0
Global Const EX_DRIVE_REMOVABLE = 1
Global Const EX_DRIVE_FIXED = 2
Global Const EX_DRIVE_REMOTE = 3
Global Const EX_DRIVE_CDROM = 4
Global Const EX_DRIVE_FLOPPY = 5
Global Const EX_DRIVE_RAMDISK = 6

'Detect a CD-ROM drive
Function CheckCDROMDrives (ByVal cFileName As String) As Integer
Dim Drive$, DriveNumber As Integer, Result%
    
    CheckCDROMDrives = False

    Drive$ = Left$(cFileName, 1)
    
    DriveNumber = (Asc(UCase(Drive$)) - 65)  'Drive$ must be upper case
    Result% = GetDriveTypeEx(DriveNumber)

    If Result% = EX_DRIVE_CDROM Then
        CheckCDROMDrives = True
    End If

End Function

'Get the free disk space
Dim DriveNumber as Integer
Dim FreeDriveSpace as Long

    DriveNumber = (Asc(UCase(Drive$)) - 65)  'Drive$ must be upper case
    FreeDriveSpace = GetDiskFreeSpace(DriveNumber)

