tstr
is an ANSI/Unicode string.
lpctstr
is a reference-pass pointer to ANSI/Unicode string.
lptstr
is a reference (in/out) pointer to an ANSI/Unicode string.
Each of these three types automatically switch between ANSI and Unicode, which makes them ideal for use with the
:dbcs
encoding
option in
fli:define-foreign-function
.
This calls
GetDriveTypeA
on Windows ME, and
GetDriveTypeW
on Windows XP/Vista/7.
The argument is passed as ANSI or Unicode respectively:
(fli:define-foreign-function (%get-drive-type "GetDriveType" :dbcs)
((lpRootPathName W:LPCTSTR))
:result-type (:unsigned :int))
(defconstant +drive-types+
#(:unknown :none :removable :fixed :remote :cdrom :ramdisk))
(defun get-drive-information (drive)
(the drive-type (svref +drive-types+ (%get-drive-type drive))))