Андрей Колесов
Dan Appleman. Dan Appleman’s VB 5.0 Programmer’s Guide to the Win32 API. Macmillan Computer Publishing/Ziff-Davis Press, 1997. 1548 с., компакт-диск. ISBN: 1-56276-446-2. Стоимость в США - 60 долл.
Автор этой книги Дэн Эпплман - очень авторитетная личность среди мирового сообщества VB-программистов. Прежде всего он сам разработчик множества дополнительных продуктов для VB. Компания Desaware, созданная и руководимая им, занимает довольно заметное место на рынке вспомогательных VB-инструментов. Однако наибольшую известность Дэн получил как автор многочисленных статей и нескольких книг, посвященных анализу развития VB-разработок, а также как активный участник различных конференций.
Одна из коронных тем Эпплмана - использование API-функций. Впервые появившаяся в начале 90-х годов, его книга о Win16 API для VB на протяжении нескольких лет пользовалась огромной популярностью среди VB-программистов. Она исчезла из списка бестселлеров только в 1995 г. после выхода его же новой книги - о Win32 API и VB 4.0. Спустя два года издательство Ziff-Davis выпустило ее расширенный вариант, в котором, в частности, описаны новые возможности использования API-функций, появившихся в VB 5.0. Именно об этой книге и пойдет речь ниже.
Имеющиеся в ОС функции API позволяют расширять встроенные возможности любого инструмента разработки. Это может выражаться либо в ускорении выполнения уже имеющихся языковых средств, либо в поддержке операций, ранее отсутствовавших в данной системе. (В этом плане Win API являются для Windows той же функциональной базой, что и системные функции DOS/BIOS для DOS.) Применение Win API при программировании на VB всегда было особенно актуально, так как это позволяло компенсировать ограничения VB по сравнению с системами на базе Си или Паскале.
В принципе, использованию Win API посвящено немало книг, не говоря уже о том, что полное описание этих функций для 32-разрядных систем приведено в Microsoft Win32 Software Development Kit. Однако при работе с ними возникают определенные проблемы. Во-первых, это связано с огромным числом функций (около полутора тысяч, не считая десятков различных операций для каждой функции), в то время как на практике количество наиболее актуальных процедур гораздо уже (классический закон статистики - двадцать из восьмидесяти). Во-вторых, абсолютное большинство описаний ориентируется на Си-программистов и не учитывает специфики VB: это касается как функциональных, так и чисто терминологических особенностей VB.
Книга Дэна Эпплмана решает, и весьма успешно, эти две проблемы, являясь одновременно и достаточно полным систематизированным справочником по API-функциям, и пособием по VB-программированию. Она содержит 20 глав (четыре части), пять приложений и предметный указатель с перечнем функций, который занимает 60 страниц.
Первая часть (четыре главы) посвящена очень важным методическим вопросам построения Windows и технологии использования API и DLL в среде VB. Этот раздел относительно небольшой (133 стр.), но исключительно полезный. Особенно детально в нем рассмотрены описатели (handles) внутренних объектов Windows, принципы описания DLL-функций (частным случаем которых являются API), передача параметров, методы отладки, принципы перехода от 16- к 32-разрядным API, согласование Си- и VB-терминологии и многие другие вопросы. Весь материал сопровождается наглядными схемами, таблицами и примерами. В силу различных причин в VB невозможно непосредственное использование ряда API-функций. Поэтому особый интерес представляет обсуждение методов преодоления подобных ограничений с помощью дополнительных средств, некоторые из них приведены на компакт-диске.
Во второй части книги (11 глав, более 1100 стр.) приведены API-функции с краткими примерами их применения. В ней представлены и те операции, которые недоступны для VB. Это позволяет разработчику лучше ориентироваться в ограничениях VB-среды и облегчает оценку целесообразности выхода за ее пределы.
В третьей части книги (три главы) обсуждаются возможности управления внутренними объектами Windows с помощью прямых установок параметров - Windows Messages. В четвертой части (две главы) содержатся расширенные примеры практического применения API-функций. В приложениях приведены различные дополнительные справочные данные о типах данных, форматах файлов и пр.
Прилагаемый к книге компакт-диск содержит полный текст книги и все программные примеры, а также три главы (Serial Communications, Network Functions и API Types Libraries), которые не вошли в печатный вариант. Кроме того, там находятся ряд отдельных статей автора и большое число вспомогательных программ и демоверсии некоторых дополнительных продуктов.
Книга написана очень хорошим языком без витиеватостей, которые иногда встречаются у американских авторов (почему-то чаще всего - у представительниц прекрасной половины человечества). Уверен, что для понимания содержания книги будет вполне достаточно сведений на уровне школьной программы по информатике. Если же и таких знаний нет, то книга послужит хорошим стимулом для их приобретения.
С автором статьи можно связаться по E-mail: akolesov@glasnet.ru.