summaryrefslogtreecommitdiff
path: root/win32.mod/win32.bmx
blob: 8f0068f9991b28a5e0fdb66d782616439938ca74 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
Rem
bbdoc: noddybox.win32
EndRem
Module noddybox.win32

ModuleInfo "Framework: Some routines I wanted from the Windows API"
ModuleInfo "Copyright: Public Domain"
ModuleInfo "Author: Ian Cowburn"
ModuleInfo "Version: $Revision$"

' $Id$

Strict

?Win32
Import "noddybox.win32.c"
?

Rem
bbdoc: Returned from GetDriveType() for unknown types.
EndRem
Const DRIVETYPE_UNKNOWN:Int=0
Rem
bbdoc: Returned from GetDriveType() for invalid root paths.
EndRem
Const DRIVETYPE_NO_ROOT_DIR:Int=1
Rem
bbdoc: Returned from GetDriveType() for removeable drives.
EndRem
Const DRIVETYPE_REMOVABLE:Int=2
Rem
bbdoc: Returned from GetDriveType() for fixed drives.
EndRem
Const DRIVETYPE_FIXED:Int=3
Rem
bbdoc: Returned from GetDriveType() for networked drives.
EndRem
Const DRIVETYPE_REMOTE:Int=4
Rem
bbdoc: Returned from GetDriveType() for CD-ROM drives.
EndRem
Const DRIVETYPE_CDROM:Int=5
Rem
bbdoc: Returned from GetDriveType() for RAM disks.
EndRem
Const DRIVETYPE_RAMDISK:Int=6

Rem
bbdoc: Returns a bitmask of the drives on the system
about: Returns a bitmask where a bit set indicates the presence of a drive letter.  Bit 0 is A:, 1 is B: and so on.
about: On Linux and MacOS should return 0.
EndRem
Function W32GetLogicalDrives:Int()
	Return W32GetLogicalDrives_C()
End Function

Rem
bbdoc: Returns a drive type
about: Returns a DRIVETYPE_ constants given a root path in @root
about: On Linux and MacOS should return DRIVETYPE_UNKNOWN.
EndRem
Function W32GetDriveType:Int(root:String)
	Return W32GetDriveType_C(root.ToCString())
End Function

Private

?Win32
Extern
	Function W32GetLogicalDrives_C:Int()

	Rem
	bbdoc: Returns a drive type
	about: Returns a DRIVETYPE_ constants given a root path in @root
	about: On Linux and MacOS should return DRIVETYPE_UNKNOWN.
	EndRem
	Function W32GetDriveType_C:Int(root:Byte Ptr)
EndExtern
?Linux
Function W32GetLogicalDrives_C:Int()
	Return 0
End Function
Function W32GetDriveType_C:Int(root:Byte Ptr)
	Return DRIVETYPE_UNKNOWN
End Function
?MacOS
Function W32GetLogicalDrives_C:Int()
	Return 0
End Function
Function W32GetDriveType_C:Int(root:Byte Ptr)
	Return DRIVETYPE_UNKNOWN
End Function
?