Веретенников Александр Борисович
Аспирант кафедры вычислительной математики
Уральского государственного университета им. А. М. Горького.
Научный руководитель: д. ф.-м. н. Пименов Владимир Германович.

Библиотека для создания оконных интерфейсов на любых скриптовых языках в операционной системе Windows.

На сегодняшний день широкое развитие получили различные сценарные (скриптовые) языки, такие как JScript, VBScript, Perl. Эти языки обладают большими возможностями и могут применяться для решения самых различных задач: системное администрирование, обработка текстов и т. д. Самая простая операционная система использует конфигурационные файлы, являющиеся простейшим видом сценария, например пакетные bat-файлы в DOS, cmd-файлы Windows NT, командные процессоры Un*x. Windows  Script Host (WSH) в Windows развивает эту идею, позволяя создавать пакетные файлы на языках JScript или VBScript. При создании программ на сценарных языках отсутствуют проблемы, связанные с управлением памятью, созданием и управлением COM объектами.
К сожалению, сценарные языки не имеют встроенных средств для создания оконных интерфейсов, для вывода результатов работы программы используется в основном консольные интерфейсы. Как правило, средства для создания оконных интерфейсов исчерпываются только функциями для создания типового окна для вывода сообщения с несколькими кнопками «OK», «Отмена» … Некоторые сценарные среды используют библиотеку Tcl/Tk, однако ее возможности сильно ограничены.
Это потребовало создания дополнительного инструментария для решения подобных задач.
Разработанная автором библиотека WindowSystemObject (WSO) предназначена для обеспечения доступа к оконной подсистеме Windows на базе архитектуры COM, для создания оконных интерфейсов в программах, написанных на сценарных языках, а также в программах, написанных на других языках и в других системах программирования. 
WSO распространяется бесплатно и доступно по адресу http://cs.usu.edu.ru/home/abv/.

Основные достоинства WSO:

•	WSO обеспечивает полный доступ ко всем возможностям оконной системы, включая рисование в окнах, поддержку всех встроенных управляющих элементов Windows и встроенных диалоговых окон. 
•	WSO поддерживает использование любых элементов ActiveX, таких как Internet Explorer или Windows Media Player. 
•	WSO поддерживает работу со всеми популярными форматами графических файлов. 
•	WSO доступен из любого языка программирования, поддерживающего COM-интерфейсы автоматизации. 
•	Доступ к WSO осуществляется с помощью интуитивно понятной объектной модели. Программисты, знакомые с оконным программированием для Windows, быстро обнаружат, что ничего нового им осваивать не нужно. 
•	WSO обеспечивает полную поддержку обработки событий от оконных элементов. Разработана трехуровневая модель задания обработчиков событий.
•	WSO работает в любой современной версии Windows, а именно: 98SE, ME, NT 4, 2000, XP, 2003, Vista, 2008.

Большое количество примеров использования WSO подтверждает универсальность разработанного программного обеспечения. Написаны примеры использования WSO в JScript, VBScript, Perl, Pascal (Delphi), Java, Python, HTML, WSH, WSC.
При создании интерфейса необходимо не только создать форму и на ней кнопку, но жизненно важно определить действия, которые будут происходить при нажатии на эту кнопку. В WSO существует развитая система задания обработчиков различных событий, предусматривающая три уровня: 

•	Базовый уровень 
•	Уровень непосредственного определения 
•	Уровень списков обработчиков

Эти три уровня позволяют задавать обработчики событий для WSO почти в любом языке программирования.
Не приходится сомневаться в том, что данная разработка будет востребована многими разработчиками и администраторами систем Windows. 

Список литературы

1.	Microsoft Platform SDK.
2.	MSDN Library.
3.	Дональд Бокс. Сущность технологии СОМ. Библиотека программиста. СПб.:Питер, 2001. 
4.	George Shepherd, Brad King. Inside ATL. Microsoft Press, 1999. 
5.	Дейл Роджерсон. Основы COM. Microsoft Press, 1991. 
6.	C. Petzold. Programming Windows® 95. Microsoft Press, 2000.
7.	П. Дарахвелидзе, Е. Марков. Программирование в Delphi 4. СПб.: БХВ – Санкт-Петербург, 1999. 
8.	Джефф Элджер. C++: библиотека программиста – СПб.: Питер, 2001.