Вызов подпрограммы 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