[Win32Lib] trying to wrap GetDriveType
- Posted by Dan Moyer <danielmoyer at pro?igy?net> Jan 28, 2008
- 799 views
I'm trying to wrap GetDriveType API, and don't really know what I'm doing; here's what I tried, and the result is error: "Couldn't link to C function 'GetDriveType'" Can someone show me how to do it right?? (Below the following code is what I found about "GetDriveType") Dan Moyer
include win32lib.ew integer dummy constant xGetDriveType = registerw32Function(kernel32,"GetDriveType", {C_POINTER},C_LONG ) if w32Func(xGetDriveType, "C:\\")= 2 then -- FAILS HERE, I THINK? puts(1, " REMOVABLE DRIVE") else puts(1, "non removable drive") end if dummy = wait_key()
GetDriveType Function Determines whether a disk drive is a removable, fixed, CD-ROM, RAM disk, or network drive. To determine whether a drive is a USB-type drive, call SetupDiGetDeviceRegistryProperty and specify the SPDRP_REMOVAL_POLICY property. UINT WINAPI GetDriveType( __in_opt LPCTSTR lpRootPathName ); Parameters lpRootPathName The root directory for the drive. A trailing backslash is required. If this parameter is NULL, the function uses the root of the current directory. Return Value The return value specifies the type of drive, which can be one of the following values. Return code/value Description DRIVE_UNKNOWN 0 The drive type cannot be determined. DRIVE_NO_ROOT_DIR 1 The root path is invalid; for example, there is no volume is mounted at the path. DRIVE_REMOVABLE 2 The drive has removable media; for example, a floppy drive, thumb drive, or flash card reader. DRIVE_FIXED 3 The drive has fixed media; for example, a hard drive or flash drive. DRIVE_REMOTE 4 The drive is a remote (network) drive. DRIVE_CDROM 5 The drive is a CD-ROM drive. DRIVE_RAMDISK 6 The drive is a RAM disk. Requirements Client Requires Windows Vista, Windows XP, or Windows 2000 Professional. Server Requires Windows Server 2008, Windows Server 2003, or Windows 2000 Server. Header Declared in WinBase.h; include Windows.h. Library Use Kernel32.lib. DLL Requires Kernel32.dll. Unicode Implemented as GetDriveTypeW (Unicode) and GetDriveTypeA (ANSI).