Access 2002

Использование константы vbNullString


В документации к функциям DLL в одних случаях может быть указано, что функции нужно передать строку, а в других — просто Null. Значение Null — это ноль длиной в 4 байта, помещаемый прямо в стек аргументов. (Подробнее о том, что это значит, рассказывается в разделе «Передача параметров по ссылке и по значению» далее в этой главе.) Пока же главное, что вам нужно усвоить, это то, что для передачи функции значения Null можно воспользоваться константой Visual Basic vbNullString, передаваемой по значению.

Например, функция Windows API под названием SetVolumeLabel назначает логическому диску новую метку. Ее оператор Declare выглядит так:

Если вы хотите присвоить диску С метку DRIVE_C, выполните следующий код: fRet – SetVol umeLabel ("С :\ "DRIVE_C")

Чтобы удалить метку этого же диска, вторым аргументом функции SetVol umeLabel нужно сделать значение Null. VBA не позволяет осуществить это обычным способом, поскольку аргумент lpVolumeName объявлен строковым, но на такой случай в VBA предусмотрено специальное значение vbNullString. С его использованием метка тома удаляется так: fRet – SetVolumeLabel("СЛ". vbNullString)

Иногда в DLL требуется передать данные нестандартного типа. Например, многие функции Windows API принимают в качестве аргументов довольно сложные структуры данных. Такие структуры определяются не языком программирования, а программистами. Одной из широко используемых в Windows структур является RECT, определяющая координаты прямоугольника на экране. Чтобы объявить такую структуру в VBA, нужно сначала определить для нее пользовательский тип данных.

Комментарии закрыты