summaryrefslogtreecommitdiff
path: root/win32.mod/win32.bmx
blob: 11b65120e9880aeee6eaf770d267df8a990eb8a1 (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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
' Copyright (c) 2006 Ian Cowburn
' 
' Permission is hereby granted, free of charge, to any person obtaining a copy of
' this software and associated documentation files (the "Software"), to deal in
' the Software without restriction, including without limitation the rights to
' use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
' of the Software, and to permit persons to whom the Software is furnished to do
' so, subject to the following conditions:
' 
' The above copyright notice and this permission notice shall be included in all
' copies or substantial portions of the Software.
' 
' THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
' IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
' FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
' AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
' LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
' OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
' SOFTWARE.
' 
' $Id$
'
Rem
bbdoc: noddybox.win32
EndRem
Module noddybox.win32

ModuleInfo "Framework: Some routines I wanted from the Windows API"
ModuleInfo "Copyright: Ian Cowburn -- Released under the MIT License"
ModuleInfo "Author: Ian Cowburn"
ModuleInfo "Version: $Revision$"

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
?