Вызов подпрограммы Win32 API
После описания подпрограмм необходимо вызвать их. Обратиться к функции Win32 API настолько же просто, как и вызвать собственную функцию или подпрограмму. Необходимо только следовать следующим правилам:
Правильно описать используемые в подпрограмме переменные
Правильно обработать возвращаемые функцией значения
В программе показан вызов функции, которая определяет тип дисковода, заданного символом "F". Обратите внимание, как передается в функцию строка, как возвращаемое функцией значение записывается в переменную типа Long, и как используется блок Case... Select для обработки всех возвращаемых значений.
' Значения, возвращаемые функцией GetDriveTypePublic Const DRIVE_REMOVABLE = 2'Public Const DRIVE_FIXED = 3Public Const DRIVE__REMOTE = 4Public Const DRIVE_CDROM = 5.Public Const DRIVE_RAMDISK = 6Declare Function GetDriveType Lib "kerne132" Alias "GetDriveTypeA" (ByVal nDrive As String) As LongPublic Sub DisplayDriveType ()Dim sDriveLetter As String Dim lDriveType As LongsDriveLetter = "F:"lDriveType = GetDriveType (sDriveLetter)Select Case lDriveTypeCase DRIVE_REMOVABLEDebug.Print "Дисковод ", sDriveLetter, " используется для чтения дискет."Case DRIVE_FIXEDDebug.Print "Диск ", sDriveLetter, " - жесткий диск."Case DRIVE_REMOTEDebug.Print "Диск ", sDriveLetter, " - сетевой диск."Base DRIVE_CDROMDebug.Print "Дисковод ", sDriveLetter, "используется для чтения компакт-дисков."Case DRIVE__RAMDISKDebug.Print "Диск ", sDriveLetter, " - виртуальньй диск."Case ElseDebug.Print "Ошибка вызова функции."End SelectEnd SubИспользование строк в качестве возвращаемых значений
Ранее рассматривалось, как передать строки в качестве параметров функций Win32 API. Для использования строки в качестве возвращаемого подпро-граммой значения, необходимо передать в функцию строковую переменную, чтобы сама функция установила значение этой переменной.
Рассмотрим функцию GetTempPath (), используемую для определения папки, в которой Windows хранит промежуточные данные. Вызов функции. GetTempPath () является следующим:
return = GetTempPath (PathLength, Path)
Функция записывает в переменную Path путь к папке, в которой хранятся промежуточные данные. Например, в следующем фрагменте в окно отладки. выводится текущий путь к папке с временной информацией:
Return = GetTempPath (len (ThePath) , ThePath)
Debug.Print ThePath