Реферат история развития операционной системы windows

История развития операционных систем Windows

Введение

Современная операционная система — это сложный комплекс программных средств, предоставляющих пользователю не только стандартизированный ввод-вывод информации и управление программами, но и упрощающий работу с компьютером. Программный интерфейс операционных систем позволяет уменьшить размер конкретной программы, упростить ее работу со всеми компонентами вычислительной системы.

Известно, что операционные системы приобрели современный облик в период развития третьего поколения вычислительных машин, то есть с середины 60-х до 1980 года. В это время существенное повышение эффективности использования процессора было достигнуто за счет реализации многозадачности.

Операционная система Windows — наиболее распространенная операционная система, и для большинства пользователей она наиболее подходящая ввиду своей простоты, неплохого интерфейса, приемлемой производительности и огромного количества прикладных программ для нее.

Системы Windows прошли сложный путь от примитивных графических оболочек до вполне современных операционных систем. Разрабатывать менеджер интерфейса (Interface Manager, впоследствии — Microsoft Windows) Microsoft начала в сентябре 1981 года. Хотя первые опытные образцы были выполнены на основе так называемых Multiplan- и Word-like-меню, в 1982 году элементы интерфейса успешно были изменены на ниспадающие меню и диалоговые окна.

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

1. Краткая история развития операционных систем Windows

В настоящее время наибольшее распространение получили графические операционные системы семейства Windows корпорации Microsoft. В 2005 году семейство Windows отмечало свое двадцатилетие.

Они непрерывно совершенствуются, поэтому каждая новая версия имеет дополнительные возможности.

Первая версия этой операционной системы — Windows 1.0 увидела свет в ноябре 1985 года. Windows 1.0 «умела» совсем немного и была скорее графической оболочкой для MS-DOS, однако эта система позволяла пользователю запускать несколько программ одновременно. Главным неудобством при работе с Windows 1.0 было то, что открытые окна не могли накладываться друг на друга (чтобы увеличить размеры одного окна, приходилось уменьшать размеры находящегося рядом). Кроме того, для Windows 1.0 было написано слишком мало программ, поэтому данная система не получила широкого распространения.

Windows 3.1 (1992 г.), Windows for Workgroups 3.11 (1993 г.) — это популярные в прошлом графические операционные оболочки, работающие под управлением операционной системы MS DOS и использующие на нижнем уровне встроенные функции и процедуры данной ОС. Это объектно-ориентированные приложения, основу которых составляет иерархически организованная система окон.

Windows NT (1993 г.) — это многопользовательская и масштабируемая сетевая операционная система для персональных компьютеров, поддерживающая архитектуру «клиент-сервер» и включающая свою систему безопасности. Она может взаимодействовать с различными операционными системами как корпорации Microsoft, так и других фирм(например, MacOS или UNIX), установленными на однопроцессорных и многопроцессорных компьютерах, построенных на базе CISC- или RISC- технологий.

Windows 95 — это многозадачная и многопотоковая 32-битная операционная система с графическим интерфейсом. Система полностью поддерживает 16-битные приложения, созданные для MS DOS. Это интегрированная мультимедийная среда для обмена текстовой, графической, звуковой и другой информации.

Windows 98 являлась логическим развитием Windows 95 в сторону большей производительности работы компьютера без добавления в него нового оборудования. Система включает ряд программ, совместное применение которых повышает производительность компьютера и позволяет более эффективно использовать web-ресурсы сети Интернет за счет применения новых мультимедийных возможность операционных систем.

Windows 2000 — это сетевая операционная система следующего поколения, оснащенная усовершенствованными средствами много-процессорной обработки и эффективной защиты информации. Реализованная функция работы с файлами в автономном режиме позволяет отбирать сетевые файлы в папки для последующей работы с ними, без подключения к сети, что обеспечивает дополнительные возможности для мобильных пользователей.

Windows ME (Millennium Edition) — это операционная система, располагающая рядом дополнительных возможностей и преимуществ по сравнению с предыдущей версией Windows 98. В системе расширены возможности мультимедиа и улучшены средства доступа к сети Интернет. Также ОС поддерживает новейшие виды оборудования и имеет значительно усовершенствованную справочную систему.

Window XP (2001 г.) явилась шагом корпорации Microsoft на пути осуществления интеграции пользовательской ОС Windows ME и сетей ОС Windows 2000. В результате подобной интеграции их сильных сторон была получена одна из лучших операционных систем, которая обрела новый пользовательский интерфейс, значительно упрощающий использование персонального компьютера для различных целей, в том числе, для управления локальными сетями. Разработаны две различные версии этой ОС: для домашних пользователей (Windows XP Home Edition) и корпоративных пользователей (Windows XP Professional).

Window Vista (2007 г.) -это новейшая операционная система (имеет ядро версии 6.0). В отличие от предыдущих версий Vista поставляется на DVD-носителях в связи с ее возросшей сложностью и новым «навороченным» интерфейсом (Aero). Кроме того, каждый диск содержит все ее пять модификаций: Home Basic, Home Premium, Enterprise и Ultimat.

В следующей главе более подробно рассмотрим каждую из операционных систем.

2. Характеристика операционных систем Windows

Windows NT — это первая сетевая многопоточная графическая операционная система корпорации Microsoft, которая включает защиту от несанкционированного доступа. Сама ОС работает в привилегированном режиме (режиме ядра), а защищенные подсистемы и прикладные программы — в непривилегированном (пользовательском)режиме. В режиме ядра доступны все системные области и разрешено выполнение всех машинных команд. В пользовательском режиме некоторые команды запрещены, а системные области памяти недоступны.

Сетевая ОС Windows NT реализована на базе архитектуры клиент-сервер, когда каждая из прикладных программ обращается к сервисным функциям системы через вызовы локальных процедур. Система обслуживает эти обращения и возвращает клиентам результаты выполнения их запросов.

Windows NT полностью поддерживает 16-битные программы (разработанные для DOS), которые выполняются как отдельные процессы на виртуальных машинах в совместно используемом пространстве памяти.

.2 Операционная система Windows 95

Windows 95-это первая полноценная графическая операционная система корпорации Microsoft, которая не требует присутствия на компьютере какой-либо другой ОС (например, MS DOS). Эта ОС представляет возможность работы с электронной почтой и сетевыми файлами, обеспечивает поддержку внешних устройств, звуковой и видеоаппаратуры, переносных компьютеров.

Вошедшая в состав Windows 95 приложение Plug & Play (Вставь и Играй) значительно упрощает процедуру смены и настройки оборудования ПК. Система содержит драйверы большинства наиболее известных аппаратных средств, автоматически устанавливает и настраивает их. Кроме того, пользователю визуальный контроль над работой персонального компьютера. В Windows 95 существенно упрощен поиск документов. Если раньше, чтобы найти затерявшийся файл, требовалось знать его местонахождение и имя, то теперь достаточно помнить лишь несколько слов, содержащихся в нем, и ОС сама найдет файлы, содержащие такие слова.

.3 Операционная система Windows 98

Windows 98 представляет собой второе поколение пользовательских операционных систем корпорации Microsoft.

Active Desktop (активный рабочий стол)новый компонент ОС, который позволяет просматривать в качестве «обоев» любые web — страницы прямо на рабочем столе Windows. При этом они могут автоматически обновляться по расписанию. Также оптимизированы настройки параметров дисплея- появилась возможность изменять разрешения экрана и глубину цветов без перезагрузки.

В число стандартных компонент Windows 98 входит приложение TV Viewer, позволяющее просматривать телевизионные каналы при наличии соответствующего аппаратного обеспечения (TV Tuner). Компьютер под управлением TV Viewer может принимать кабельные и спутниковые телепередачи, а также работать с данными, распространяемыми по сети Интернет.

Для пользователей мобильных компьютеров в Windows 98 заложена поддержка специальных плат расширения PCMCIA(Personal Computer Memory Card International Association — международная ассоциация производителей плат памяти для персональных компьютеров), позволяющих подключать дополнительные устройства к ноутбуку.

2.4 Операционная система Windows 2000

Windows 2000 — гибридная операционная система, вобравшая в себя достоинства двух семейств: Windows NT и Windows 98. Их равноправная поддержка обеспечивает ОС Windows 2000 возможность взаимодействия с более ранними версиями Windows.

В Windows 2000 исключена принудительная перезагрузка системы в большинстве случаев. Появилась возможность приспособить главное меню «Пуск» к особенностям работы пользователя, отображая часто используемые приложения.

В Windows 2000 серьезно улучшены средства безопасности. Система безопасности включает компоненты для проверки пользователя, получающего доступ к любым объектам (файлам и принтерам общего доступа), и действий, которые он может выполнять над данными объектами. Система предотвращает перезапись и удаление основных системных файлов, тем самым поддерживает работоспособность системы.

Поддержка IP-безопасность (IPSec) помогает защитить данные, передаваемые по сети. Средство IPSec является важной частью системы обеспечения безопасности для виртуальных частных сетей (Virtual Private Network — VPN), позволяющим организациям безопасно передавать данные через Интернет. Поддержка динамического HTNL и языка XNL (eXtended Markup Language — расширенный язык разметки) дает разработчикам широкие возможности, одновременно сокращая время разработки.

.5 Операционная система Windows ME

Windows ME (Millennium Edition) представляет собой значительно улучшенную версию операционной системы Windows 98 в плане добавления развлекательных, мультимедийных и сетевых возможностей.

Windows ME позволяет работать с цифровыми фотографиями: загружать снимки с цифровых фотоаппаратов и сканеров, редактировать их без использования программ независимых производителей, создавать из своих фотографий слайд -фильмы и заставки.

Windows ME поддерживает новейшие виды оборудования: пятикнопочную мышь, широкополосные модемы с интерфейсом USB и др.

В Windows ME улучшено средство настройки общего доступа к Интернет.

.6 Операционная система Windows XP

Windows XP (eXPerience — опыт) — это последняя операционная система Microsoft для пользователей, которая вышла еще 25 октября 2001 г.

В основе новой операционной системы лежит ядро, используемое в Windows 2000 и Windows NT, которое имеет ряд преимуществ:

эффективная и гибкая технология операционной системы, включающая преимущества многозадачности, отказоустойчивости и защиты системной памяти, благодаря которым предотвращаются и устраняются возникающие в процессе работы неполадки и поддерживается устойчивость системы;

возможность восстановления проделанной пользователем работы во многих случаях, когда сбой программы произошел до того, как было выполнено сохранение соответствующего документа;

защита системной памяти позволяет предотвратить воздействие написанных с ошибками программ на устойчивость работы компьютера;

во время установки нового программного обеспечения в большинстве случаев не потребуется перезапускать Windows XP, как это было необходимо в более ранних версиях Windows.

Операционная система была разработана в трех вариантах, отвечающих практически любым запросам пользователей персональных компьютеров, применяемых на работе или в домашних условиях.

Windows XP Home Edition является лучшей платформой для работы с цифровыми мультимедийными материалами и наиболее удачным выбором для пользователей домашних компьютеров и любителей компьютерных игр.

Windows XP Professional обладает практически всеми преимуществами Windows XP Home Edition. Кроме того, в нее включены дополнительные возможности удаленного доступа, обеспечения безопасности, быстродействия и управления, а также многоязычной поддержки, что делает ее прекрасной операционной системой для организаций с неоднородной языковой средой, а также для пользователей, стремящихся максимально эффективно использовать свой компьютер.

Windows XP 64-bit Edition для специализированных технических рабочих станций, пользователям которых требуется высочайший уровень быстродействия и масштабируемости.

.7 Операционная система Windows Vista

Финальная (6000-я) сборка новой операционной системы Windows Vista дошла до конечного потребителя 30 января 2007 г. В отличии от предыдущих версий она поставляет уже на DVD-носителях по двум причинам:

возросшая сложность и «навороченный» интерфейс новой операционной системы;

на каждом диске содержатся все ее модификации (от Home Basic до Ultimate для 32- и 64-разрядных процессоров).

Компания Microsoft разработала пять вариантов операционной системы Windows Vista для различных сегментов рынка:

Home Basic позиционируется как операционная система «для домохозяек». Максимальный поддерживаемый объем памяти ограничен 8 ГБ, при этом не поддерживаются многопроцессорность и многоядерность, а также новый графический интерфейс Aero. Кроме того, отсутствуют некоторые не особенно важные в домашнем хозяйстве утилиты и опции, связанные с обслуживанием системы и сетей.

Home Premium — более продвинутая версия, в которой частично устранены эти ограничения. Она, по-прежнему, полноценно не поддерживает два ядра, но позволяет «видеть» память до 16 ГБ, для того чтобы хорошо себя чувствовал интерфейс Aero.

Business — версия для установки на рабочем месте, похожая на Home Basic, но с расширенной поддержкой сетевых возможностей и наличием особых сервисных функций (шифрование файловой системы, резервное копирование и др). это младшая версия операционной системы с поддержкой многоядерности и и объема оперативной памяти до 128 ГБ. Внедрен новомодный интерфейс Aero.

Ultimate — самая полная версия, исключающая какой-либо компромисс как по функциональности, так и по цене.

2.8 Операционная система Windows 7

windows операционный система microsoft

Windows 7 — последняя на сегодняшний день операционная система семейства Windows NT, следующая за Windows Vista. В линейке Windows NT система носит номер версии 6.1, которая в своем окончательном виде вышла 22 октября 2009 г.

В состав Windows 7 вошли некоторые разработки, исключенные из Windows Vista. 7 обладает поддержкой multitouch-мониторов.7 содержит в себе множество улучшений, в результате которых работа на компьютере стала еще быстрее, удобнее и эффективнее. Эффективные способы поиска файлов и управления ими, как например списки переходов и предварительный просмотр на усовершенствованной на панели задач, повышают скорость работы.

Дополнительным преимуществом Windows 7 можно считать более тесную интеграцию с производителями драйверов. Большинство из них определяются автоматически, при этом в 90 % случаев сохраняется обратная совместимость с драйверами для Windows Vista.7 поддерживает псевдонимы для папок на внутреннем уровне. К примеру, папка Program Files в некоторых локализованных версиях Windows была переведена и отображалась с переведённым именем, однако на уровне файловой системы оставалась англоязычной.

Благодаря ОС Windows 7 можно запускать многие приложения, ранее использовавшиеся в Windows XP в специальном режиме совместимости с Windows XP, а также легко восстанавливать данные с помощью резервных копий, автоматически создаваемых в домашней или корпоративной сети. Благодаря разнообразию различных развлекательных функций Windows 7 является отличным выбором для дома и работы.

В 2012 году ожидается появление Windows 8 (Windows NT 6.2).

Минимальные требования всех операционных систем семейства Windows к аппаратным средствам приведены в таблице 1.

Таблица 1 — Требования операционных систем семейства Windows к аппаратным средствам

Версия WindowsМинимальные требованияCPURAN, МБHDD, МБДополнительноWindows 95Intel 386DX8 (16)30…70CD-ROM, VGAWindows NTIntel 48616 (32)100CD-ROM, VGAWindows 98Intel 486 / 66МГц16 (32)110…300CD-ROM, VGAWindows 2000Pentium / 133МГц32 (64)650CD/DVD-ROM, VGAWindows MEPentium / 150МГц32 (64)200…500CD/DVD-ROM, VGAWindows XPCeleron /233МГц64(128)1500CD/DVD-ROM,SVGAWindows VistaPentium III / 800МГц512 (1024)15000DVD-ROM, SVGA

Windows Ready Boost позволяет использовать флэш-накопитель в качестве дополнительного источника оперативной памяти, что должно обеспечивать более высокую производительность системы.

Windows Super Fetch занимается эффективным управлением памятью, что позволяет быстро получать доступ к данным.

Заключение

Итак, данной работе мы рассмотрели наиболее важные этапы создания операционных систем семейства Windows.

Под операционной системой понимают комплект программ, позволяющих управлять ресурсами (оперативной памятью, жестким диском, процессором, периферией) компьютера. Без операционной системы невозможно запустить какую-либо прикладную программу, например, текстовый редактор. Поэтому ОС — это база, под которую разрабатываются различные приложения.наиболее распространенная операционная система, и для большинства пользователей она наиболее подходящая ввиду своей простоты, неплохого интерфейса, приемлемой производительности и огромного количества прикладных программ для нее.

ОС Windows устроена очень логично и единообразно, практически все программы используют одни те же базовые операции, которые всегда выполняются одним и тем же образом.

Операционные системы корпорации Microsoft можно условно разделить на группы:

— MS-DOS и MS-DOS+Windows 3.1;

— т.н. потребительские версии Windows (Windows 95/98/Me);

Список используемой литературы

1.Коньков К.А. Основы организации операционных систем Microsoft Windows / К.А. Коньков. — М.: Издательство «Интуит», 2005. — 536 с.

2.Левин А. Самоучитель работы на компьютере / А. Левин. — СПб:. Издательский дом «Питер», 2002. — 655 с.

3.Леонтьев В. Большая энциклопедия компьютера и Интернета / В.Леонтьев. — М.: Олма Медиа Групп, 2006. — 1084 с.

4.Угринович Н. Информатика и информационные технологии. 10-11-й класс / Н. Угринович. — М.: Изд-во «БИНОМ. Лаборатория знаний», 2002. — 512 с.

.Хлебников А.А. Информатика. Учебник / А.А. Хлебников. — Ростов н/д.: Феникс, 2007. — 571 с.

* Данная работа не является научным трудом, не является выпускной квалификационной работой и представляет собой результат обработки, структурирования и форматирования собранной информации, предназначенной для использования в качестве источника материала при самостоятельной подготовки учебных работ.

Реферат

История
развития операционных систем Windows

Семейство
Microsoft
Windows

Первоначально
Windows (по-английски «окна»),
разрабатывалась не как операционная
система, какой мы привыкли видеть
современные ее версии, а как графическая
оболочка MS-DOS. Надо отметить, что концепция
графического интерфейса была разработана
отнюдь не Microsoft. Уже за несколько лет до
внедрения Windows существовали компьютеры
Apple Macintosh, с графической операционной
системой (MacOs), интерфейс которой был
более дружественным и понятным рядовому
пользователю, в отличие от командной
строки MS-DOS. Строго говоря, Windows, не
единственная попытка избавить пользователя
от командной строки на IBM- совместимых
компьютерах. Очень известной в свое
время была псевдографическая (на самом
деле работавшая в текстовом режиме),
оболочка Norton Commander корпорации Symantec. Она
ускоряла в несколько раз процесс
навигации по дисковому пространству,
к тому же, более естественно представляла
иерархию каталогов в виде дерева. Однако,
Windows появилась раньше Norton, хотя Norton был
более популярен, в частности, из за
низких системных требований.

Первые
версии Windows

Первая
версия Windows
вышла в свет в конце 80-х годов и осталась
совершенно незамеченной. Аналогичная
участь постигла и следующую версию.
Лишь версия Windows
3.0 (1992) сумела пробить себе дорогу и стать
«продуктом года». А еще через два
года были выпущены версии 3.1 и 3.11
(последняя включала такой значительный
элемент, как полную поддержку мультимедиа
и работу в локальной сети — потому и
носила уточняющее название Windows
For
Workgroups),
окончательно утвердившие господство
Windows.

Фактически,
Windows 1.0 была анонсирована в конце 1983
года. По заявлению главы Microsoft, Билла
Гейтса, к концу 1984 года на 90% систем
использующих MS-DOS будет установлена
Windows. Однако все оказалось иначе: к концу
1984 года Windows даже не было на рынке.
Фактически, Microsoft недооценил всю сложность
поставленной задачи. К моменту своего
появления в середине 1985 года, Windows 1.0 не
могла получить широкого распространения.
В первую очередь сказывался недостаток
приличных цветных мониторов и видеокарт,
способных раскрыть все прелести
графического интерфейса. Также были
довольно велики требования к вычислительной
мощности компьютера. Тем не менее,
необходимо отметить основные особенности
Windows 1.0. Эта была, некоторого рода,
«надстройка» над DOS, которая могла
брать на себя часть его функций. Она
могла одновременно выполнять несколько
Windows приложений, и/или одно приложение
DOS. Окна не могли перекрываться. Также
вплоть до версии 3.0, Windows был очень не
похожа на наиболее распространенную
раннюю версию 3.1. В частности отсутствовала
программа File Manager (Диспетчер файлов).
Необходимо также отметить, что на момент
выхода Windows 1.0 была очень «сыра», и
из-за отсутствия в то время сети Internet,
получить исправления было очень сложно.
В 1987, 1988 годах вышли Windows /286 и Windows / 386
(как раз они то и причисляются к линейке
Windows 2.x). Как понятно из названия, они
были разработаны для раскрытия потенциала
соответствующих процессоров Intel. Однако
не была использована одна из важнейших
особенностей – возможность использования
(адресации) более первых 640 Кбайт ОЗУ
(называемых базовой памятью). Фактически
именно этим обстоятельством объяснялось
их небольшое распространение – эти
системы не давали практически никаких
преимуществ.

Windows
3.0

Настоящим
прорывом стал выход в 1990 году Windows 3.0.
Она могла адресовать память «выше»
первых 640 Кбайт, работая в этом случае
в Расширенном режиме (Expanded mode), в отличие
от Реального или Стандартного режима
(Real mode). Фактически, при использовании
Расширенного режима, Windows становилась
полноценной операционной системой,
полностью контролируя работу DOS. Поэтому,
можно сказать, что Windows 3.0 была операционной
системой лишь отчасти – в 1990 году в
эксплуатации находилось очень мало
386-х, а уж тем более новейших (для того
времени 1 год – совсем небольшой срок)
486-х процессоров.

Эта
система по праву считается одной из
популярнейших версий Windows (наверное, на
втором месте после Windows’ 95). В чем же
были ее отличия? Microsoft не без оснований
считает ее полноценной операционной
системой – в большинстве случаев она
использовала Расширенный режим (к 1992
году 286-х процессоров было более чем
достаточно), Стандартный режим был
оставлен только для совместимости.
Система использовала 32-х разрядный
доступ к диску, который осуществлялся
опять-же в Расширенном режиме. Для
операций ввода/вывода использовались
команды DOS, но под жестким контролем
Windows. Отойдя от технических подробностей,
оценим, что же получал конечный
пользователь. Во-первых, система могла
одновременно исполнять несколько как
Windows, так и DOS задач, в режиме кооперативной
многозадачности. Во-вторых, пользователь
мог не беспокоиться о совместимости
различных комплектующих с конкретными
приложениями. Он четко знал – если,
например, драйвер звуковой платы будет
установлен, то она будет работать в
любом Windows-приложении. То же самое
касалось и других устройств, например
видеокарт. Ведь очень часто приходилось
кропотливо настраивать карту для работы
в SVGA режимах в DOS приложениях. В-третьих,
в Windows 3.1 получили применение такие
технологии как Drag & Drop (оттащи и брось)
и OLE (Object Linking and Embading – связывание и
внедрение объектов). Система могла
работать практически со всеми типами
данных – от текстов до мультимедиа
(фотографии, звуки, анимация, видео).
Мощный API
(Application
Program
Interface
– программный интерфейс приложений)
позволил разработчикам ПО проектировать
приложения практически любой сложности,
от текстовых процессоров до САПР и
зрелищных игр. Подводя итог, можно
сказать, что Windows 3.1 определенно удалась.

После
выпуска Windows 3.1, Microsoft решила разделить
рынок на два крупных сегмента: рынок
домашних и офисных ПК, и рынок
высокопроизводительных рабочих станций
и серверов (примерно такое же деление
наблюдалось на процессорном рынке
начиная с середины 1995 года). Фактически
для различных сегментов рынка выпускались
совершенно различные продукты. Если
для первого сегмента выпускалась линейка
Windows’ 9x, где требовалась максимальная
производительность и совместимость,
то для второго сегмента выпускалась
линейка Windows NT , где главной целью
ставилась максимальная надежность и
отказоустойчивость (нередко в ущерб
производительности).

Хотя
вопрос о том, а были ли первые версии
Windows
полноценными операционными системами,
до сих пор остается открытым. Ведь
устанавливалась Windows
поверх уже имеющейся на компьютере ОС
DOS
и лишь расширяла ее возможности.
Фактически, она представляла собой лишь
графическую оболочку, настройку над
установленным на компьютере комплектом
MS-DOS.
Однако корпорация Microsoft
с самого начала предпочитала позиционировать
Windows
как ОС.

Поколение

Windows
95

Выход
новой ОС, должен был состояться еще в
1994 году —именно тогда появились
официальные сообщения о завершении
разработки новой ОС, получившей название
Chicago.
Однако время представления «Чикаго»
постоянно откладывалось, корпорация
Microsoft
делала обнадеживающее заявление за
заявлением. В августе 1995 года. Windows 95
все-таки вышла в свет. Причем сделала
это с грандиозной, невиданной ранее
рекламной.

Windows
превратилась из графической надстройки
для DOS в полноценную операционную
систему. По крайней мере, так заявляли
ее разработчики. На самом же деле все
было сложнее: в качестве основы в Windows
95 по-прежнему использовалась добрая
старая DOS. Чуть модернизированная,
конечно, и не заявленная в качестве
отдельного продукта. Впрочем, большинство
потребителей такой вариант устраивал.
Ведь у них оставалась возможность
работать в привычном DOS-режиме, не
загружая графическую оболочку Windows, —
и, следовательно, не расставаться с
привычными DOS-программами.

Более
того — новая операционная система стала
32-разрядной. Все предыдущие версии DOS и
Windows были 16-разрядными и, стало быть, не
могли в полной мере использовать
возможности даже процессоров семейства
386 и уж тем более — новых процессоров
Pentium. Конечно, в этом достоинстве крылись
и некоторые неудобства — специально
под Windows пользователям пришлось заменять
все свои Windows-программы на новые,
32-разрядные версии. Однако на практике
переход оказался сравнительно легким
— уже в течение года были выпущены новые
версии всех популярных программных
продуктов. Но и старые 16-разрядные версии
могли работать с новой ОС без всяких
проблем.

Теперь
Windows 95 абсолютно новым графическим
интерфейсом — более элегантным, удобным
и просто красивым по сравнению с
«внешностью» Windows 3.1. Многое Microsoft
заимствовала из операционных систем
конкурентов — OS/2, MacOS, Motif и т. д.

В
течение двух лет, последовавших со дня
выпуска Windows 95, вышло еще несколько
промежуточных версий этой ОС. Летом
1996 года свет увидела новая версия Windows
под названием OSR2 (ОЕМ Service Release),
предназначенная только для поставки
вместе с готовыми компьютерами (ОЕМ). В
OSR2 были исправлены многие ошибки Windows
95, добавлена поддержка нескольких новых
устройств. А самое главное — новая
версия Windows внесла серьезные изменения
в способ расположения файлов на жестком
диске (файловую систему) — вместо
устаревшей FAT16 пользователи OSR2 могли
использовать файловую систему FAT32,
позволяющую сэкономить место на диске.

Windows
98

К
работе над новой версией Windows
Microsoft
приступила сразу же после выхода Windows
95. Ожидалось, что новая ОС увидит свет
в конце 1996 года и будет называться
Memphis.
Но этого не произошло ни в 1996, ни в 1997
годах. Только 25 июня 1998 года новая ОС
Microsoft поступила в магазины. А примерно
через месяц вышла в свет и русскоязычная
версия Windows 98.

Системные
требования выросли – для работы в этой
ОС желательно было иметь процессор
Pentium 150 Мгц и 32 Мбайт памяти. Теперь, что
касается новшеств. Появилась полноценная
поддержка AGP, USB, DVD-ROM и множества других
устройств. ОС была интегрирована с
Internet: отныне работать с глобальной сетью
можно было в «проводнике» и в других
программах, для этого в программах
появился такой элемент, как адресная
строка, интерфейс стал схож с Internet
Explorer (кстати сказать, ОС комплектовалась
версией 4.0 этого браузера). Была проведена
тщательная работа по повышению
стабильности работы ОС. Отчасти это
удалось. К тому же, ОС комплектовалась
программой Windows Update, которая, при наличии
подключения Internet, могла определять
компоненты ОС, которы можно обновить,
и устанавливала соответствующие
обновления. А под толстым слоем «косметики»
кроются изменения в ядре ОС, в частности
был частично переписан механизм
управления ОЗУ (многое было заимствовано
из Windows NT). Какая же судьба ждала новую
ОС? В первую очередь, ее устанавливали
те пользователи, которые имели указанное
выше новейшее оборудование, а таких со
временем становилось все больше

Основные
изменения коснулись интерфейса — теперь
«Рабочий Стол» Windows 98 стал еще
красивее, а главное — он полностью
интегрирован со средой Интернет. В новой
ОС окончательно была стерта разница
между файлами и папками на компьютере
и объектами Всемирной Информационной
Паутины (WorldWideWeb). Основным средством
работы с файлами и папками в обоих
случаях служит программа Internet Explorer.

Другое
важное отличие Windows 98 от Windows 95 заключается
в расширенных возможностях управления
интерфейсом. Но есть и более важные для
нас изменения — во внутреннем устройстве
ОС. Хотя основная начинка ОС осталась
прежней, Windows 98 выигрывала у своей
предшественницы за счет корректной
работы с новыми комплектующими —
процессором Pentium II, графическим портом
AGP, шиной USB, новыми моделями видеокарт,
материнских плат, модемов и т. д. Наконец,
Windows 98 содержала массу новых программ
и утилит — в первую очередь полный
комплект программного обеспечения для
работы в Интернет и утилиту конвертации
файловой системы FAT16 в более новую версию
FAT32.

Windows
98 SE

Прошел
1998 год, наступил 1999-й. В феврале 1999 года
Intel выпустила процессор Pentium III
(архитектурный аналог Pentium II, добавлен
набор инструкций SSE), ранее был выпущен
чипсет Intel i440BX (предназначен для
процессоров Pentium II 350-450 Мгц и Pentium III
450-600 Мгц, иногда используется для
построения систем на базе Celeron и Pentium
III до 1000 Мгц) и i440GX (предназначен для
процессоров Pentium II Xeon и Pentium III Xeon). Эти
два чипсета в том числе расширили
возможности AGP, представив интерфейс
AGP 2.0. Вполне понятно, что для этих новшеств
нужна была программная поддержка, в
частности, на уровне ОС. Стабильность
же работы Windows 98 оставляла желать лучшего.

Все
эти обстоятельства привели к выпуску
в июне 1999 года Windows 98 SE (Second Edition – второе
издание). Ядро ОС практически не
изменилось. Для поддержки новых режимов
AGP были написаны новые VGARTD драйвера. В
поставку ОС был включен новейший браузер
Internet Explorer 5.0, умевший сохранять web-страницы
со всей графической начинкой, а также
поддерживавший инструкции SSE (данные
инструкции находят свое применение, в
основном, в двух областях: в Internet для
воспроизведения сложных объемных
объектов, и в 3-х мерной графике, повышая
до 50% эффективность работы процессора
при расчете геометрии). В очередной раз
была проделана работа по увеличению
стабильности работы системы, однако
радикальных изменений не произошло.
Внешний вид ОС совершенно не изменился.
Подводя итог, можно сказать, что Windows 98
SE заняла место оригинальной Windows 98, т.к.
системные требования не были повышены,
а сама ОС не была ничем не хуже оригинала.

Windows
ME

Microsoft
Windows Millennium Edition (Windows ME) — последняя
эволюция
операционных
систем
класса
Windows 95-98, запущенная
в
серийное
производство
в
2000 году.
Русская
локализация Windows ME появилась на рынке
программного обеспечения в ноябре 2000
года.

Millenium
Edition – в вольном переводе «ОС нового
тысячелетия». За счет переработанного
механизма работы с ОЗУ, требования новой
ОС стали немного «скромнее». ОС
содержала множество инструментов для
повышения стабильности и отказоустойчивости.
В частности, каждые сутки или через 10
часов непрерывной работы автоматически
делалась резервная копия реестра, с
возможностью последующего восстановления
(впрочем, это можно сделать в любой
момент, например, перед установкой
потенциально «опасной» программы).
Так же в ОС предусмотрена автоматическая
защита от удаления 80 наиболее важных
системных файлов. «Подвесить» ОС
стало намного труднее, хотя ошибок ОС
стало не намного меньше. В данной ОС
ВПЕРВЫЕ ПОЛНОСТЬЮ ОТКАЗАЛИСЬ ОТ ЭМУЛЯЦИИ
MS-DOS, то есть ЗАПУСТИТЬ DOS ПРИЛОЖЕНИЕ
ПРАКТИЧЕСКИ НЕВОЗМОЖНО. Microsoft мотивирует
данное решение двумя обстоятельствами.
Во-первых, DOS приложения с 1996 года
практически не разрабатываются.
Во-вторых, отказ от Реального режима
(основного режима в DOS) положительно
сказалось как на быстродействии, так и
на надежности системы. По отзывам
пользователей интерфейс стал еще лучше
(некоторые пользователи говорят, что
даже лучше, чем на компьютерах Macintosh).
ОС комплектуется огромным количеством
ПО:

Internet
Explorer 5.5 – последняя, на данный момент,
версия популярного браузера. За счет
модификации ядра увеличена скорость
работы, расширились и без того богатейшие
возможности. Встроена защита от «троянских
коней».

Media
Player 7 – версия популярного универсального
проигрывателя, позволяющего воспроизводить
звуки, музыку, видео, анимацию, панорамы
и многое другое.

Windows
Movie Maker – программа для оцифровывания
видео и любительского видео монтажа.

AutoUpdate
– модифицированная версия Windows Update. А
также многое другое. В новой ОС полностью
сохранена совместимость с предыдущими
версиями Windows – любое Windows 3x, Windows 95/98
приложение будет работать под Windows ME.
Также осуществлена поддержка таких
новейших технологий как: Internet Plug and Play,
WIA (Windows Image Acquisition), улучшена поддержка
USB. Для запуска Windows ME требует минимум
32 Мб оперативной памяти (рекомендуется
64) и в минимальной конфигурации занимает
на диске чуть больше 500 Мб. Windows ME
действительно стала последней ОС
семейства Windows 9X, поскольку все последующие
операционные системы Windows как для
домашних компьютеров, так и для рабочих
станций, создаются на платформе NT.

Поколение
NT

Windows
NT (New Technology)

32-разрядная
Windows
NT,
первая версия которой появилась на
рынке в 1993-м, а последняя – в 1998 году, с
самого начала создавалась как
сверхстабильная, надёжная система,
рассчитанная, прежде всего, на работу.
И в этом смысле Windows
98/ME
может ей только позавидовать: случаи
ошибок, крахов и «зависаний» при
работе в Windows
NT
встречаются крайне редко. Происходит
это потому, что в Windows
NT
разработано надёжное разделение
работающих под её управлением программ,
не дающее им «соревноваться» за
ресурсы. В Windows
3.1/95/98/ME
каждая из загруженных программ чувствовала
себя в оперативной памяти полновластным
хозяином. Нередко программы перезагружали
процессор запросами на ресурсы, в
результате чего ОС «зависала».

В
отличие от Windows
98/ME,
Windows
NT
запрещает безоговорочный доступ к
ресурсам компьютера любым программам,
пытающимся работать с «железом»
напрямую. Это позволяет системе избежать
конфликтов, однако в результате под NT
отказываются любые программы, написанные
под DOS,
и многие созданные под Windows
95.

Следует
учитывать и тот факт, что большая часть
работы с NT
проявляется лишь в сетевом режиме работы
– т. е. в связке с другими компьютерами.

Windows
2000

Появившаяся
на рынке в начале 2000 года операционная
система Microsoft Windows 2000 представляет собой
второе поколение операционных систем,
построенных согласно архитектуре
Windows NT. Она производится в трех модификациях:
Windows 2000 Professional для ноутбуков, настольных
систем и рабочих станций, Windows 2000 Server
для серверных компьютеров и Windows 2000
Datacenter Server для больших серверных систем,
рабочих станций крупных корпоративных
сетей и специализированных банковских
и файловых серверов.

Благодаря
использованию усовершенствованной
технологии NT, сочетающейся с объективной
простотой интерфейса Windows 9.X, Windows 2000
обладает высокой надежностью и
стабильностью, также она значительно
легче поддается настройке и конфигурированию,
чем предыдущие версии Windows. Разграничение
доступа к системе реализовано на высоком
уровне, что позволяет обеспечить
безопасность хранения данных на дисках,
если за компьютером работает более
одного пользователя. Это система Windows
была признана одной из лучших, и до сих
пор используется на многих компьютерах,
несмотря на выход более новых версий
ОС Windows.

Windows
XP

Операционная
система
Microsoft Windows XP (от
англ.
eXPerience — опыт),
известна
также
под
кодовым
наименованием
Microsoft Codename Whistler. Первоначально
в планы корпорации Microsoft входила
разработка двух независимых операционных
систем нового поколения. Первый проект
получил рабочее название Neptune, эта ОС
должна была стать очередным обновлением
Windows Millennium Edition, новой системой линейки
Windows 9X. Второй проект, называвшийся
Odyssey, предполагал создание ОС на платформе
Windows NT, которая должна была придти на
смену Windows 2000. Однако руководство
Microsoft посчитало нецелесообразным
рассредоточивать ресурсы на продвижение
двух разных ОС, вследствие чего оба
направления разработок были объединены
в один проект — Microsoft Whistler. Возможно,
именно благодаря этому решению Windows XP
объединяет в себе достоинства уже
знакомых пользователям операционных
систем предыдущих поколений: удобство,
простоту в инсталляции и эксплуатации
ОС семейства Windows 98 и Windows ME, а также
надежность и многофункциональность
Windows 2000. В настоящее время Windows XP для
настольных ПК и рабочих станций
выпускается в трех модификациях: Home
Edition для домашних персональных компьютеров,
Professional Edition — для офисных ПК и, наконец,
Microsoft Windows XP 64bit Edition — это версия Windows XP
Professional для персональных компьютеров,
собранных на базе 64-битного процессора
Intel Itanium с тактовой частотой более 1 ГГц.

Для
запуска Microsoft Windows XP необходим персональный
компьютер, отвечающий следующим
минимальным системным требованиям:
процессор — Pentium-совместимый, тактовая
частота от 233 МГц и выше; объем оперативной
памяти — 64 Мбайт; свободное дисковое
пространство — 1,5 Гбайт.

Если
сравнить Windows XP с более ранними версиями
Microsoft Windows, в новой операционной системе
легко обнаружить множество значительных
отличий. Несмотря на то, что эта ОС была
разработана на основе уже хорошо знакомой
российским пользователям платформы NT
и, на первый взгляд, по своим характеристикам
во многом схожа с Microsoft Windows 2000, фактически
Windows XP относится к принципиально иному
поколению операционных систем семейства
Windows. Теперь пользователь Windows не привязан
к какому-либо стандартному интерфейсу,
устанавливаемому в системе по умолчанию.
Если вам не нравится традиционный вид
окон, элементов управления и Панели
задач, доставшийся новой ОС «в
наследство» от Windows 2000, то вы можете
без труда изменить их, загрузив из
Интернета любой из сотен специально
разработанных «Тем». Традиционное
Главное меню, открывающее доступ к
установленным на компьютере программам,
хранящимся на дисках документам и
настройкам операционной системы, также
претерпело ряд значительных изменений.
Теперь при нажатии кнопки Пуск появляется
динамическое меню, содержащее значки
лишь пяти программ, которыми пользуется
наиболее часто. Благодаря этому можно
начать работу с нужными приложениями
значительно быстрее. Здесь же расположены
значки браузера Microsoft Internet Explorer 6 и
почтового клиента Outlook Express 6, кнопки
Выход из системы (Log Off) и Выключение
компьютера (Turn Off Computer).

В
среде Microsoft Windows пользователю часто
приходится одновременно работать с
несколькими документами или набором
различных программ. При этом неактивные
приложения сворачиваются в Панель
задач, вследствие чего она рано или
поздно переполняется значками, и
переключение между задачами становится
затруднительным. Для того чтобы разгрузить
Панель задач и освободить больше рабочего
пространства для отображения значков
запущенных приложений, в Windows XP используется
так называемый алгоритм группировки
задач, согласно которому однотипные
программы, работающие на компьютере
одновременно, объединяются в логическую
визуальную группу.

В
состав Windows XP включен специальный
механизм — быстрое переключение сеансов
(Fast User Switching), с применением которого
можно быстро, без регистрации подключать
к работе с операционной системой новых
пользователей и групп пользователей.
Появилась также возможность переключаться
между несколькими сеансами работы без
необходимости сохранять данные или
перезагружать систему. При этом каждый
из пользователей может самостоятельно
изменять настройки Windows и работать с
собственными файлами и документами,
создавать, изменять и сохранять какие-либо
данные независимо от других пользователей
Windows XP. Для каждого нового сеанса работы
операционная система отводит специальный
участок верхней памяти в размере 2 Мбайт,
однако этот объем никак не ограничивает
количество прикладных программ, которые
могут быть запущены пользователем. В
частности, механизм Fast User Switching дает
возможность пользователю, работающему,
например, с текстовым редактором,
ненадолго отлучиться от компьютера, а
во время его отсутствия другой пользователь
может открыть собственный сеанс Windows и
поработать в Интернете или загрузить
игру. При этом текст, редактируемый
отсутствующим пользователем, по-прежнему
хранится в памяти: вернувшись к компьютеру,
пользователь может продолжить работу
с документом с того места, где она была
прервана, не перезагружая систему и не
запуская заново соответствующую
программу. На предварительной презентации
бета-версии Microsoft Whistler, состоявшейся 13
февраля 2001 года в Сиэтле, председатель
правления корпорации Microsoft Билл Гейтс
сообщил прессе, что данная версия
Windows, на создание и тестирование которой
затрачено свыше 1 млрд долларов США —
важнейшая разработка Microsoft с момента
выпуска на рынок Windows 95, а вице-президент
корпорации Джим Оллчин добавил: «Windows
XP — это не просто апгрейд Windows, это —
апгрейд стиля жизни».

Windows
NET

Microsoft
Windows.NET — это семейство серверных
операционных систем, разработанных
корпорацией Microsoft на основе Windows XP,
которые пришли на смену Windows 2000 Server,
Advanced Server и Datacenter Server. Windows.NET
поставляется
в
вариантах
Windows NET Server, Windows NET Advanced Server и
Windows NET Datacenter Server. Соответственно,
технические возможности этих версий
операционных систем различны: например,
Windows NET Server может адресовать
четырехпроцессорные системы, Windows NET
Advanced Server «умеет» работать с
восьмипроцессорными компьютерами, а
Windows NET Datacenter Server поддерживает машины,
аппаратная конфигурация которых включает
до 32 синхронно работающих процессоров.

Windows
Vista

Эта
версия Windows
является новой ОС и вышла осенью 2006
года, хотя бета- и пиратские версии стали
появляться ещё с конца 2005 года. Всего
выпущено семь вариантов Windows
Vista,
которые можно разбить на две группы —
Home и Business.

Windows
Vista Starter Edition доступна лишь на развивающихся
рынках (как и XP Starter) и только в 32-битном
варианте. Эта ОС допускает параллельную
работу лишь трех приложений (окон),
работу в сети Интернет (но без входящих
сетевых соединений) и не представляет
возможности входа под другим паролем.
Эта версия не пользуется популярностью,
потому что большинство современных
компьютеров поддерживают более развитые
версии этой ОС.

Vista
Home Basic ориентирована на массового
пользователя и включает все основный
компоненты, такие как Windows Firewall, Windows
Security Center, Windows Movie Maker, фото библиотеку,
Windows Media Player, Microsoft Office Outlook Express P2P Messenger,
и многое другое.

Версия
Windows Vista Home Premium рассчитана на продвинутых
домашних пользователей и пользователей
ноутбуков. Эта ОС, помимо всего
перечисленного для Home Basic, поддерживает
создание DVD видео, возможность создания
конференций через P2P, автоматическую
настройку Wi-Fi и роуминга, синхронизацию
PC-2-PC, технологию Internet File Sharing. Также в
Home Premium будет реализована поддержка
HDTV, Tablet PC, Microsoft Mobility Center и других
«мобильных» технологий. Для ПК это
версия Windows
Vista
является самой популярной.

Windows
Vista Pro занимает туже нишу, что и XP Pro, и
предназначена для использования в
компаниях любых размеров и типов
организации. Здесь присутствует поддержка
сетевых протоколов от «не-Microsoft»,
Encrypting File System (EFS) и многих других функций.
Эта ОС ориентирован в первую очередь
на разработчиков бизнес решений, ИТ
менеджеров и управляющих.

Вариант
Vista Small Business представляет собой расширенную
версию Vista Pro, включающую в свой состав
утилиты резервирования данных, работы
с факсом и сканером.

Высшей
ступенью развития Pro-версии стала Windows
Vista Enterprise, в состав которой входят
компоненты Virtual PC, Multilanguage User Interface (MUI) и
передовые технологии обеспечения
безопасности.

Но
при этом выпущен гибрид версии Home и Pro
– Windows Vista Ultimate. Она стала самой
«навороченной» из всех операционных
систем когда-либо выпускавшихся для
ПК. Она включает в себя утилиту Game
Performance Tweaker, обеспечивающую более
продуктивную работу программ, занимающих
большое количество оперативной памяти,
и поддерживает клубные онлайн сервисы.
Эта версия ОС разрабатывается для
наиболее продвинутых пользователей,
геймеров, энтузиастов в сфере цифровых
технологий и студентов, увлекающихся
этой областью знаний.

Согласно
опубликованным документам, Vista стала
«стартовой площадкой» к массовому
применению для таких технологий как
Media Center и Tablet PC. Также Windows следующего
поколения станет последней ОС,
поддерживающей одновременно как
платформу x86 (32-bit), так и x64 (64-bit). Все
последующие версии Windows будут лишь x64.
Windows Vista своим появлением ознаменовала
начало официального перехода с 32-битных
систем на 64-битные.

Windows
CE

Самая
молодая из операционных систем Microsoft
стоит особняком среди своих собратьев,
хотя бы потому, что предназначена она
исключительно для установки на «карманные»
компьютеры (palm-top).
Такие мини-компьютеры, появившиеся в
конце 90-х годов, всего за несколько лет
сумели завоевать популярность. Сегодня
«электронными органайзерами»
пользуются и деловые люди, постоянно
находящиеся в разъездах, и студенты.

В
небольшой ОС интегрированы все необходимые
приложения для работы с мини-компьютером
— простой текстовый редактор, записная
книжка, электронная таблица и система
электронной почты. Владельцы персональных
компьютеров вряд ли столкнутся с этой
ОС, а вот владельцы разнообразных бытовых
устройств—вполне возможно. По замыслу
Microsoft, Windows СЕ вскоре будет устанавливаться
даже на бортовые компьютеры некоторых
моделей автомобилей. В данный момент
на рынке наладонных компьютеров Windows
СЕ не является лидером, уступая PalmOS и
другим конкурирующим продуктам.

Windows
7 —
операционная
система семейства Windows
NT, следующая за Windows
Vista. Операционная система поступила
в продажу 22 октября 2009 года, меньше чем
через три года после выпуска предыдущей
операционной системы, Windows
Vista.

В
состав Windows 7 вошли как некоторые
разработки, исключённые из Windows Vista, так
и новшества в интерфейсе и встроенных
программах.

Windows
7 имеет шесть редакций:

  • Начальная
    (англ.
    Starter);

  • Домашняя
    базовая (англ.
    Home
    Basic);

  • Домашняя
    расширенная (англ.
    Home
    Premium);

  • Профессиональная
    (англ.
    Professional);

  • Корпоративная
    (англ.
    Enterprise);(Для
    России не выпускают.)

  • Максимальная
    (англ.
    Ultimate).

Новшества
в Windows 7. В Windows 7 есть возможность
отключения или включения браузера
Internet Explorer и проигрывателя Windows Media Player.

Также,
ОС обладает поддержкой multitouch-мониторов.
Функция Branch Cache позволяет снизить
задержки у пользователей, работающих
с компьютером удалённо. К примеру, файл
доступный по сети, кэшируется локально,
поэтому он скачивается уже не с удаленного
сервера, а с локального компьютера.
Функция ReadyBoost позволяет использовать
флэш-накопитель как дополнительную
кэш-память для ускорения работы системы.

Меню
Пуск в Windows 7 стало короче и лишилось
иконок.

В
ОС также встроено около 120 фоновых
рисунков, уникальных для каждой страны
и языковой версии. Так, русская версия
включает тему «Россия» с шестью
уникальными обоями высокого разрешения.
Все версии включают 50 новых шрифтов.
Существующие шрифты доработаны для
корректного отображения всех символов.
Windows 7— первая версия Windows, которая
включает больше шрифтов для отображения
нелатинских символов, чем для отображения
латинских. Панель управления шрифтами
также подверглась улучшению— по
умолчанию, в ней будут отображаться
только те шрифты, раскладка для которых
установлена в системе. Реализована
поддержка Unicode
5.1. Панель поиска Instant Search теперь распознаёт
больше языков. К примеру, распознаются
русские падежи, склонения, род, единственное
и множественное числа.

Дополнительным
преимуществом Windows 7 можно считать более
тесную интеграцию с производителями
драйверов. Большинство из них определяются
автоматически, при этом в 90% случаев
сохраняется обратная совместимость с
драйверами для Windows Vista.

Изменения
в файловой системе не столь разительные,
сколь между Windows XP и Windows Vista, однако,
некоторые улучшения всё же имеются.
Так, Windows 7 стала поддерживать алиасы
для папок на внутреннем уровне. К примеру,
папка Program Files в некоторых локализованных
версиях Windows была переведена и отображалась
с переведённым именем, однако на уровне
файловой системы оставалась англоязычной.

Мультимедиа.
В
Windows 7 используется
DirectX
11 и
Windows
Media Player 12. Последний—
получил новый интерфейс и стал поистине
всеядным, в отличие от предшественника,
которому требовалось большое количество
кодеков для воспроизведения. Однако,
он не может воспроизводить лицензионные
Blu-Ray
диски с видео, но имеет возможность
считывать и записывать на них данные.
Windows Media Player получил новый прозрачный
интерфейс и теперь им можно управлять
с панели задач. Windows Media Center тоже изменился
в лучшую сторону.

Мобильность.
Несмотря на то что Центр
мобильности Windows не претерпел
значительных изменений со времён Windows
Vista, Windows 7 работает дольше предшественницы
на ноутбуках
и потребляет меньше энергии, особенно
при воспроизведении DVD.
На представленной в конце августа 2009
года системе с двумя идентичными
ноутбуками с предустановленной Windows 7
и Windows Vista выигрыш составлял до 20%. Также,
была показана рекордная скорость
загрузки системы— 11 секунд.

Удалённый
рабочий стол. Функция Удалённого
рабочего стола также претерпела
изменения. Также в редакциях
Профессиональная, Корпоративная и
Максимальная количество возможных
клиентских подключений к компьютеру
под управлением Windows 7 увеличено до 20
(было 10 в предыдущих версиях Windows). Была
введена поддержка интерфейса Aero Peek,
Direct 2D и Direct3D 10.1, поддержка нескольких
мониторов, расширений мультимедиа,
DirectShow, а также возможность воспроизведения
звука с низкими задержками.

Безопасность.
В Windows 7 реализована более гибкая настройка
User
Account Control (UAC), которая в отличие от
Windows Vista имеет ещё два промежуточных
состояния между режимами «Всегда
уведомлять» и «Никогда не уведомлять»—
«Уведомлять, только при попытках
программ внести изменения в
компьютер»(положение по умолчанию),
«Уведомлять, только при попытках
программ внести изменения в компьютер(не
затемнять рабочий стол)». Стоит
заметить, что в отличие от Vista, затемнение
происходит только если программа активна
и находится на переднем плане. Если вы
совершили клик в момент открытия UAC и
деактивировали программу, затемнения
может и не произойти. Внесены изменения
в технологию шифрования BitLocker,
и добавлена функция шифрования съёмных
носителей BitLocker to go позволяющая шифровать
съёмные носители, причём даже при
отсутствии модуля TPM.

Улучшения
коснулись и брандмауэра
Windows— вернулась функция уведомления
пользователя о блокировке программы,
которая пытается получить доступ к
сети.

С
помощью групповой политики и функции
AppLocker можно будет запретить запуск
определенных приложений.

Функция
DirectAccess позволяет устанавливать безопасное
соединение с сервером в фоновом режиме,
в отличие от VPN,
которому требуется участие пользователя.
Также DirectAccess может применять групповые
политики до входа пользователя в систему.

Песочница.
Windows 7 использует sandbox-режим,
внедрение которого обсуждалось в ходе
альфа и бета тестирования (на стадии
разработки Longhorn). Весь неуправляемый
код запускается в среде (песочнице),
в которой операционная система
ограничивает доступ программы к
аппаратной части компьютера и сети.[
Доступ к низкоуровневым сокетам, равно
как и прямой доступ к файловой системе,
уровню абстракции от оборудования
(HAL),
полному доступу к адресу памяти, запрещён.
Весь доступ к внешним приложениям,
файлам и протоколам регулируется
операционной системой.

Новые
функции интерфейса Aero.

Shake.
В интерфейс Windows Aero добавлена новая
функция Aero Shake, позволяющая свернуть
все неактивные приложения движением
мыши. Для ее активации достаточно
захватить заголовок окна и немного
«потрясти» влево-вправо.

Peek.
Функция Aero Peek позволяет отображать
уменьшенные копии окон при наведении
мыши на значок панели задач, переключаться
между окнами приложения простым кликом
по значку, перетаскивать и фиксировать
на панели задач различные окна и
приложения, просматривать рабочий стол
одним наведением в специальную область
экрана и многое другое.

Snap.
Аналогично функции Shake функция Aero Snap
позволяет движением мыши разворачивать
окно на пол-экрана, весь экран или только
по вертикальной оси.

Заключение

На
протяжении с 1985 года по настоящее время
системы Windows прошли сложный путь от
примитивных графических оболочек до
вполне современных операционных систем.

Современная
операционная система — сложный комплекс
программных средств, предоставляющих
пользователю не только стандартизированный
ввод-вывод информации и управление
программами, но и упрощающий работу с
компьютером. Программный интерфейс
операционных систем позволяет уменьшить
размер конкретной программы, упростить
ее работу со всеми компонентами
вычислительной системы.

Операционная
система Windows
— наиболее распространенная операционная
система, и для большинства пользователей
она наиболее подходящая ввиду своей
простоты, неплохого интерфейса, приемлемой
производительности и огромного количества
прикладных программ для нее. Из графической
надстройки в полноценную операционную
систему Windows превратилась с выходом
версии Windows
95.

Windows
98 окончательно закрепился переход от
устаревшей системы расположения файлов
на жестком диске (файловой системы) на
систему FAT32, позволяющую сэкономить
место на диске. В этой же версии была
стерта разница между файлами и папками
на компьютере и объектами Всемирной
Информационной Паутины (WorldWideWeb). Основным
средством работы с файлами и папками в
обоих случаях служит программа Internet
Explorer.

Windows
Millennium стала промежуточной версией,
обозначившей переход от поколения 9X
к новому поколению NT,
в котором разработано надёжное разделение
работающих под её управлением программ,
не дающее им «соревноваться» за
ресурсы и уменьшающее вероятность
«зависания».

Версия
Windows XP на данный момент является самой
распространённой и объединяет в себе
достоинства уже знакомых пользователям
операционных систем предыдущих поколений,
а также надежность и многофункциональность
Windows 2000.

Версия
Windows
Vista,
вышедшая осенью 2006 г., ознаменовала
переход с 32-битных
систем на 64-битные. Из-за высоких системных
требований этой версии (особенно 1 Гб
RAM),
большинство используемых компьютеров
не могут производительно работать под
Windows
Vista.
Выход этой версии, по-видимому, будет
способствовать обновлению парка
персональных компьютеров.

Самая
последняя версия операционной системы
Windows
7 поступила в продажу 22 октября 2009 года.
Это программное обеспечение ставит еще
более высокие требования перед
компьютерным «железом» (использование
процессора с технологией Intel
VT или AMD-V,
наличия 15 Гб свободного дискового
пространства и не менее 2 Гб оперативной
памяти(3 Гб — для 64-битной версии).

И
хотя эта система имеет и 32- и 64-битную
версию, выход ее закрепляет эру 64-битных
систем, двух- и четырех ядерных процессоров,
4 и более гигабайтной оперативной памяти.

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

По
материалам интернет-ресурсов:

http:
// www.
microsoft.com/rus/

http:
// www. ru.wikipedia.org/

http:
// www. proit.com.ua/soft/

Реферат:

на
тему «Windows»

ОГЛАВЛЕНИЕ

ВВЕДЕНИЕ

ИСТОРИЯ
СОЗДАНИЯ MICROSOFT WINDOWS

ОБЗОР
ОСНОВНЫХ ПРИНЦИПОВ ОРГАНИЗАЦИИ ИНТЕРФЕЙСА В WINDOWS

Аппаратно-независимый графический интерфейс
(GDI

Стандартный оконно-ориентированный интерфейс

Окно

Пиктограммы

Меню

Полосы прокрутки

Курсоры

Каретка

Блоки диалога

Механизм сообщений

ИНТЕРФЕЙС
ГРАФИЧЕСКИХ УСТРОЙСТВ (GDI

Устройства GDI

Логические обьекты графики GDI

Контекст устройства

Основные атрибуты контекста устройства

Перерисовка области и изображение пикселей

Рисование линий

Рисование закрашенных фигур

Вывод
текста

ЭЛЕМЕНТЫ
ОКОННОГО ИНТЕРФЕЙСА……………………….

Окна
Windows……………………………………… 20

Главное окно
приложения………………………….

Регистрация класса
окна………………………….

Функция окна
приложения………………………….

Создание
окна…………………………………..

Отображение и обновление
окна…………………….

Типы
окна………………………………………

Построение
меню……………………………………

Определение
меню………………………………..

Обьекты
диалога……………………………………

Кнопки и переключатели…………………………..

Статические обьекты
диалога………………………

Редактор……………………………………….                                                                               

Окно
список…………………………………….                                                                           

Комбинированный
список…………………………..                                                              

ОБМЕН
ДАННЫМИ МЕЖДУ ПРИЛОЖЕНИЯМИ……………………….

Средства обмена данными между
приложениями……………

Динамический обмен между приложениями………………..

Основные термины………………………………..                                                                    

Несколько слов о
DDEML…………………………..                                                              

Взаимосвязь между клиентом и
сервером……………..                                                  

Транзакции, функция обратного вызова
DDE…………..                                              

Вспомогательные имена и другие названия……………                                                

Системный
режим…………………………………                                                                     

Инициализация…………………………………..                                                                        

Основное назначение и работа функции обратного
вызова.                                 

Обработка
строк…………………………………                                                                        

Диалог между
приложениями………………………..                                                          

Простой
Диалог………………………………….                                                                        

Сложный
диалог………………………………….                                                                       

Обмен данными между
приложениями………………….                                                 

Классы транзакций……………………………….                                                                     

Определение
ошибок………………………………                                                                   

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

ВВЕДЕНИЕ

Для эффективной                  работы            системы  
и   ее   большого

покупательского спроса
недостаточно только того, чтобы аппаратура и программы обеспечивали правильные
результаты — не менее важным фактором является удобство работы пользователя.
Поэтому в настоящее время ни один программный продукт, лишенный более менее
удобного интерфейса взаимодействия пользователя с компьютером и программ между
собой, не может рассчитывать на успех.

В мире разработано огромное
количество различных систем поддержки создания пользовательского интерфейса.
Наиболее прогрессивному, по нашему мнению, являются обьектноориетированная
система Turbo Vision фирмы Borland и операционная среда Windows фирмы
Microsoft. Рассмотрением возможностей системы Turbo Vision занималась в своей
работе Фомичева Т.Л., а в представленной работе производится изучение и обзор
средств, входящих в состав операционной среды Windows.

Тот кто
написал хотя бы одну коммерческую программу, то знает, сколько времени и сил
уходит на организацию меню и выработку единого, непротиворечивого, интуитивно
ясного и удобного пользовательского интерфейса. Интерфейс, разработанный
корпорацией Microsoft является одним из лучших и стал своеобразным эталоном для
подражания.

В Microsoft Windows программисту
доступна вся мощь этого интерфейса — он избавляется от необходимости
организовывать меню, работу с клавиатурой и мышью (достаточно воспользоваться
стандартными средствами). Интерфейс с пользователем Windows является полным и
цельным. В нем решены не только проблемы организации меню, но и все общение с
пользователем организовано стандартными средствами.

ИСТОРИЯ СОЗДАНИЯ MICROSOFT WINDOWS

Корпорация
Microsoft объявила о начале разработки графической операционной оболочки
Windows 10 ноября 1983 года, хотя еще в конце 1982 года программисты Microsoft
начали создавать универсальный набор графических процедур, названный
Графическим Интерфейсом с Компьютером ( CGI ).

Первоначально предполагалось, что
CGI как набор процедур будет поставляться с компиляторами Microsoft, позволяя
разработчикам программ выводить графику на самые различные типы принтеров.
Программисты могли бы использовать в своих программах функции CGI, которые
затем переводились бы в команды нужного типа принтера.

Вскоре после
начала работ над CGI корпорация Microsoft развернула работы по созданию
графической операционной среды для компьютеров с MS-DOS. Создание такой
оболочки было инспирировано неожиданным интересом пользователей IBM совместимых
компьютеров к объявлению корпорацией VISICorp о начале работ над многооконной
операционнной оболочкой VisiOn. Таким образом, старая добрая конкуренция
сделала свое дело — в феврале 1983 года стало ясно, что Microsoft создаст свою
собственную оболочку Windows.

Хотя многие
особенности и свойства Windows кардинально изменились в последующем, некоторые
положения были ясны с самого начала. Windows должна быть многозадачной, т.е.
должна позволять запускать несколько программ одновременно. Windows должна
работать со всеми типами дисплеев и принтеров. И поскольку пользователю очень
трудно отказаться от привычных программных средств, Windows должна позволять
запускать приложения MS-DOS. Последняя цель настолько оказалась трудной в
реализации, что задержала весь проект на многие месяцы.

Задача
оказалось не из простых. Типичной машиной был компьютер со сравнительно
медленным процессором 8088 и оперативной памятью 64Kb. Если учесть, что MS-DOS
накладывает принципиальное ограничение по оперативной памити в 640Kb и, в
отличие от компьютеров Macintosh, не обеспечивает программно­аппаратную
поддержку графики, разработка многозадачной графической операционной оболочки
грозила вырасти в неразрешимую задачу. Однако Microsoft развернула работы над
Windows полным ходом. К осени 1983 года разработкой Windows было занято уже 15
высококвалифицированных программистов, привлеченных к проекту из различных
филиалов Microsoft. Многие фирмы командировали своих специалистов для одновременного
участия в проекте.

Когда работы
над CGI перешли в фазу тестирования, это не был уже самостоятельный продукт.
CGI был переменован в GDI (the Graphics Device Interface — «Интерфейс с
графическими Устройствами») и стал частью Windows, включив в себя
процедуры работы не только с принтером, но и с дисплеем. Для этого в CGI были
добавлены функции, обеспечивающие поддержку типографско-издательских
особенностей в работе с текстами и процедуры манипулирования графическими
объектами.

При
презентации первого варианта Windows было обещано, что коммерческая продажа
начнется в мае 1984. Весной 1984 года дата начала продаж была отодвинута на
ноябрь. В ноябре эта дата была перенесена на июнь 1985 года. Однако коробки с
Windows появились в магазинах только 18 ноября 1985 года.

Несколько факторов   привели   к   столь                                        значительным

задержкам.  Однако  главную  роль  сыграло нежелание
Microsoft

выходить на рынок с сырым продуктом. В феврале 1984
года глава

корпорации Microsoft Билл Гейтс ( Bill Gates ) провел семинар,

на котором представил Software Development Kit ( SDK
),  пакет

для написания приложений под Windows,
продемонстрировав на нем

возможности, 
предлагаемые  программисту  под   Windows.

SDK произвел
хорошее впечатление и к июню 1984 года было продано почти 100 копий. Начав
работать под Windows, программисты присылали в Microsoft свои замечания,
заставляя разработчиков еще и еще отшлифовывать Windows, облегчая

написание приложений.  Был заменен язык, на
котором создавался

Windows ( сначала это был Microsoft Pascal, затем
Lattice C и,

наконец,  Microsoft  C  Compiler ).  Ориентация на
Microsoft C

Compiler  также  была  одной  из  причин  задержки 
работ  над

проектом,  потому, что сам компилятор не был готовым
продуктом

и
постоянно совершенствовался.

Однако, несмотря на
то, что в ноябре 1985 года Windows все же вышел на прилавки магазинов, в
течение двух лет ( с 1985 по 1987 год ) Windows не оказал большого влияния на
рынок программного обеспечения и не стал альтернативой MS-DOS, как надеялся
Microsoft. Большое число пользователей ( 51% ) покупали Windows не ради
созданных для него приложений (которых было очень мало по сравнению с обычными
программами под MS-DOS ) или графического интерфейса, а для того, чтобы иметь
возможность быстро переключаться с одного DOS приложения на другое.

С 1987 года
ситуация начала меняться. Начали появляться мощные и известные приложения,
переписанные для работы под Windows. Сейчас можно назвать такие продукты как
Page Maker под Windows, очень мощная электронная таблица Excel, Windows Graph,
Word for Windows и многие другие.

С выходом
третей версии Windows стало ясно, что Windows не просто завоюет прочное место
на рынке программного обеспечения, но станет основой стратегической политики
Microsoft в создании программного обеспечения. Windows 3.0 произвел настоящий
фурор, предлагая совершенно потрясающую графику и новые, неожиданные
возможности.

В июле 1990 года «PC
Magazine» поместил статью о новой версии Windows 3.0, в которой
отмечалось, что Microsoft Windows превратился в блестящую многозадачную
операционную систему, которой еще пытается стать OS/2. Как и все программные
продукты Microsoft, первые версии Windows не оправдывали надежд несмотря на то,
что выходили со значительными задержками, но в своем последнем варианте
оставляют конкурентов далеко позади.

ОБЗОР ОСНОВНЫХ ПРИНЦИПОВ ОРГАНИЗАЦИИ

ИНТЕРФЕЙСА В WINDOWS

Для понимания
принципов организации интерфейса Windows необходимо иметь представление об
основных его элементах, на которых построено выполнение программ и
взаимодействие программы и пользователя. Весь интерфейс Windows основывается на
трех китах:

— аппаратно-независимая графика;

— стандартный оконно-ориентированный интерфейс;

— взаимодействие приложений с системой Windows
и между собой посредством передачи сообщений;

Данные элементы системы Windows
самым тесным образом связаны между собой, вместе образуют целостную систему и
отдельное рассмотрение каждого из них в отрыве от других не имеет смысла.
Перечисленные выше элементы системы Windows ниже будут рассмотрены более
подробно, а пока вкратце остановимся на том, что они из себя представляют.

Аппаратно-независимый графический интерфейс (GDI)

Любая программа для
Windows может выполнять вывод на любое устройство с помощью одного и того же
набора вызываемых подпрограмм. Причем для Windows приложения все устройства
выглядят одинаково и программисту не нужно забодится об управлении конкретным
устройством на низком уровне.

Каждое
устройство имеет свой драйвер, отвечающий за фактическое выполнение
графического вывода. Для устройств, которым при этом необходима помощь, GDI
обеспечивает программную эмуляцию, использующую для реализации функций высокого
уровня средства низкого уровня этого устройства.

При выводе
информации на экран дисплея GDI обеспечивает оконно-ориентированную графику.
Это означает, что каждое окно рассматривается как отдельная область прорисовки.
Когда программа выполняет в окне прорисовку, то координаты по умолчанию
устанавливаются так, что точка начала координат (0,0) находится в верхнем левом
углу клиентной области окна.

Кроме того, рисунки автоматически
отсекаются по границам окна. Подобные механизм защиты работает двусторонне, то
есть ни вы не можете нарисовать что-либо вне своего окна, ни другая программа
нарисовать что-то в вашем окне.

Стандартный оконно-ориентированный интерфейс

Система Windows имеет встроенную поддержку
ряда обьектов пользовательского интерфейса: окон, пиктограмм, меню, блоков
диалога и т.п.

Окно

Окно представляет                      собой               самую           важную           часть

пользовательского
интерфейса. Оно играет ключевую роль.

Для программиста
окно служит для организации прочих обьектов пользовательского интерфейса и
направляет прохождение сообщений в системе, окно обеспечивает область экрана
для связи с пользователем.

Окно — это самостоятельно
существующий обьект, параметры которого описаны в специальных структурах
данных, а поведение функцией окна.

Каждое окно
принадлежит классу окон. Класс окон — это шаблон, по которому реализуются
реальные окна. С каждым классом окон и, следовательно, с каждым окном связан
специальный тип подпрограммы, называемый процедурой окна. Задача процедуры окна
состоит в обработке поступающих окну сообщений.

Каждое приложение располагается в
своем собственном окне и имеет по крайней мере хотя бы одно окно — главное окно
приложения. Из приложения Windows непосредственно нельзя осуществить вывод на
экран, так как экран является разделяемым ресурсом, а средством его разделения
являются окна. Таким образом, прежде чем отобразить что-либо на экране, нужно
создать окно, и только в окне можно осуществить вывод.

Пиктограммы

Пиктограмма представляет                      собой  
небольшой   рисунок,

который служит для  пользователя  напоминанием  о 
чем-либо  и

обозначают
команду, программу или некоторые данные.

Меню

Меню представляет
собой список команд и функций программы. Имеется пять типов меню:

— системные,

— горизонтальные,

— выпадающие,

— вложенные,


всплывающие.

Системные меню
обеспечивают стандартный набор операций, которые могут быть выполнены с окном
(перемещение, изменение размеров, закрытие, переключение на другую задачу и
т.д.). Это меню обязательно находится в главном меню каждого приложения.

Горизонтальное
меню фиксировано привязывается к верху окна.

Выпадающие
меню появляются при выборе соответствующих пунктов горизонтального меню.

Вложенные
меню появляются при выборе соответствующих пунктов выпадающих меню. Прикладная
программа может вкладывать

одно меню в другое до любого уровня
вложенности.

Всплывающие меню могут располагаться в
произвольной позиции в окне и фактически в любой позиции на экране дисплея.

Полосы прокрутки

Используются в тех случаях,
когда обьект данных больше размеров окна. Полосы прокрутки бывают вертикальными
и горизонтальными. Они позволяют пользователю управлять отображением больших
обьемов данных и иметь к ним доступ.

Существует ограничение на обьем данных в
скроллинге. Обьем данных не может превышать 64 Кбайт.

Курсоры

Курсор представляет собой битовый образ,
перемещаемый по экрану в ответ на перемещения мыши или другого координатного
устройства. Программа может изменить формукурсора, чтобы отобразить некоторое
изменение в системе.

Каретка

Каретка — это
небольшая битовая матрица, которая является отметкой фокуса ввода с клавиатуры.
Окно, управляющее вводом с клавиатуры может создать каретку, чтобы сообщить
пользователю об этот факте.

Пользовательский интерфейс Windows
поддерживает только одну каретку на экране.

Блоки диалога

Блок диалога — это
стандартный способ приема программой ввода от пользователя. Типичный пример
блока диалога — это блок диалога для открытия файла.

Блок диалога
представляет собой окно, содержащее внутри себя отдельные окна, которые либо
выводят некоторую информацию, либо позволяют принять ввод от пользователя.
Каждое их этих окон называется элементом управления диалогом.

Система
имеет шесть предопределенных классов окон, на базе которых создаются элементы
управления блоками диалога:

— кнопки;

— комбинированные блоки;

— элементы управления редактированием;

— блоки списков;

— полосы прокрутки;


статические элементы.

Более полное описание обьектов интерфейса
представлено ниже.

Механизм сообщений

В системе Windows любое приложение строится
как совокупность обработчиков различных событий, которые происходят совершенно
независимо друг от друга. Каждое событие генерирует, сообщение, которое
передаются всем приложениям, для которых оно может представлять интерес.

Приложение
представляет собой 16-битовое значение без знака, которому для удобства
присваивается символьная константа. Все сообщения имеют единый формат и являются
единственным средством связи приложения с операционной оболочкой и с другими
приложениями. Некоторые сообщения могут в свою очередь порождать другие
сообщения.

При
поступлении сообщения о произошедшем событии, это сообщение помещается в
системную очередь Windows. Системная очередь в Windows одна. После этого
сообщения из системной очереди распределяются между приложениями. Для каждого
приложения Windows организует и поддерживает отдельную очередь, куда
пересылаются все сообщения для этого приложения.Обработку очереди приложения
осуществляет само приложение.

Если
сообщение поступило например от устройств ввода, таких как мышь или клавиатура,
то для определения адресата сообщения используется понятие «фокус
ввода». Так как пользователь в каждый момент времени может работать только
с одним приложением. Таким образом, говорят, что приложение, в которое попадают
сообщения от клавиатуры в момент ввода, имеет фокус ввода, поэтому все
сообщения от устройств ввода информации поступают из системной очереди в очередь
приложения, имеющего фокус ввода в данный момент.

Для обработки                 поступающих  
сообщений   в   программе

организуется цикл  сообщений,  который   создается  
при   при

создании окна  приложения.  Цикл сообщений извлекает
сообщения

из очереди и передает их  функции  управления 
соответствующим

окном приложения, причем не напрямую а через Window. О
функции

окна
приложений пойдет речь позже.

Все стандартные
сообщения, определенные в системе Windows можно разделить на несколько групп:

— аппаратные (входные данные от мыши и клавиатуры);

— об организации окна
(уведомление, требование действия, запрос);

— об              организации   интерфейса  
пользователя   (меню,

указатель
мыши, линейка прокрутки, блоки диалога, MDI);

— о завершении
(закрытие прикладной программы или системы);

— частные
(элементы управления блоком диалога: редактор кнопка, блок списка, комбо-блок);


уведомление о системном ресурсе (изменение цвета, шрифты, буферизация печати,
режимы работы устройств);

— о
совместном использовании данных (буфер вырезанного изображения и динамический
обмен данными DDE);

— внутренние системные (недокументированные сообщения).

Ниже будут более
подробно рассмотрены перечисленные классы сообщений в контексте их применения.
Особое внимание будет уделено сообщениям по взаимодействию между приложениями

и совместному использованию данных.

ИНТЕРФЕЙС ГРАФИЧЕСКИХ УСТРОЙСТВ (GDI)

В данном разделе
рассматриваются вопросы связанные с созданием графического вывода, обсуждаются
различные типы графического вывода, поддерживаемых интерфейсом графических
устройств (GDI).

GDI представляет собой библиотеку
графического вывода Windows. GDI обеспечивает графический вывод на экран
дисплея и на устройства для получения твердых копий, например, принтеры и
плоттеры. GDI отвечает за создание отображения каждой линии, буквы или
графического знака, выводимого программой для Windows. Сама Windows использует
GDI при подборке элементов, составляющих пользовательский интерфейс, — окон,
пиктограмм, меню, блоков диалога и т.д.

Устройства GDI

Интерфейс
графических устройств позволяет выполнять графический вывод на различные
устройства. Для того, чтобы GDI работал с конкретным устройством, необходим
специальный элемент программного обеспечения — драйвер устройства, который
преобразует запросы графического вывода в конкретные действия для рисования на
конкретном устройстве.

Помимо
этого, драйвер устройства представляет GDI набор флагов, которые сообщают,
какими графическими возможностями обладает данное устройство. Существует пять
наборов таких флагов: для кривых линий, для прямых, многоугольников, битовых
образов и текстов, которые сообщают GDI, когда можно направить устройству
непосредственно запрос, а когда такой запрос надо предварительно преобразовать
в последовательность запросов низкого уровня. Это зависит то возможностей
конкретного устройства.

Помимо
физических устройств GDI поддерживает логические устройства, или
псевдоустройства. Псевдоустройства служат для хранения изображений. В отличие
то физических устройств, которые выводят изображения на определенной аппаратной
базе, псевдоустройства позволяют «перехватить» образ изображения в
оперативной памяти или на диске. GDI поддерживает два типа псевдоустройств:
битовые образы и метафайлы.

Битовые
образы имеют прямоугольную форму и хранят изображения в памяти в таком виде, в
каком графические образы хранятся дисплейным адаптером, и обеспечивают быстрое
получение копии картинки. Битовые образы используются и для хранения образов,
которые нужно быстро выводить на экран, например, пиктограммы, курсоры и т.д.

Метафайлы создаются  средствами   записи-воспроизведения

GDI. С              точки             зрения              расходуемой               памяти  
метафайлы

предпочтительнее, чем  битовые  образы,  однако 
работа  сними

происходит медленнее.  Обычно  в  метафайлах  хранятся
крупные

изображения.

Логические обьекты графики GDI

Одним из средств
достижения аппаратной независимости GDI является использование логических
обьектов графики. Такой обьект описывает, каким образом должен выполняться
вывод, это высокоуровневый аппаратно-независимый запрос. GDI поддерживает
следующие логические обьекты графики:

— перья (для рисования линий);

— кисти (для закрашивания областей);

— шрифты (для вывода текстов);


логические цвета (описывающие цвета вывода).

После создания логического обьекта он может
быть использован в отношении любого устройства, при этом драйвер каждого
устройства по своему интерпретирует логический обьект способом, соответствующий
возможностям устройства.

Контекст устройства

Контекст устройства                     представляет                 собой  
некоторое

множество атрибутов графического вывода, в которое
входит одно

перо для рисования линий, одна кисть для закрашивания
областей

и один шрифт для вывода  текстов,  которые  можно 
изменить  в

любой момент. Вместе взятые, атрибуты графического
вывода дают

полный контроль  над  тем,  как  выглядит  и  где 
выполняется

графический
вывод программы.

Каждый контекст
устройства включает в себя 20 атрибутов графического вывода, которые приведены
ниже (в скобках приведено значение по умолчанию):

— Цвет фона (белый);

— Режим фона (OPAQUE);

— Логический номер кисти (белая кисть);

— Начало координат кисти (0,0);

— Логический номер области прорисовки (вся
поверхность);

— Логический номер
цветовой палитры (палитра по умолчанию);

— Текущая позиция пера (0,0);

— Режим графического вывода (R2_COPYPEN);

— Логический номер шрифта (системный шрифт);

— Межсимвольный интервал (0);

— Режим отбражения (MM_TEXT);

— Логический номер пера (черное перо);

— Режим закрашивания многоугольников (альтернативный);

— Режим растяжения (черный по белому);

— Выравнивание
границ текста (по левому и верхнему краям);


Цвет текста (черный для текста и кистей с  монохромным

шаблоном закрашивания);

— Выравнивание строк текста (0,0);

— Протяженность окна данного экрана (1,1);

— Начало координат окна данного экрана (0,0);

— Протяженность окна экрана (1,1);


Начало координат окна экрана (0,0).

Контекст устройства связывает программу с
конкретной поверхностью рисования. Такое соединение является логическим, а не
физическим. Чтобы избежать конфликтов, связанных с совместным использованием
устройств, программа получает у контекста устройства «пропуск» к
устройству. Работа системы пропусков зависит от типа устройства. На устройствах
получения твердых копий это делается путем буферизации ввода, а на
видеоустройствах — путем выделения так называемой области прорисовки, вне
границ которой программа рисовать не может.

Основные атрибуты контекста устройства

Для рисовании линий
самым важным атрибутом контекста устройства является перо, определяющее, как
будет выглядеть линию: ее цвет, ширина и стиль (или шаблон, например, сплошная
линия, пунктир и т.п.) и представляющее из себя запрос к устройству на
рисование линии определенного вида.

При
рисовании линий также используется атрибут — режим графического вывода, в
котором можно задать логическую операцию, чтобы применить ее при выводе между
новым и старым пикселями.

Для
закрашивания областей используется атрибут кисть, определяющий как будет
выглядеть закрашиваемая область и характеризующийся тремя характеристиками:
стилем, цветом и шаблоном. Размер кисти составляет 8Х8 пикселей.

При
изображении текста ключевым атрибутом является шрифт. Шрифт — совокупность
шаблонов для вывода текста. GDI распознает два вида шрифтов: логические и
физические.

Логический шрифт                 описывает  
текст   стандартным   не

зависящим от  внешних  устройств  способом. 
Логический  шрифт

задается структурой LOGFONT.  Логический шрифт — это
запрос на

на
текст с определенными характеристиками.

typedef struct tagLOGFONT

int                 lfHeight;                        //     высота символа

int                 lfWidth;                         //     средняя ширина

int                 lfEscapement;              //     угол наклона текста

int                 lfOrientation;                //     угол наклона символа

int                 lfWeight;                       //     среднее число пикселей/1000

BYTE          lfItalic;                           //     не
0, если курсив

BYTE          lfUnderline;                   //     не
0, если подчеркнуто

BYTE          lfStrikeOut;                   //     не
0, если вычеркнуто

BYTE          lfCharSet;                     //     набор
символов ANSI, OEM

BYTE          lfOutPrecision; // точнось отображения

BYTE          lfClipPrecision; // точность вырезки

BYTE          lfQuality;                               //
качество печати

BYTE          lfPitchAndFamily;  // флаг для стиля
шрифта

BYTE          lfFaceName[LF_FACESIZE]; // название шрифта

 LOGFONT;

Физический шрифт — это набор шаблонов,
зависящий от устройства. Он выбирается по описанию, содержащемуся в логическом
шрифте и может быть аппаратно реализован.

Для задания
атрибута контекста устройства используется функция SelectObject, описанная
следующим образом:

HANDLE
FAR PASCAL SelectObject(HDC, HANDLE);

Здесь первый
параметр — логический номер контекста устройства, а второй — логический номер
значения атрибута.

Для того,
чтобы получить логический номер требуемого значения атрибута контекста,
используется функция GetStockObject. Ее прототип:

HANDLE FAR PASCAL GetStockObject(int);

Параметром является                    значение               атрибута              контекста

устройства,  обычно для  удобства  задаваемое  в 
виде  набора

символов.

Программист может использовать либо уже
заданные значения атрибутов, либо создавать свои новые.

Перерисовка области и изображение пикселей

Из-за того, что
Windows не накладывает ограничений на размеры и расположение окон приложений,
могут возникнуть ситуации, что окно одного приложения перекроет окно другого
приложения, поэтому при переключении между приложениями необходимо перерисовыть
поврежденные области окна.

Для этой
цели используется подпрограмма BeginPaint. При получении сообщения WM_PAINT,
говорящее о необходимости перерисовки окна из изменения его размеров или
восстановления поврежденной области, подпрограмма BeginPaint получает контекст
устройства и определяет область, которую надо перерисовать.

Подпрограмма BeginPaint   принимает                               два            параметра:

логический номер   окна   и   указатель  на 
структуру  данных

PAINTSTRUCT, Она возвращает
логический номер контекста устройства, необходимый для рисования пикселя.
Прототип подпрограммы имеет вид:

HDC  FAR PASCAL BeginPaint(HWND, LPPAINTSTRUCT);

Структура
PAINTSTRUCT
определена так:

typedef struct tagPAINTSTRUCT

HDC                       hdc;

BOOL                    fErase;

RECT                     rcPaint;

BOOL                    fRestore;

BOOL                    fIncUpdate;

BYTE                     rgbReserved[16];

 PAINTSTRUCT;

hdc — логический номер контекста устройства;

fErase — флаг, задающий необходимость стирания окна;
rcPaint —   описывает   прямоугольник,    ограничивающий

поврежденную область;

fRestore, fIncUpdate и rgbReserved
предназначены для внутреннего использования Windows.

Для отображения                 пикселя  
используется   подпрограмма

SetPixel.
Ее
прототип:

DWORD
FAR PASCAL SetPixel( HDC, int, int, DWORD);

HDC — логический контекст устройства;
следующие два параметра — координаты пикселя; последний параметр — цвет.

После
завершения перерисовки, программа вызывает функцию EndPaint, чтобы вернуть контекст
устройства дисплея Менеджеру Окон и сообщить, что окно восстановлено. Когда тот
получает контекст устройства, он восстанавливает все его атрибуты по умолчанию,
и контекст устройства готов к передаче информации любой программе, которой
понадобится нарисовать окно. Подпрограмма

EndPaint
имеет прототип:

void
FAR PASCAL EndPaint(HWND, LPPAINTSTRUCT);

Рисование линий

Каждая линия имеет
начальную и конечную точку, и GDI рисует линию так, начальная точка включается
в линию, а конечная исключается из линии.

GDI имеет 4 подпрограммы для
рисования линий: MoveTo, LineTo, PolyLine и Arc.

Подпрограмма
MoveTo помещает пару координат XY в атрибут контекста устройства, который
называется текущей позицией. Подпрограмма
имеет прототип:

DWORD
FAR PASCAL MoveTo( HDC, int x1, int y1 );

Подпрограмма LineTo
берет начальную точку из атрибута текущей позиции и рисует линию до конечной
точки, передаваемой как параметр. После этого она устанавливает новое значение
атрибута текущей позиции. Подпрограмма имеет прототип:

BOOL 
FAR PASCAL LineTo( HDC, int x1, int y1 );

Подпрограмма
Polyline позволяет нарисовать ломанную линию, но для ее работы необходимо
предварительно создать массив координат точек. Подпрограмма
имеет прототип:

BOOL
FAR PASCAL Polyline( HDC, LPPOINT points, int num );

points — указатель на массив координат,
котором координаты оси абсцисс и оси ординат чередуются; num — число пар
координат в массиве.

Подпрограмма
Arc позволяет нарисовать дуги эллипса. Передаваемые параметры определяют
прямоугольник, ограничивающий фигуру, если бы она была полной, начальную точку
и конечную. Подпрограмма
имеет прототип:

BOOL
FAR PASCAL Arc( HDC,int,int,int,int,int,int,int,int);

Рисование закрашенных фигур

Для рисования                 закрашенных   фигур  
существует   семь

различных
функций.

Функция Polygon
соединяет расположенные последовательно точки с помощью текущего установленного
в контексте устройства пера. Функция

определена так:

BOOL
FAR PASCAL Polygon(HDC, LPPOINT, int);

HDC — логический номер контекста устройства;

LPPOINT — указатель
на массив координат, соединяемых граничных точек;

Третий
параметр — число соединяемых точек.

Функция PolyPolygon
позволяет нарисовать за один вызов несколько многоугольников и определена так:

BOOL
FAR PASCAL PolyPolygon(HDC, LPPOINT, LPINT, int);

HDC — логический номер контекста устройства;

LPPOINT — указатель
на массив координат, соединяемых граничных точек всех создаваемых
многоугольников;

LPINT — указатель
на массив типа int. Элементы массива задают число точек в каждом многоугольнике*

Последний параметр задает количество точек в
массиве LPINT, то есть количество многоугольников.

Для
рисования закрашенного эллипса используется функция Ellipse. Она
определяется так:

BOOL 
FAR PASCAL Ellipse(HDC, int, int, int, int);

HDC — логический номер контекста устройства;

Остальные параметры                             определяют                            координаты

ограничивающего
прямоугольника.

Функция Chord
используется для рисования частичной дуги, концы которой соединены сегментом
линии. Для этого также используется ограничивающий прямоугольник. Определение
функции следующее:

BOOL  FAR PASCAL Chord(HDC,

int, int,

int, int,

int, int,

int,
int);

HDC — логический номер контекста устройства;

Следующие четыре   параметры                       определяют              координаты

ограничивающего прямоугольника.

Далее указываются координаты начальной и
конечной точки сегмента линии.

Функция Pie
аналогична функции Chord, только рисует не хорду, а сектор эллипса. Она
определена следующим образом:

BOOL  FAR PASCAL Pie(HDC,

int, int,

int, int,

int, int,

int, int);

HDC — логический номер контекста устройства;

Следующие четыре   параметры                       определяют              координаты

ограничивающего прямоугольника.

Далее указываются координаты начальной и
конечной точки сектора.

Для рисования   прямоугольника   используется                                        функция

Rectangle.Ее
прототип:

BOOL 
FAR PASCAL Rectangle(HDC, int, int, int, int);

HDC — логический номер контекста устройства;

Остальные параметры                             определяют                            координаты

прямоугольника.

Если требуется
нарисовать прямоугольник с закругленными краями, то имеется функция RoundRect.
Она
определена
та:

BOOL  FAR PASCAL
RoundRect(HDC,

int, int,

int, int,

int,
int);

HDC — логический номер контекста устройства;

Следующие четыре   параметры                       определяют              координаты

прямоугольника.

Последние два параметра задают ширину и высоту
ограничивающего прямоугольника для эллипса, используемого при скруглении угла.

Вывод текста

Для
вывода текста имеется пять основных функций.

Функция TextOut
предназначена для вывода одной строки. Она определена следующим образом:

BOOL  FAR PASCAL TextOut(HDC, int, int, LPSTR, int);

HDC — логический номер контекста устройства;

Следующие два
параметры определяют координаты точки привязки выводимой стоки текста.

LPSTR — указатель на выводимую символьную строку.

Последний
параметр — число символов в строке текста.

Более мощный
вариант функции TextOut представляет собой функция ExtTextOut. Она позволяет
управлять интервалом между строками и вырезкой

BOOL FAR PASCAL
ExtTextOut( HDC,

int, int,

WORD       wOptions,

LPRECT    lpRect,

LPSTR       lpString,

WORD       nCount,

LPINT        lpDx
);

HDC — логический номер контекста устройства;

Следующие два
параметры определяют координаты точки привязки выводимой стоки текста.

wOptions — флаг,
принимающий значение 0, ETO_CLIPPED, ETO_OPAQUE и ETO_CLIPPED|ETO_OPAQUE,
позволяющий устанавливать прямоугольные области вырезки и при выводе текста
затирать фон.

lpRect — указатель  на  структуру  прямоугольника;

lpString  —  указатель  на  выводимую символьную
строку.

nCount  —  число  символов  в  строке  текста.  lpDx  

указатель на массив значений интервалов между

символами.

Функция
TabbedTextOut при выводе текста распространяет знаки табуляции до позиций
табуляции. Это обеспечивает удобный способ выравнивания столбцов данных.
Прототип функции:

LONG  FAR PASCAL TabbedTextOut(HDC,

int, int,

LPSTR, int, LPINT, int);

HDC — логический номер контекста устройства;

Следующие два
параметры определяют координаты точки привязки выводимой стоки текста.

LPSTR — указатель на выводимую символьную строку.

Следующий
параметр — число символов в строке текста.

LPINT — указатель на массив позиций табуляции;

Последний параметр — число элементов массиве
позиций табуляции.

Функция
DrawText обеспечивает некоторую возможность форматирования и переход в
автоматическом режиме на новую строчку при большом количестве строк текста. Ее
прототип:

int 
FAR PASCAL DrawText(HDC, LPSTR, int, LPRECT, WORD);

HDC — логический номер контекста устройства;

LPSTR — указатель на выводимую символьную строку.

Следующий параметр — число символов в строке текста.
LPRECT —   указатель   на   структуру    прямоугольника,

определяющего позицию вывода и границы для
форматирования. Последний параметр определяет режим форматирования.

Для отображения                 заблокированных                пунктов  
меню   и

заблокированных элементов управления блоками диалога 
Менеджер

Окон
использует функцию GrayString.

ЭЛЕМЕНТЫ ОКОННОГО ИНТЕРФЕЙСА

Окна Windows

Главное
окно приложения

Каждое приложение
располагается в своем собственном окне и имеет по крайней мере хотя бы одно
окно — главное окно приложения. Из приложения Windows непосредственно нельзя
осуществить вывод на экран, так как экран является разделяемым ресурсом, а
средством его разделения являются окна. Таким образом, прежде чем отобразить
что-либо на экране, нужно создать окно, и только в окне можно осуществить
вывод.

Функция
главного окна приложения выполняет в программе ту же роль, что функция main()
программы на Си для MS-DOS. При создании окна функция библиотеки SDK выполняет
специальные действия начальной подготовки в DOS, не явно осуществляемых
функцией main(). Поэтому приложение не содержит функции main(), роль которой
выполняет функция WinMain(), получающая управление в начальный момент загрузки
приложения. Функция WinMain() выполняет следующие основные действия:

— регистрация                   класса  
окна   приложения   и   другие

инициализации;

— создание
основного окна приложения и, возможно, других, подчиненных окон;

— запуск цикла обработки
сообщений, помещаемых в очередь приложения;

— завершение работы приложения при извлечении из
очереди сообщения WM_QUIT.

Прототип функции WinMain выглядит так:

int PASCAL WinMain

(

HANDLE instance,                     // дескриптор предыдущей копии

HANDLE prevInstance, // предыдущая
копия

LPSTR  cmdLine,                       // указатель на командную строку

int              cmdShow                   // флаг
«окно открыто/закрыто»

);

instance —   однозначно                             определяет                каждую           копию

приложения,
если приложение запущено несколько раз.

prevInstance —
определяет копию данного приложения, которая была последней активной копией.
Если этот параметр равен 0, то других копий приложения, исполняемых в данный
момент не существует.

cmdLine —
дальний указатель на командную строку, оканчивающуюся нулем. Он позволяет приложениям
получать данные через командную строку.

cmdShow — определяет, как
приложение первоначально отображать на экране: пиктограммы (cmdShow =
SW_SHOWMINNOACTIVE) или в виде открытого окна (cmdShow = SW_SHOWNORMAL).
Константы SW_SHOWMINNOACTIVE и SW_SHOWNORMAL определены во включаемом файле
windows.h.

Регистрация класса окна

Любое окно
принадлежит к одному из существующих классов. Класс окна должен быть создан до
того, как окно будет отображено на экране. Класс окна определяет общие свойства
всех окон данного класса, например: форму курсора при перемещении его в области
окна или имя меню, определенного для окон этого класса.

Характеристики
окна задаются при регистрации класса окна (в структуре класса окна) и при
создании окна. Наиболее общие характеристики окон задаются при регистрации
класса окна. Окна, создаваемые при помощи функции CreateWindiw, должны иметь
зарегистрированный ранее класс окон.

Есть
несколько стандартных классов окон с заранее определенными свойствами. Однако,
как правило, каждое приложение регистрирует свой собственный класс с тем, чтобы
можно было управлять всеми свойствами окна приложения.

Для того,
чтобы зарегистрировать класс окон, следует правильно заполнить структуру типа
WNDCLASS и передать эту структуру в виде параметра функции RegisterClass.
Структура класса окна имеет вид:

typedef struct tagWNDCLASS

WORD           style;                                 //
тип окна

LONG (FAR PASCAL *lpfnWndProc)(); // функция окна
int      cbClsExtra;     // размер доп. памяти

int                   cbWndExtra;                  //     размер
доп. памяти

HANDLE      hInstance;                       //     индекс
копии приложения

HICON          hIcon;                               //     индекс
пиктограммы

HCURSOR   hCursor;                           //     индекс
курсора

HBRUSH      hbrBackground;             //     цвет
фона окна

LPSTR           lpszMenuName;             //     имя
меню

LPSTR           lpszClassName;              //     имя
класса окна

 WNDCLASS;

lpszClassName —
указатель на строку, содержащую имя класса. Поскольку определенный в приложении
класс доступен всем приложениям, имя класса не должно повторятся в разных
приложениях.

hInstance —
манипулятор копии, создающей класс окна; должно содержать индекс копии
приложения.

lpfnWndProc
— указатель на функцию поддержки окна. Краткое описание этой функции смотри в
следующем разделе.

style —
содержит набор флагов, определяющих свойства окна. По умолчанию присваивается
NULL.

hBrBackground — определяет цвет фона окна.

hCursor —
определяет курсор, используемый в данном окне по умолчанию.

hIcon —
определяет пиктограмму (icon), которая будет отображаться при переводе окна в
неактивное состояние.

lpszMenuName
— указатель на имя меню окна, определенное в файле ресурсов.

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

clWndExtra — определяет число
байт, которое необходимо дополнительно запросить у Windows для размещения всех
структур, создаваемых совместно с данным классом.

После
определения полей структуры WNDCLASS необходимо зарегистрировать класс при
помощи функции RegisterClass.

BOOL 
FAR PASCAL RegisterClass( LPWNDCLASS winClass );

Если регистрация
класса прошла успешно, то возвращаемое значение TRUE, в противном случае —
FALSE.

При регистрации класса окна Windows копирует
структуру, описывающую класс окна, в системную область, чтобы другим копиям
приложения уже не надо было ее регистрировать.

Функция окна приложения

Функция окна
приложения занимается тем, что обрабатывает все сообщения для окон данного
класса. Это функция всегда

вызывается неявно Windows при поступлении
сообщений в окно, за

которым
оно закреплено. Функция окна имеет вид:

long far PASCAL WndProc ( HWND  hwnd,

WORD  msg,

WORD  wParam,

LONG 
lParam );

hwnd — логический
номер окна, идентифицирующий окно, связанное с приложением;

msg — идентификатор приложения;

wParam и lParam
определяют дополнительную информацию и зависят от типа сообщения.

Для облегчения                  работы               программиста                  существует

специальная функция  обработки  сообщений
DefWindowProc с теми

же параметрами,  которая производит стандартную
обработку всех

сообщений. Кроме  того она играет ключевую роль в
формировании

информационных потоков сообщений  Windows,  и  ее 
указание  в

функции
окна обязательно.

Создание
окна

Создание окна                 производится                 при            помощи  
функции

CreateWindow. Она создает окно,
имеющее указанный тип и принадлежащее к указанному классу. Прототип функции
имеет вид:

HWND  FAR PASCAL CreateWindow

(

LPSTR,             //     имя класса окна

LPSTR,             //     заголовок окна

DWORD,          //     тип окна

int,                     //     X-координата

int,                     //     Y-координата

int,                     //     Ширина окна

int,                     //     Высота окна

HWND,            //     Дескриптор копии-родителя

HMENU,          //     Дескриптор меню

HANDLE,        //     Дескриптор копии

LPSTR              //     Дополнительная информация

);

Тип окна   является                        комбинацией               битовых             флагов,

определяющих стиль окна. Возможные
значения типа окна рассмотрены ниже.

Дескриптор
копии-родителя определяет порождающее окно. Он определяет, где существует окно
и может ли окно быть автоматически показано/скрыто/уничтожено (для всех типов
окон). Когда показывается, скрывается или уничтожается, все порожденные им окна
разделяют его судьбу

Дескриптор меню позволяет
определить меню, которое будет изображаться в окне.

Дескриптор
копии позволяет идентифицировать владельца окна, то есть указывает Windows,
какой именно экземпляр программы создал окно. В результате Windows получает
возможность правильно установить регистр сегмента данных для

инициализации окна.

Последний параметр
функции позволяет передать указатель на данные в оконную процедуру. Указатель
передается с самым первым сообщением WM_CREATE, что необходимо для обеспечения
данных при инициализации окна.

В случае успешного создания окна
функция CreateWindow возвращает индекс окна.

Отображение и обновление окна

Окно не отображается на экране
сразу после создания; для отображения окна используется функция ShowWindow. Ее
прототип:

BOOL
FAR PASCAL ShowWindow( HWND wnd, int cmdShow );

wnd — дескриптор отображаемого окна;

cmdShow —
определяет, как окно первоначально будет отображаться на экране:

SW_SHOWNORMAL        — обычное окно;

SW_SHOWMINIMIZED — минимизированное в виде
пиктограммы; SW_SHOWMAXIMIZED — максимизорованное на весь экран;

Для
обновления окна используется функция UpdateWindow. Ее прототип выглядит так:

void FAR PASCAL UpdateWindow( HWND wnd );

Типы
окна

Тип окна задается
32-битовым целым числом, которое представляет собой комбинацию битовых флагов,
определяющих различные свойства окна.

WS_OVERLAPPED
— перекрывающееся окно. Перекрывающиеся окна — это основной наиболее
универсальный тип окон Windows. Главное окно приложения обычно имеет такой вид.

WS_POPUP —
вспомогательные окна. Они используются чаще всего для отображения окон диалога.
Вот некоторые свойства вспомогательных окон:

— если
такое окно имеет родительское окно, то всегда отображаются поверх всех окон на
экране, даже когда пользователь делает активным другое окно;

— вспомогательные окна не имеют
заголовка и часто должны иметь фиксированный размер.

WS_CHILD — дочернее окно. Окна
такого типа создаются, если у приложения есть главное (а значит и перекрывающее
окно) и связаны некоторыми характеристиками с тем окном из которого были
вызваны. Все органы управления также являются дочерними окнами. Вот некоторые
их свойства:

— дочерние
окна никогда не отображаются вне своего родительского окна ни в раскрытом виде,
ни в виде пиктограммы;

— координаты
дочерних окон отчитываются от верхнего левого угла рабочей области
окна-родителя и при перемещении последнего, дочерние окна перемещаются вместе с
ним;

— дочернее окно никогда не может стать активным окном.

WS_MINIMIZE —
создаваемое окно будет отображено в виде пиктограммы.

WS_VISIBLE —
Окно становится видимым сразу после создания. Используется для диалоговых окон.

WS_DISABLED — создается неактивное окно.

WS_CLIPSIBLINGS —               исключение  
областей,   занимаемых

другими дочерними окнами из изменяемой области
дочернего окна.

Используется
только для дочерних окон.

WS_CLIPCHILDREN —   исключение   областей,                               занимаемых

другими дочерними   окнами   при   изменении  рабочей 
области

родительского
окна. Используется только для родительских окон.

WS_MAXIMIZE —
создаваемое окно будет отображено в максимально возможном виде.

WS_CAPTION —
окно имеет рамку и заголовок, а следовательно пользователь может перемещать его
при помощи мыши.

WS_BORDER —
окно имеет широкую рамку без заголовка. Используется при создании диалоговых
окон.

WS_DLGFRAME — окно имеет тонкую рамку без заголовка.

WS_VSCROLL
— окно имеет вертикальную полосу просмотра.

WS_HSCROLL
— окно имеет горизонтальную полосу просмотра.

WS_SYSMENU
— окно имеет системное меню.

WS_THICKFRAME — создаваемое окно
имеет рамку существенно заметной толщины.

WS_MINIMIZEBOX — окно имеет кнопку минимизации.

WS_MAXIMIZEBOX
— окно имеет кнопку максимизации.

Построение меню

Для
создания меню нужно проделать:

1. Задать                 структуру               меню           в           файле  
ресурсов,

последовательно определив пункты меню в виде текстовых
строк.

2.
Каждому  пункту   меню   поставить   в   соответствие

уникальный идентификатор.

3.
Указать имя меню в структуре класса окна.

Определение
меню

Определение
меню в файле ресурсов должно иметь вид:

MenuName MENU [опции загрузки][опции памяти]

BEGIN

MENUITEM  «Item1»   IDM_Item1  [, опции]

MENUITEM  «Item2»   IDM_Item3  [, опции]

POPUP              «Item3»  [, опции]

BEGIN

MENUITEM «Item3-1» IDM_Item3-1
[,
опции] MENUITEM «Item3-2» IDM_Item3-2 [, опции]

END

END

MenuName — имя
ресурса меню для обращения из подпрограммы.

Опции
загрузки определяет как следует поступить с ресурсом при загрузке приложения на
выполнение — сразу загрузить или при неоходимости.

Опции памяти определяют, как
Windows должна обращаться с сегментом памяти, куда загружается ресурс.

Пункты меню
определяются между словами BEGIN и END. Они могут быть двух видов: MENUITEM и
POPUP. Пункт типа MENUITEM является конечным пунктом меню. При выборе этого
пункта функции окна сообщения передается сообщение WM_COMMAND с идентификатором
пункта меню в качестве параметра. Пункт типа POPUP является заголовком подменю.

Опции пункта
меню могут комбинироваться. В качестве опций пункта меню могут быть следующие
значения:

GRAYED —
пункт меню не активен. Текст пункта меню отображается в сером цвете.

INACTIVE — пункт
меню не активен. Текст пункта меню отображается также как и в других пунктах.

MENUBREAK —
этот и следующий за ним пункты меню отображаются в новом столбце (если указан
для главного меню, то в новой строке).

MENUBARBREAK
— этот и следующий за ним пункты меню отображаются в новом столбце (если указан
для главного меню, то в новой строке); предыдущий и новый столбец разделяются
вертикальной чертой.

CHECKED —
пункт меню помечен галочкой, помещенной слева от него. Не действует для пунктов
главного меню.

SEPARATOR — определяет
разделитель, который выделяет в группы связанные списки меню.

HELP — пункт меню выравнивается по правой стороне меню.

Обьекты диалога

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

Взаимодействие
между родительским окном (окном диалога) и обьектами диалога осуществляется
посредством сообщений. Когда пользователь производит какое-либо действие с
обьектом диалога, функции окна родителя передается сообщение WM_COMMAND, в
качестве параметра wParam которого передается индекс обьекта диалога, а в
качестве параметра lParam — специальная дополнительная информация.

Для того, чтобы сконструировать обьект диалога нужно:

1. Зарегистрировать класс окна диалога.

2. Создать дочернее
окно функцией CreateWindow, указав зарегистрированный класс окна.

3. В функции окна
обьекта диалога определить дескриптор дочернего окна при помощи функции
GetParent.

4. По тому или
иному действию пользователя уведомлять родительское окно соответствующими
сообщениями при помощи функции SendMessage.

Для обьектов
диалога как дочерних окон не требуется регистрировать класс окна — в Windows
определены стандартные классы окон — обьектов диалога: «button»,
«edit», «scrollbar», «listbox» и пр.

При
использовании стандартных классов Windows для создания обьекта диалога нужно
вызвать только функцию CreateWindow.

Рассмотрим основные обьекты диалога.

Кнопки
и переключатели

Кнопка
«Button» обычно используется для осуществления каких — либо
немедленных действий, без переключения или включения/выключения каких-либо
опций.

Переключатель «И»                   («CheckBox»)                 используется                 как

переключатель опций  вкл/выкл.  Будучи  соединенными 
в группу

переключатели
реализуют логику «И».

Переключатель
«ИЛИ» («RadioButton») используется как переключатель опций
вкл/выкл. Будучи соединенными в группу переключатели реализуют логику
«ИЛИ».

Вокруг этих
трех основных типов имеются некоторые вариации. Ниже приводится описание
стандартных классов кнопок

и переключателей.

BS_PUSHBUTTON
—  определяет  кнопку  с  жирной   рамкой.

BS_DEFPUSHBUTTON —
определяет кнопку с жирной рамкой. Обычно используется для определения действия
по умолчанию.

BS_CHECKBOX —           определяет  
квадратик,   имеющий   два

состояния: отмеченное (перечеркнут крестиком) и не 
отмеченное

(квадратик пуст).  В  момент отметки рамка квадрата
выделяется

жирной
линией.

BS_AUTOCHECKBOX — тоже, что
предыдущий, только состояние кнопки при отметке отслеживается автоматически.

BS_RADIOBUTTON
— определяет круглую кнопку, которая может быть нажата (внутри окружности
жирная точка) и отпущена. Справа от кнопки может быть любой поясняющий текст.

BS_AUTORADIOBUTTON
— тоже, что и предыдущее, только при отметке кнопки пользователем ранее
сделанная отметка автоматически снимается.

BS_3STATE —
тоже, что и BS_CHECKBOX, только добавлено состояние, что действие или свойство
не действительно (обозначается штриховкой кнопки).

BS_AUTO3STATE
— тоже, что и предыдущее, только смена состояний поддерживается автоматически.

BS_GROUPBOX
— определяет рамку, охватывающую другие обьекты диалога.

BS_OWNERDRAW —             обьект                 диалога,                  определяемый

пользователем,
который полностью берет на себя работу с ним.

BS_LEFTTEXT —                используется                    для                 выравнивания

пояснительного
текста по левой стороне кнопок.

Кнопки посылают функции                    окна            родителя 
сообщение

WM_COMMAND,

в качестве  параметра  lParam  указывается  дескрипотор
органа

управления и код нотификации,  служащий для
определения  того,

какое
действие произвел пользователь с кнопкой.

Статические
обьекты диалога

Статические обьекты
диалога используются для отображения текста и отрисовки оформительских
примитивов. Обьекты этого класса могут быть созданы указанием функции
CreateWindow имени класса «static». Определены следующие классы
статических обьектов:

SS_LEFT                       —    текст,
выравненный по левому краю;

SS_CENTER                 —    центрированный текст;

SS_RIGHT                    —    текст, выравненный по
правому краю;

SS_ICON                       —    пиктограмма;

SS_BLACKRECT        —    прямоугольник цвета рамки
фона;

SS_GRAYRECT          —    прямоугольник
цвета фона окна;

SS_WHITERECT        —    прямоугольник цвета окна;

SS_BLACKFRAME    —    рамка цвета рамки окна;

SS_GRAYFRAME       —    рамка цвета фона окна;

SS_WHITEFRAME    —    рамка цвета окна;

SS_USERITEM            —    обьект,
определяемый пользователем.

Редактор

Редактор
«edit» позволяет создать дочернее окно и редактировать в нем текст.
По умолчанию редактор может редактировать только одну строку. Типы классов
редактора приведены ниже.

ES_LEFT                          —    текст,
выравненный по левому краю;

ES_CENTER                   —    центрированный текст;

ES_RIGHT                      —    текст, выравненный
по правому краю;

ES_MULTILINE            —    определяет
многостраничный редактор;

ES_UPPERCASE            —    символы переводятся в
верхний регистр;

ES_LOWERCASE          —    символы переводятся в
нижний регистр;

ES_PASSWORD             —    стиль для ввода паролей;

ES_AUTOHSCROLL    —    автоскроллинг  вправо  на  10
позиций,

если курсор находится в конце строки;

ES_AUTOVSCROLL —
при нажатии ENTER в конце страницы текст автоматически сдвигается вверх на один
экран.

В качестве
параметров сообщения WM_COMMAND передаются идентификатор дочернего
окна-редактора, индекс дочернего окна и код сообщения. Код сообщения может
быть:

EN_SETFOCUS        —    редактору текста передали
фокус ввода;

EN_KILLFOCUS      —    редактор текста потерял фокус
ввода;

EN_CHANGE            —    содержимое редактора
изменено;

EN_ERRSPACE        —    переполнение буфера редактора;

EN_HSCROLL          —    нажата клавиша
горизонтального просмотра;

EN_VSCROLL          —    нажата
клавиша горизонтального просмотра.

Окно
список

Окно список
«listbox» представляет собой прямоугольник, внутри которого находится
листаемый список из текстовых строк. Пользователь может выделить строки списка
при помощи курсора. Окно-список используется для просмотра и выбора элементов
древовидного списка. Приведем типы окна списка.

LBS_NOTIFY —
родительское окно получает информацию о любом действии пользователя в списке;

LBS_SORT — строки сортируются по алфавиту;
LBS_MULTIPLESEL — множественный  выбор  с  переключением

выбора для каждой строки;

LBS_OWNERDRAWFIXED
— отображение содержимого списка возлагается на функцию родительского окна, все
элементы списка могут иметь разную высоту;

LBS_OWNERDRAWVARIABLE
— отображение содержимого списка возлагается на функцию родительского окна, все
элементы списка могут иметь разную высоту;

LBS_HASSTRINGS — определяет
пользовательское окно-список с произвольными строками;

LBS_USETABSTOPS
— символы табуляции заменяются на пробелы;

LBS_MULTICOLUMN — определяет
многостолбцовый список; LBS_EXTENDEDSEL — в окне-списке можно делать

множественный выбор с помощью мыши и клавиши Shift.

В качестве
параметров сообщения WM_COMMAND передаются идентификатор дочернего
окна-редактора, индекс дочернего окна и код сообщения. Код сообщения может
быть:

LBN_ERRSPACE  — списку не хватает памяти;

LBN_SELCHANGE — изменен выбор элемента;

LBN_DBLCLK         —
выбор двойным нажатием кнопки мыши.

Комбинированный
список

Комбинированный список                                 представляет                            сроку

редактирования, к которой привешено  окно-список. 
Стандартные

типы
обьекта:

CBS_SIMPLE — список
отображается все время, и текущее выделение отслеживается среди элементов
списка;

CBS_DROPDOWN — то
же, что и предыдущее, но список не отображается, пока пользователь на нажмет на
левую кнопку мыши;

CBS_DROPDOWNLIST —
то же, но строка редактирования заменяется на статическую текстовую строку, ее
нельзя редактировать;

CBS_OWNERDRAWFIXED
— элементы списка отрисовываются пользователем, их высота одинакова;

CBS_OWNERDRAWVARIABLE
— элементы списка отрисовываются пользователем, их высота одинакова;

CBS_AUTOHSCROLL —
горизонтальная прокрутка в строке редактирования;

CBS_SORT
— сортировка автоматическая элементов списка.

ОБМЕН ДАННЫМИ МЕЖДУ ПРИЛОЖЕНИЯМИ

Средства обмена данными между приложениями

Одним из                 средств,                   обеспечивающим                 программную

совместимость,  является   механизм   обмена  
данными   между

различнами приложениями. Специальный почтовый ящик
(clipboard)

Windows позволяет пользователю
переносить информацию из одного приложения в другое, не заботясь об ее форматах
и представлении.

В отличие               от              профессиональных                   операциональных

операционных систем, где механизм
обмена данными между программами доступен только программисту, в Windows это
делается очень просто и наглядно для пользователя.

Механизм
обмена данных между приложениями — жизненно важное свойство многозадачной
среды. И в настоящее время

производители  программного  обеспечения 
пришли уже к выводу,

что  для  переноса  данных  из  одного  приложения 
в   другое

почтового   ящика  уже  недостаточно.  Появился 
новый,  более

универсальный механизм — OLE ( Object Linking and Embedding  )

— Встроенная объектная связь,
который позволяет переносить из одного приложения в другое разнородные данные.
Например, с помощью этого механизма данные, подготовленные в системе сетевого
планирования Time Line for Windows ( Symantec ), можно переносить в текстовый
процессор Just Write ( Symantec ), а затем, скажем, в генератор приложений
Object Vision (Borland). Правда, это уже нестандартное средство Microsoft
Windows, но тем не менее реализация OLE стала возможной именно в Windows.

Кроме
механизма почтового ящика, предназначенного, в основном, для пользователя,
программисту в Windows доступны специальные средства обмена данными между
приложениями.

Программным
путем можно установить прямую связь между задачами, например, принимая данные
из последовательного порта, автоматически помещать их, скажем, в ячейки
электронной таблицы Excel, средствами которой можно тут же отображать сложные
зависимости в виде графиков или осуществлять их обработку в реальном режиме
времени (этот механизм носит название динамического обмена данными — Dynamic
Data Exchange, DDE ).

Остановимся                  более                подробно                на              механизме

динамического обмена данными между
приложениями.

Динамический обмен между приложениями

Мы обсудим основные
идеи работы DDE и использование библиотеки DDE в своих приложениях в следующих
разделах:

— Основные термины

— Несколько слов о DDEML

— Взаимодействие Клиента и Сервера

— Транзакции, функция обратного вызова DDE

( CallBack function )

— Service, item и topic имена

— Системный режим

— Инициализация

— Основное назначение и работа функции обратного
вызова

— Обработка строк

— Service имена.
Регистрация, фильтр

— Диалог между приложениями

— Простой диалог

— Сложный диалог

— Обмен данными между приложениями

— Классы транзакций

— Определение наличия ошибок при динамическом обмене
данными.

Основные термины

Клиентское
приложение DDE — приложение, которому необходимо установить диалог с сервером и
получить данные от сервера в процессе диалога.

DDE-диалог —
взаимосвязь между клиентским и серверным приложениями.

Сервер-приложение
— DDE приложение, которое передает данные клиенту в процессе диалога.

DDE-Транзакция
-обмен сообщениями или данными между клиентом и сервером.

Item             имя  — строка,                      идентифицирующая               некоторое

множество   данных,   которое  сервер  в  состоянии 
передать

клиенту
в процессе диалога.

Service                имя —  строка,                      генерируемая                сервером
и

используемая клиентом для установления
диалога.

Строковый указатель
— двойное слово, генерируемое операционной системой, идентифицирующее строку,
передающуюся в процессе динамического обмена данными.

Topic              имя — строка,   которая   идентифицирует  
тип

данных,                необходимых                клиентскому                  приложению             при

динамическом 
обмене  данных.

Фильтр            транзакции —  флаг,                         который  
препятствует

передаче              нежелательных               типов  
транзакций   в   функцию

обратного
вызова.

Несколько
слов о DDEML

В Microsoft Windows
динамический обмен данных является формой связи, которая использует общие
области памяти для обмена данными между приложениями. Приложение может
использовать DDE в некоторый момент времени для передачи и получения новых
данных от сервера.

Механизм DDE
схож с механизмом почтового ящика, который является частью операционной системы
WINDOWS. Существует лишь незначительная разница в том, что почтовый ящик, в
большинстве случае, используется как буфер временного хранения информации. DDE
может быть инициализирован пользователем и в большинстве случаев продолжать
работать без его вмешательства.

Библиотека DDEML обеспечивает
пользователя набором средств, которые упрощают использование механизма DDE в
WINDOWS приложениях. Вместо того, чтобы обрабатывать, получать и передавать DDE
сообщения напрямую, приложения используют функции DDEML библиотеки. Библиотека
DDEML также обеспечивает работу со строками и разделяемыми данными,
генерируемыми DDE приложениями. Вместо того, чтобы использовать указатели на общие
области памяти, DDE приложения создают и обмениваются строковыми указателями,
которые идентифицируют строки и данные.

Уже существующие приложения,
использующие протокол DDE, основанный на сообщениях полностью совместимы с
теми, которые используют библиотеку DDEML. Вот почему приложение, использующее
DDE-протокол могут установить диалог и выполнять транзакции с приложениями,
использующими библиотеку DDEML.

Взаимосвязь между клиентом и сервером.

DDE возникает всегда между клиентским
приложением и серверным. Клиентское приложение инициализирует обмен данными
путем установления диалога с сервером и передачи транзакции. Транзакция
необходима для данных и обслуживания. Сервер отвечает на транзакцию и
обеспечивает клиента данными. Сервер может иметь сразу несколько клиентов в
одно и тоже время, в свою очередь, клиент может получать данные сразу от
нескольких серверов. Некоторое приложение одновременно может быть и клиентом и
сервером. В добавок к вышесказанному, клиент и сервер могут оборвать диалог в
любое удобное для них время.

Транзакции, функция обратного вызова DDE

(
CallBack function )

DDEML информирует
приложение об активности DDE путем передачи транзакции в функцию обратного
вызова данного приложения. DDE транзакция схожа с обыкновенным сообщением — это
именованная константа, сопровождаемая другими параметрами, которые содержат
дополнительную информацию о текущей транзакции.

DDEML передает транзакцию в
функцию обратного вызова приложения, которая выполняет некоторое действие
согласно типу и виду транзакции. Например, когда клиентское приложение пытается
установить дилог с сервером, клиент вызывает функцию DdeConnect. Это означает,
что DDEML должна послать транзакцию XTYP_CONNECT в функцию обратного вызова
сервера. Функция обратного вызова может позволять или не позволять установку
диалога, возвращая TRUE или FALSE DDEML.

Вспомогательные имена и другие названия

DDE сервер использует
три зарезервированных типа имен, расположенных иерархично: service, topic item
— уникально идентифицируют некоторое множество данных, которое сервер может
передать клиенту в процессе диалога.

Service имя
— это строка, которую генерирует сервер в те промежутки времени, в которые
клиент может установить диалог с сервером.

Topic имя —
это строка, которая идентифицирует логический контекст данных. Для сервера,
который манипулирует файлами, topic имена это просто названия

файлов;   для  других  серверов  —  это 
специфические  имена

конкретного                приложения.                Клиент             обязательно                должен

указывать  topic  имя  вместе  с  service  именем, 
когда  он

хочет
установить диалог с сервером.

Item имя — это
строка, которая идентифицирует некоторое множество данных, которое сервер может
передать клиенту в процессе транзакции. Например, item имя может
идентифицировать ЦЕЛОЕ ( int, integer ), СТРОКУ ( string, char * ), несколько
параграфов текста, или BITMAP образ.

Все              вышеуказанные                 имена            позволяют              клиенту

установить
диалог с сервером и получить от него данные.

Системный
режим

Системный режим
работы обеспечивает клиента всей необходимой информцией о сервере.

Для того,
чтобы определить, какие серверы доступны в данный момент времени, а также какой
информацией они могут обеспечить клиента, последний, находясь в начальном
режиме работы, должен установить имя устройства, равное NULL. Такой шаблон
диалога максимально увеличивает эффективность работы, а также работу с сервером
в системном режиме. Сервер, в свою очередь, должен поддерживать нижеописанные
item имена, а также другие, часто используемые клиентом:

SZDDESYS
ITEM TOPICS — список item имен, с которыми может работать сервер в данный
момент времени. Этот список может изменяться время от времени.

SZDDESYS
ITEM SYSITEMS — список item имен, с которыми может работать сервер в системном
режиме.

SZDDDESYS
ITEM STATUS — запросить текущий статус сервера. Обычно, данный запрос
поддерживается только в формате CF_TEXT и содержит строку типа Готов/Занят.

SZDDE          ITEM          ITEMLIST            —            список   item   имен,

поддерживаемых  сервером  в  несистемном  режиме
работы. Этот

список
может меняться время от времени.

SZDDESYS             ITEM             FORMATS            —            список              строк,

представляющий  собой  список  всех форматов почтового
ящика,

поддерживаемых   сервером   в   данном   диалоге.  
Например,

CF_TEXT
формат представлен строкой TEXT.

Инициализация

Перед вызовом любой функции DDEML, приложение
должно вызвать функцию DdeInitialize. Эта функция получает идентификатор копии
данного приложения, регистрирует функцию обратного вызова приложения
посредством DDEML и указывает флаг фильтра транзакции для функции обратного
вызова.

Каждое            приложение              или            DLL  
должно   содержать

идентификатор  своей  копии,  например,  в  параметре
idInst.

Он необходим любой функции DDEML.
Это очень легко поддается объяснению: назначение DDEML — поддержка механизма
DDE в приложениях, несколько копий которых может быть запущено в данный момент
времени. Однако приложение НЕ МОЖЕТ использовать более одной копии DDEML.

Фильтр               транзакции                  оптимизирует                эффективность

системы путем предотвращения
передачи нежелательных типов транзакций в функцию обратного вызова. Приложение
устанавливает фильтр транзакции при вызове функции DdeInitialze. Приложение
должно указать флаг фильтра транзакции для каждого типа транзакции, которые не
будут обрабатываться в функции обратного вызова. Однако любое приложение может
изменить фильтр транзакции путем дополнительного вызова функции DdeInitialize.
Приведем пример инициализации DDE-диалога.

DWORD idInst = 0;

HINSTAINCE
hInst;

DdeInitialize( &idIns,                                   //
Копия приложения

( PFNCALLBACK ) DdeCallback, //
Адрес CallBack функции CBF_FAIL_EXECUTES | // Фильтр XTYPE_EXECUTE
CBF_SKIP_ALLNOTIFICATIONS, 0 );// Фильтр NOTIFICATIONS

Каждое              приложение                 должно            вызывать              функцию

DdeUninitialize,                         когда             оно            больше            не  
собирается

использовать DDEML. Эта функция прекращает текущий
диалог и освобождает ресурсы DDEML, предоставленные системой для установления
диалога.

Основное назначение и работа функции обратного вызова

Приложение,               которое              использует                DDEML,  
должно

содержать функцию обратного
вызова, которая обрабатывает события, полученные приложением. DDEML уведомляет
приложение о таких событиях путем посылки транзакций в функцию обратного вызова
данного приложения.

В          зависимости                от            флага  
фильтра   транзакции,

сформированного при вызове функции
DdeInitialize, функция обратного вызова получает отсортированные транзакции вне
зависимости от того, является ли данное приложение клиентом, сервером или тем и
другим одновременно. Следующий пример демонстрирует наиболее типичное использование
функции обратного вызова.

HDDEDATA CALLBACK DdeCallback(
uType, uFmt, hconv, hsz1, hsz2, hdata, dwData1, dwData2 )

UINT uType;                       //     Тип
транзакции

UINT uFmt;                         //     Формат
почтого ящика

HCONV hconv;                  //     Идентификатор
диалога

HSZ hsz1;                             //     Идентификатор
строки #1

HSZ
hsz2;                             //     Идентификатор строки #2

HDDEDATA hdata; // Идентификатор
глобального объекта памяти DWORD dwData1; // Данные текущей транзакции #1

DWORD dwData2;            // Данные текущей
транзакции #2

switch (uType)

case XTYP_REGISTER:

case XTYP_UNREGISTER:

. . .

return
(HDDEDATA) NULL;

case XTYP_ADVDATA:

. . .

return (HDDEDATA) DDE_FACK;

case XTYP_XACT_COMPLETE:

. . .

return
(HDDEDATA) NULL;

case XTYP_DISCONNECT:

. . .

return
(HDDEDATA) NULL;

default:

return (HDDEDATA) NULL;

Параметр             uType            идентифицирует                тип            посланной

транзакции в функцию обратного вызова при помощи
DDEML. Значения оставшихся параметров зависят от типов транзакции. Типы
транзакций будут обсуждены нами в разделе «Обработка Транзакций».

Обработка строк

Для           того,   чтобы   работать   в   режиме  
диалога,

большинство DDEML функций требуют
наличия доступа к строкам. Например, клиент должен в явном виде указывать
service и topic имена, когда приложение вызывает функцию DdeConnect для
установления диалога с сервером. Приложение указывает строку путем передачи ее
идентификатора в соответствующее место (также как и в случае указателя на DDEML
функцию). Идентификатор строки — это двойное слово, определяемое системой.

Приложение             может   получить  
идентификатор   строки

путем                             вызова                           соответствующей                              функции

DdeCreateStringHandle. Эта функция
регистрирует строку в системе и возвращает ее идентификатор приложению.
Следующий пример получает идентификатор строки для строк System topic и
Service-name.

HSZ hszServName;

HSZ hszSysTopic;

. . .

hszServName = DdeCreateStringHandle(

idInst,                               //
Копия приложения

«MyServer»,                     // Строка
для регистрации

CP_WINANSI);              //
Кодовая страница Windows ANSI

hszSysTopic = DdeCreateStringHandle(

idInst,                               // Копия приложения

SZDDESYS_TOPIC, // Строка для
регистрации CP_WINANSI);    // Кодовая страница
Windows ANSI

.
. .

Параметр                     idInst                      содержит                   идентификатор,

возвращенный
функцией DdeInitialize.

Функция обратного
вызова получает один или более строковых идентификаторов при обработке
большинства DDE-транзакций. Например, сервер получает два идентификатора строк
в процессе транзакции типа XTYP_REQUEST: один идентификатор — это строка,
описывающая topic имя, а другой — item.

Приложение                может               получать                 длину               строки,

соответствующую   идентификатору   строки  и 
копировать  эту

строку  в  некоторый  буфер, предварительно
зарезервированный

приложением.

Все вышеуказанные
действия можно проделать при помощи вызова функции DdeQueryString, как
продемонстрировано в следующем примере:

DWORD idInst;

DWORD cb;

HSZ hszServ;

PSTR pszServName;

. . .

cb = DdeQueryString(idInst, hszServ, (LPSTR) NULL, 0,

CP_WINANSI) + 1;

pszServName = (PSTR) LocalAlloc(LPTR, (WORD) cb);

DdeQueryString(idInst, hszServ, pszServName, cb,
CP_WINANSI);

.
. .

Итак,              функция             DdeQueryString                   создает  
строку,

используя               строковый   идентификатор,  
а   затем   функция

DdeCreateStringHandle создает
строковый идентификатор из строки. Следует отметить, что два идентификатора НЕ
СУЩЕСТВУЮТ в одно и тоже время.

DWORD idInst;

DWORD cb;

HSZ hszInst, hszNew;

PSZ pszInst;

. . .

DdeQueryString(idInst, hszInst, pszInst, cb,
CP_WINANSI); hszNew = DdeCreateStringHandle(idInst, pszInst, CP_WINANSI); //
hszNew != hszInst !

.
. .

При           возвращении               некоторого                значения 
 функцией

обратного               вызова             идентификатор                строки              портится.
В

приложении можно сохранить идентификатор при помощи
функции DdeKeepStringHandle и использовать этот идентификатор после вызова
функции CallBack.

Когда                          приложение                         вызывает                         функцию

DdeCreateStringHandle и указывает
строку, которая уже существует, система помещает эту строку в таблицу и
генерирует некоторый идентификатор, необходимый для быстрого и корректного
доступа к этой строке. Система также сохраняет количество использования каждой
строки в этой же таблице.

Если
приложение пытается определить строку, которая уже существует в таблице,
система просто увеличивает ее количество использования, а при вызове функции
DdeFreeStringHandle, соответственно уменьшает на 1. Строка удаляется из
таблицы, когда ее количество использования равно 0. Service имена. Регистрация,
фильтр.

DDEML
позволяет регистрировать service имена для сервера и не посылать транзакцию
вида XTYP-CONNECT для неподдрерживаемых service имен в функцию обратного
вызова. Остановимся на обсуждении этого вопроса более подробно.

При
регистрации service имен в DDEML, сервер информирует другие DDE-приложения в
системе о том, что текущий сервер доступен для обмена данными.

Сервер
регистрирует service имя путем вызова функции DdeNameService и указывает
идентификатор строки, связанной с именем.

При
получении вышеуказанных данных DDEML посылает транзакцию вида XTYP-REGISTER в
функцию обратного вызова каждого DDEML-приложения в системе (за исключением
только тех, которые указали флаг фильтрации GBF_SKIP_REGISTRATION в функции
DdeInitialize).

Транзакция                       XTYP_REGISTER                   передает                       два

идентификатора  строк  в  функцию обратного вызова:
первый из

них  указывает  на  основное  service  имя,  а 
второй  —  на

строку,
содержащую системную информацию.

Обычно клиент
использует основное service имя в списке всех доступных серверов так, что
конечный пользователь может выбрать необходимый ему сервер, перемещаясь по
этому списку. Также клиент использует системную информацию для
непосредственного установления диалога с сервером.

Сервер может
использовать функцию DdeNameServise для того, чтобы сбросить регистрацию
service имени. Это оэначает, что DDEML необходимо послать транзакцию вида
XTYP_UNREGISTER в оставшиеся DDE-приложения с информацией о том, что они больше
не смогут использовать данное service имя для установления диалога.

Сервер должен вызывать функцию
DdeNameServise для регистрации его service имени сразу после вызова функции
DdeInitialize. Сервер должен сбрасывать свое service имя сразу после вызова
функции DdeUninitialize. Помимо регистрации service имени функция
DdeNameService поэволяет включать или выключать серверу ее собственный фильтр
service имени.

Когда сервер выключает фильтр,
DDEML посылает транзакцию вида XTYP_CONNECT в функцию обратного вызова сервера
вне зависимости от того совпадают ли вызываемое service имя с
зарегистрированным или нет при вызыве клиентом функции DdeConnect. Когда сервер
включает фильтр, транзакция вида XTYP_CONNECT посылается лишь в том случае,
когда вызываемое service имя совпадает с зарегистрированным.

По умолчанию, фильтр включен лишь
тогда, когда приложение вызывает функцию DdeInitialize. Это необходимо для
предотвращения генерации транзакции XTYP_CONNECT до того как созданы
необходимые идентификаторы строк. Сервер может выключить фильтр путем установки
флага DNS_FILTEROFF при вызове функции DdeNameService. Флаг DNS_FILTERON
включает фильтр.

Диалог между приложениями

Диалог               между            клиентом              и           сервером              всегда

устанавливается   по   требованию   клиента.   Когда  
диалог

установлен,  оба  партнера  получают  идентификатор, 
который

описывает              данный            диалог.

Партнеры                  используют                    этот                  идентификатор
в

большинстве  функций  DDEML  для  посылки транзакций и
для их

обработки.  Клиенту  может  потребоваться  диалог как
с одним

сервером,
так и с несколькими.

Рассмотрим подробно как приложение
устанавливает диалог и получает информацию о уже существующих каналах связи.

Простой Диалог

Клиентское
приложение устанавливает простой диалог с сервером путем вызова функции
DdeConnect и определяет идентификаторы строк, которые содержат всю необходимую
информацию о service имени текущего сервера и интересущем клиента в данный
момент topic имени.

DDEML
отвечает на вызов этой функции посылкой соответствующей транзакции XTYP_CONNECT
в функцию обратного вызова каждого доступного в данный момент времени сервера,
зарегистрированное имя которого совпадает с именем, переданным при помощи
функции DdeConnect при условии, что сервер не отключал фильтр service имени
вызовом функции DdeServiceName.

Сервер                может            также             установить                фильтр             на

XTYP_CONNECT транзакцию заданием
соответствующего флага CBF_FAIL_CONNECTIONS при вызове функции DdeInitialize.

В процессе
обработки транзакции типа XTYP_CONNECT DDEML передает полученные от клиента
service и topic имена серверу. Сервер должен проверить эти имена и возвратить

TRUE, если он в состоянии работать
с такими именами, и FALSE в противном случае. Если ни один из существующих
серверов не отвечает на CONNECT-запрос клиента, функция DDeConnect возвращает
ему NULL с информацией о том, что в данный момент времени НЕ возможно
установить диалог.

Однако, если
сервер возвратил TRUE, то диалог был успешно установлен и клиент получает
идентификатор диалога

— двойное слово, посредством
которого и ведется обмен данными с сервером.

Затем                  сервер                   получает                 транзакцию                 вида

XTYP_CONNECT_CONFIRM (в случае,
если он НЕ описывал флаг фильтра CBF_FAIL_CONFIRMS при вызове соответствующей
функции).

В          нижеприведенном   примере  
производится   попытка

установить диалог с сервером, который в состоянии
работать с service именем ‘My Server’ в системном режиме. Считаем, что
параметры hszSysTopic и hszServName уже предварительно созданы нами ранее.

HCONV hConv;

HWND hwndParent;

HSZ hszServName;

HSZ hszSysTopic;

. . .

hConv = DdeConnect(

idInst,                                               //
Копия приложения

hszServName,                                 // Идентификатор service-имени

handle hszSysTopic, // Идентификатор system-topic-имени (PCONVCONTEXT) NULL); // Используем
контекст по умолчанию

if( hConv == NULL )

MessageBox( hwndParent, «MyServer НЕ
доступен!»,

(LPSTR) NULL, MB_OK );

return FALSE;

.
. .

В этом примере
функция DdeConnect заставляет DDEML посылать транзакцию вида XTYP_CONNECT в
функцию обратного вызова сервера MyServer.

А теперь
приведем пример функции обратного вызова сервера, который обрабатывает
транзакцию XTYP_CONNECT и сравнивает свое зарегистрированное имя с именем,
полученным от клиента. Как уже было отмечено ранее, если они совпадают, то
сервер в состоянии установить диалог с клиентом.

#define CTOPICS 5

HSZ hsz1;                                                     //
Идентификатор строки,

полученный
от DDEML.

HSZ
ahszTopics[CTOPICS]; // Массив поддреживаемых topic имен int
i;                   // Счетчик цикла

.

. // Для обработки транзакций используем стандартную
ANSI C . // конструкцию switch —> case —> default.

.

case XTYP_CONNECT:

for (i = 0; i < CTOPICS; i++)

if (hsz1 == ahszTopics[i])

return TRUE;   // Установка
диалога

return FALSE; // Topic имя НЕ
поддерживается, диалог запрещен.

.

. // Обработка других типов транзакций.

.

Если сервер
возвращает TRUE в ответ на транзакцию XTYP_CONNECT, DDEML посылает транзакцию
вида XTYP_CONNECT_CONFIRM в функцию обратного вызова данного сервера. Обработав
эту транзакцию, сервер может получить идендификатор диалога.

Вместо
конкретного имени сервера клиент может установить шаблон диалога путем
установки идентификаторов service и topic имен в NULL при вызове функции
DdeConnect.

Если               хотя               бы           один            из            вышеперечисленных

идентификаторов  равен  NULL,  DDEML посылает
транзакцию типа

XTYP_WILDCONNECT в функцию
обратного вызова всех активных в данный момент DDE-приложений (исключения
составляют лишь те, кто при вызове соответствующей функции указал флаг
фильтрации XTYP_WILDCONNECT).

Любое
сервер-приложение должно ответить на данную транзакцию и возвратить указатель
на массив структур типа HSZPAIR, оканчивающийся нулем.

Если               сервер-приложение                   НЕ          вызывает              функцию

DDeNameService для регистрации
собственного service имени в системе и фильтр обработки транзакций включен, то
сервер НЕ получит транзакцию вида XTYP_WILDCONNECT.

Вышеописанный               массив             должен            содержать              одну

структуру для каждого service и
topic имен. DDEML выбирает одну пару из массива для установления диалога и
возвращает его идентификатор клиенту. Затем DDEML посылает серверу транзакцию
вида XTYP_CONNECT_CONFIRM (исключения составляют лишь те серверы, которые при инициализации
установили фильтр обработки транзакций).

Продемонстируем                  использование                 транзакции               вида

XTYP_CONNECT.

#define
CTOPICS 2

UINT uType;

HSZPAIR ahszp[(CTOPICS + 1)];

HSZ
ahszTopicList[CTOPICS];

HSZ hszServ, hszTopic;

WORD i,
j;

if (uType == XTYP_WILDCONNECT)

// Сканируем список topic имен и создаем массив

// структур типа HSZPAIR

j = 0;

for (i = 0; i < CTOPICS; i++)

if (hszTopic == (HSZ) NULL
||

hszTopic == ahszTopicList[i])

ahszp[j].hszSvc = hszServ;

ahszp[j++].hszTopic = ahszTopicList[i];

//

// Последний элемент массива всегда NULL.

//

ahszp[j].hszSvc = NULL;

ahszp[j++].hszTopic
= NULL;

//

// Возвращаем дискриптор глобального объекта памяти,

// содержащий структуры типа HSZPAIR.

//

return DdeCreateDataHandle(

idInst,                                  // Копия приложения

(LPBYTE)
&ahszp, // Указатель на массив типа HSZPAIR

sizeof(HSZ) * j, // Длина массива

0,                                          //
Начальное смещение

(HSZ) NULL,                     // item-имя не
существует

0,                                          // формат
item-имени также

// не существует

0);                                        //
Возлагаем все работу

// с массивом на систему

Любой сервер или
клиент может оборвать диалог в любое время путем вызова функции DdeDisconnect.
Это означает, что партнер по обмену данными получает транзакцию типа
XTYP_DISCONNECT в функции обратного вызова (если, конечно, партнер не установил
фильтр обработки транзакций вида CBF_SKIP_DISCONNECTIONS).

Обычно              приложение                 реагирует               на           транзакцию

XTYP_DISCONNECT вызовом функции
DdeQueryInfo для получения информации о прекращенном диалоге. После того, как
функция обратного вызова обработала транзакцию типа XTYP_DISCONNECT,
идентификатор диалога больше не существует.

Клиентское
приложение, которое получает транзакцию типа XTYP_DISCONNECT в своей функции
обратного вызова может попытаться возобновить диалог при промощи вызова

функции  DdeReconnect.  Клиентское  приложение
может вызывать

эту   функцию   только   находясь  внутри  своей 
собственной

функции
обратного вызова.

Сложный
диалог

Клиентское
приложение может использовать функцию DdeConnectList для того, чтобы определить
какие сервер-приложения существуют в системе в данный момент времени.

Клиент
обязательно должен описывать service и topic имена, когда он вызывает эту
функцию; это означает, что DDEML должна послать транзакцию вида XTYP_CONNECT
все функции обратного вызова всех имеющихся в данный момент сервер-приложений,
чьи зарегистрированные имена совпадают с именами, указанными клиентом
(исключение составляют лишь те серверы, которые фильтруют получаемые
транзакции).

В добавление
к вышесказанному, можно отметить, что клиент, при вызове функции
DdeConnectList, может указать NULL в качестве service или topic имени, либо же
сразу для обоих. Все доступные в системе серверы, чьи зарегистрированные имена
совпадают с именами, указанными клиентом, отвечают на его запрос. Диалог устанавливается
со всеми такими серверами, даже если в системе запущено одно и тоже
сервер-приложение несколько раз.

Клиент                          может                       использовать                            функции

DdeQueryNextServer и
DdeQueryConvInfo для того, чтобы понять, какой сервер находится в списке,
полученный при вызове функции DdeConnectList. DdeQueryNextServer возвращает
идентификатор диалога для следующего сервера, находящегося в списке;
DdeQueryConvInfo заполняет структуру CONVINFO информацией о диалоге.

Клиент может
сохранить полученные идентификаторы диалогов и отказаться от просмотра
оставшихся серверов в списке.

Приведем                     пример                     использования                         функции

DdeConnectList                   для            установления                диалога  
со   всеми

серверами,  которые  поддерживают  имя  ‘system
topic’, затем

будем                    использовать                      функции                  DdeQueryConvInfo
и

DdeQueryNextServer                    для            получения  
их   идентификаторов

service  имен,  одновременно  не  забывая сохранить
последние

во
временном буфере.

HCONVLIST hconvList;          //     Список диалогов

DWORD idInst;                          //     Дискриптор приложения

HSZ hszSystem;                          //     System
topic

HCONV hconv = NULL;           //     Идентификатор
диалога

CONVINFO ci;                            //     Информация
о диалоге

UINT cConv = 0;                        //     Количество
идентификаторов диалогов

HSZ
*pHsz, *aHsz;                    //     Указатель на идентификатор строки

// Присоединяемся ко всем серверам, поддерживающим

//
System topic.

hconvList = DdeConnectList(idInst, NULL, hszSystem,

NULL,
NULL);

//
Вычисляем количество серверов в списке.

while((hconv = DdeQueryNextServer(hconvList,hconv)) !=
NULL)

cConv++;

//
Выделяем буфер для сохранения идентификаторов строк.

hconv = NULL;

aHsz =
(HSZ *) LocalAlloc(LMEM_FIXED, cConv * sizeof(HSZ));

//
Копируем идентификатор строки в буфер.

pHsz = aHsz;

while((hconv = DdeQueryNextServer(hconvList,hconv)) !=
NULL)

DdeQueryConvInfo(hconv,
QID_SYNC, (PCONVINFO) &ci);

DdeKeepStringHandle(idInst, ci.hszSvcPartner);

*pHsz++ = ci.hszSvcPartner;

.

. // Используем идентификатор: ‘общаемся’ с сервером.

.

//
Освобождаем память и прекращаем диалог.

LocalFree((HANDLE) aHsz);

DdeDisconnectList(hconvList);

Приложение может
оборвать индивидуальный диалог, находящийся в списке диалогов путем вызова
функции DdeDisconnect; приложение может оборвать все диалоги, находящиеся в
списке путем вызова функции DdeDisconnectList.

Обе           вышеуказанные               функции             указывают              DDEML
о

необходимости  посылки  транзакции  вида 
XTYP_DISCONNECT  во

все  функции  партнеров  по  диалогу  данного 
приложения  (в

случае             использования   функции  
DdeDisconnectList   будет

посылаться  транзакция  XTYP_DISCONNECT  для каждого
элемента

в
списке диалогов).

Обмен
данными между приложениями

Так как DDE
использует области памяти для передачи данных из одного приложения в другое,
DDEML обеспечивает конечного программиста функциями, при помощи которых
DDE-приложения могут создавать и обрабатывать DDE-объекты.

Весь спектр
транзакций, который вызывает обмен данными, требует от приложения,
экспортирующего их, создания некоторого буфера, содержащего эти данные, а затем
вызова функции DdeCreateDataHandle.

Эта функция
создает DDE-объект, копирует данные из буфера в этот объект и возвращает
идентификатор данных для

данного приложения.

Идентификатор
данных-это двойное слово, которое использует DDEML для обеспечения доступа к
данным в DDE-объекте.

Для того,
чтобы разделять данные в DDE-объекте, приложение передает идентификатор данных
DDEML, а затем DDEML передает его в функцию обратного вызова приложения,
получающего данные.

В
нижеприведенном примере показано, как создать DDE-объект и получить его
идентификатор. В процессе обработки транзакции типа XTYP_ADVREQ, функция
обратного вызова конвертирует текущее время в ASCII строку, копирует строку в
вспомогательный буфер, а затем создает DDE-объект, содержащий вышеуказанную
строку. Функция обратного вызова возвращает идентификатор DDE-объекта DDEML,
которая передает этот идентификатор клиентскому приложению.

typedef struct tagTIME

INT              hour;   // 0 — 11 формат времени для часов.

INT              hour12; // 12-ой формат.

INT              hour24; // 24-ой формат.

INT              minute;

INT              second;

INT              ampm;   // 0 —> AM , 1 —> PM

 TIME;

HDDEDATA EXPENTRY DdeCallback

(uType, uFmt, hconv, hsz1, hsz2, hdata, dwData1,
dwData2)

UINT uType;

UINT uFmt;

HCONV hconv;

HSZ hsz1;

HSZ hsz2;

HDDEDATA hdata;

DWORD dwData1;

DWORD dwData2;

CHAR
szBuf[32];

switch (uType)

case
XTYP_ADVREQ:

case XTYP_REQUEST:

if ((hsz1 == hszTime && hsz2 == hszNow)
&&

(uFmt == CF_TEXT))

//
Копируем строку в буфер.

itoa(tmTime.hour, szBuf, 10);

lstrcat(szBuf,
«:»);

if (tmTime.minute < 10)

lstrcat(szBuf, «0»);

itoa(tmTime.minute, &szBuf[lstrlen(szBuf)], 10);

lstrcat(szBuf,
«:»);

if (tmTime.second < 10)

strcat(szBuf,
«0»);

itoa(tmTime.second, &szBuf[lstrlen(szBuf)], 10);

szBuf[lstrlen(szBuf)]
= ‘\0’;

// Создаем глобальный объект и возвращаем его

//
идентификатор

return (DdeCreateDataHandle(

idInst,                                          //
копия приложения

(LPBYTE) szBuf,                     // исходный буфер

lstrlen(szBuf) + 1,

0,                                                  //
смещение от его начала

hszNow,                                      //
item-имя

CF_TEXT,                                  //
формат почтого ящика

0));

else   return (HDDEDATA) NULL;

.

. // Обработка других типов транзакций.

.

Клиентское               приложение              получает              указатель                на

DDE-объект путем передачи
идентификатора данных функции DdeAccessData. Указатель, возвращаемый этой
функцией, обеспечивает доступ к данным в формате ‘ТОЛЬКО НА ЧТЕНИЕ’. Клиент
должен просмотреть полученные данные при помощи этого указателя и вызвать
функцию DdeUnaccessData для его уничтожения. Клиент может скопировать
полученные данные в заранее приготовленный буфер посредством вызова функции
DdeGetData.

В следующем
примере мы получим указатель на DDE-объект, сохраним его в параметре hData,
скопируем содержимое во временный буфер и уничтожим указатель:

HDDEDATA hdata;

LPBYTE lpszAdviseData;

DWORD cbDataLen;

DWORD i;

char
szData[32];

. . .

case XTYP_ADVDATA:

lpszAdviseData = DdeAccessData(hdata, &cbDataLen);

for (i = 0; i < cbDataLen; i++)

szData[i] = *lpszAdviseData++;
DdeUnaccessData(hdata); return (HDDEDATA) TRUE;

. . .

Обычно, когда
приложение, создающее идентификатор данных, передает его DDEML, этот идентификатор
портится внутри вышеуказанного приложения. В этом нет ничего страшного, если
сервер должен разделять данные только с одним клиентом. Если же сервер должен
разделять данные сразу с несколькими клиентами одновременно, ему придется
указывать флаг HDATA_APPOWNED при вызове функции

DdeCreateDataHandle.

Это делает
возможным получение прав собственности на DDE-объект сервер-приложения и
предотвращает порчу идентификатора данных DDEML. Приложение может передавать
DDEML идентификатор данных любое количество раз, однако вызывать функцию
DdeCreateDataHandle можно лишь однажды.

Если
приложение указывает флаг HDATA_APPOWNED в параметре atCmd при вызове функции
DdeCreateDataHandle, оно обязательно должно вызывать функцию DdeFreeDataHandle
для очистки памяти вне зависимости от того, передавался ли идентификатор данных
DDEML или нет. Перед тем как оборвать диалог, приложение должно вызывать
функцию DdeFreeDataHandle для очистки всех созданных идентификаторов, но
которые так и не были переданы DDEML.

Если приложение
еще не передало идентификатор DDE-объекта DDEML, то оно может добавить данные к
уже существующему объекту или полностью заменить их в нем. Все эти сервисные
функции обслуживаются функцией DdeAddData.

Обычно приложение использует эту
функцию для новой инициализации старых не уничтоженных DDE-объектов. После
того, как приложение передает идентификатор данных DDEML, DDE-объект,
идентифицирующий этот идентификатор НЕ может быть изменен, однако он может быть
уничтожен.

Классы транзакций

DDEML содержит
четыре класса транзакций. Каждый класс описывается некоторой константой,
начинающейся с префикса XCLASS. Эти классы полностью описаны в соответствующем
заголовочном файле DDEML. Каждая константа является комбинацией типов
транзакций и передается функции обратного вызова приложения, получающего данные
от сервера в текущий момент времени.

Вышеописанные                классы                определяют              возвращаемое

значение,   которое   ожидает   получить   DDEML  от 
функции

обратного               вызова             приложения,  
обрабатывающего   данную

транзакцию.  Ниже  представлена  сводная таблица
возвращаемых

значений              функции   обратного   вызова,  
а   также   типов

транзакций,   связанных   с   каждым   из   четырех  
классов

транзакций.

Класс

Возвращ

е значение

Транзакция

XCLASS_BOOL

TRUE или FALSE

TYP_ADVSTART

TYP_CONNECT

XCLASS_DATA

Идентификатор

данных,

CBR_BLOCK или NULL

XTYP

XTYP

XTYP

ADVREQ

REQUEST

WILDCONNECT

XCLASS_FLAGS

Флаг транзакций:

DDE_FACK

DDE_FNOTPROCESSED

DDE_FBUSY

XTYP_ADVDATA

XTYP_EXECUTE

XTYP_POKE

XCLASS_NOTIFICATION

Не возвращает

XTYP

XTYP

XTYP

XTYP

XTYP

XTYP

XTYP

ADVSTOP

CONNECT_CONFIRM

DISCONNECT

ERROR

REGISTER

UNREGISTER

XACT_COMPLETE

Определение ошибок

Если исполнение
DDEML-функции завершилось аварийно, приложение может вызвать функцию DdeGetLastError
для определения причины сбоя. DdeGetLastError возвращает код ошибки,
по-которому можно определить причины фатального завершения DDEML-функции.

-49-

СПИСОК
ЛИТЕРАТУРЫ

1. НОРТОН П., ЙАО П. Программирование на
Borland C++ в среде Windows: В 2-х томах. Киев:»Диалектика», 1993.

2. Гладков С.А. Фролов Г.В. Программирование в
Microsoft Windows:

В
2-х частях. М.:»ДИАЛОГ-МИФИ», 1992.

3. Microsoft Windows Software Development Kit. Version
3. Programmer’s Reference, Programming Tools, Windows Extensions.

4.
Charles Petzold. Programming Windows. Microsoft Press.

5. Библия Windows 3.X. М.: И.В.К. — Софт,
1992.

Письменная экзаменационная работа

на тему:

Операционные системы Windows

Содержание

1. Введение…………………………………………………………………3

2. История создания………………………………………………………4

2.
Windows
9
x
/
NT
………………………………………………………….5

3. Операционная система Microsoft Windows………………………….5

4.Преимущества и недостатки
Windows
……………………………….7

5.
Некоторые клавиатурные комбинации
Windows
9
x
и
NT
…10

6. Заключение……………………………………………………………..14

7.Список литературы…………………………………………………….15

Введение.

На сегодняшний момент операционная система Windows фирмы Microsoft во всех ее проявлениях бесспорно считается самой распространенной опера­ционной системой на ПК: в мире более 150 млн. IBMPC-совместимых компьютеров, и система Windows установлена на 100 млн. из них. Очевидно, что озна­комление с ПК необходимо начинать с ознакомления с Windows, ведь без нее работа на ПК немыслима для большинства пользователей. Знание системы Windows — необходимый кирпичик в стене познания ПК.

Первоначально, Windows, разрабатывалась не как операционная система, какой мы привыкли видеть современные ее версии, а как графическая оболочка MS-DOS. Надо отметить, что концепция графического интерфейса была разработана отнюдь не Microsoft. Уже за несколько лет до внедрения Windows существовали компьютеры AppleMacintosh, с графической операционной системой (MacOS), интерфейс которой был более дружественным и понятным рядовому пользователю, в отличие от командной строки MS-DOS. Строго говоря, Windows, не единственная попытка избавить пользователя от командной строки на IBM-совместимых компьютерах. Очень известной, в свое время была псевдографическая (на самом деле работавшая в текстовом режиме), оболочка NortonCommander корпорации Symantec. Она ускоряла в несколько раз процесс навигации по дисковому пространству, к тому же, более естественно представляла иерархию каталогов в виде дерева. Однако, Windows появилась раньше Norton, хотя Norton был более популярен, в частности, из — за низких системных требований.

История создания

Начало

те времена, когда работа над Windows только начи­налась, считалось, что будущее принадлежит интег­рированным средам. Фирма VisiCorp — создатель пер­вой электронной таблицы VisiCalc, занималась созда­нием пакета Vision, работавшего в текстовом режиме с возможностью управления манипулятором «мышь». Пакет предназначался для объединения нескольких приложений одной многооконной оболочкой. Фирма Quarterdesk в то время разрабатывала пакет DESQ, который впоследствии стал основой для ее многоза­дачной среды DESQView.

Позиция фирмы Microsoft была иной. После посеще­ния исследовательского центра Xerox PARC прези­дент фирмы Билл Гейтс решил заняться созданием графической среды, которая послужила бы стандарт­ной платформой для разработчиков прикладных про­грамм. Тогда же этот центр посетил и Стив Джобб, создатель компьютеров Macintosh и, позднее, NeXT. Какое впечатление на обоих молодых людей оказало увиденное, хорошо известно. Итак, Microsoft поста­вила себе задачу по созданию платформы для разра­ботчиков. Предполагалось обеспечить разработчиков встроенными функциями для реализации пользова­тельского интерфейса и его компонентов — окон, меню, панелей диалога, которые могли бы управ­ляться с помощью клавиатуры или мыши.

Когда работа над средой Windows только начиналась, в распоряжении Microsoft был компьютер с процес­сором 8088 и максимальным объемом памяти 640 Кбайт. Предполагалось, что пользователи этой среды имеют порядка 256 Кб памяти, а жесткий диск им не доступен из-за высокой цены. Налучшим графиче­ским адаптером в те времена был CGA с разрешением 320 на 200 при работе с четырьмя цветами. Адаптер Hercules обеспечивавший разрешение 720 на 348 в монохромном режиме был тогда новинкой. Работа графической среды в таких условиях была безумно медленной. В 1983 г стали просачиваться первые cведения о разработке Windows.

.

И, наконец,
Windows 1.0

огда фирма Microsoft созвала пресс-конференцию на выставке Comdex, проходившей в ноябре 1985 года в Лас-Вегасе, многие посчитали это событие последним шансом, особенно после того как среда Windows не была выпущена, как было обещано, в июне того же года. Пресс-конференция плавно пере­текла в презентацию нового продукта — Microsoft Windows 1.0.

Windows

9

x

/

NT

indows («окна») – повсеместно распространенная, по существу, стандартная многозадачная операционная система для современных IBM – совместимых компьютеров. Существуют два главных её семейства: условно говоря, для домашнего использования (Windows версии 3.1, 3.11, 95, 98 и MillenniumEdition) и для профессиональных применений ( WindowsNT версий 3.5, 4.0, 2000 и ХР). Системы первого типа ставят, конечно же, не только на домашних компьютерах, но и в большинстве учреждений, фирм, институтов. NT же используют тогда, когда хотят создать локальную или глобальную сеть предприятия или учебного заведения (впрочем, тут у WindowsNT есть серьёзные конкуренты ) или когда необходимо обеспечить повышенную устойчивость системы, что, вообще говоря, желательно для всех, но для профессионалов просто жизненно необходимо.

С точки зрения приёмов работы, вида экрана и окон, кнопок и меню системы обоих семейств весьма похожи. Так что если вы умеете работать в Windows 95, то и в NT 4.0 у вас особых проблем не возникает . А если освоили Windows 98 и Ме , то в Win 2000 можете и вовсе никакой разницы не заметить .

Нет, кое-что заметите: 98-й и Ме частенько зависают, выдают малопонятные сбои, после которых приходится перезагружаться, а 2k и ХР. этого ничего не делают.

Фирма Microsoft собирается постепенно перевести всех домашних пользователей на новую технологию (NT в переводе – NewTechnology), для чего, и созданы были системы Windows 2000 , а затем – ХР. Разработка «старой технологии» прекращена – за Millennium’ум ничего уже не будет.

Системы первого поколения (Windows 3.1 и 3.11, а также NT 3.5), весьма популярные середине 90-х годов, практическивымерли .

перационная система Microsoft Windows для начинающих и не только

Что понимается под операционной системой?

В общем случае, под операционной системой понимают комплект программ, позволяющих управлять ресурсами (оперативной памятью, жестким диском, процессором, периферией) компьютера. Без операционной системы невозможно запустить какую-либо прикладную программу, например, текстовой редактор. Поэтому операционная система — это база, под которую разрабатываются различные приложения.

После того, как Джон Соша изобрел Norton Commander командная строка стала раздражать миллионы пользователей ПК, не знающих стандартных команд и параметров дисковой операционной системы. Вскоре в четвертой версии MS-DOS появилось нечто похожее на объектно-ориентированную оболочку — DOS Shell. Но это программа как-то не прижилась. Можно сказать, что Windows — это более чем просто операционная система, так как в ней вы можете работать, не вводя с клавиатуры умопомрачительные команды в назойливое приглашение, типа C:\. В Windows вся информация представлена в интуитивно-понятной графической оболочке таким образом, что пользователь персонального компьютера может работать эффективно, легко, без заучивания опостылевших директив и команд. Все, что вам нужно сделать — это найти нужное приложение или документ и щелкнуть по соответствующему ярлыку клавишей мыши. Для упрощения поиска документов и приложений Windows предлагает пользователю так называемую концепцию рабочего стола. Рабочий стол в Windows есть некая модель поверхности обычного стола с документами и папками.

Преимущества и недостатки

Windows

.

Преимущества.

добство и поддержка устройств

. Основное отличие программ для DOS и для Windows состоит в том, что DOS-программа может работать с аппаратными средствами компьютера (монитором, клавиатурой, принтером и т. д.) непосредственно минуя DOS (и, как правило, поступает именно таким образом), в то время как Windows-программа должна обращаться к внешним устройствам только через посредство Windows. Поэтому после установки в Windows драйвера, обеспечивающего поддержку данного устройства (то есть настраивающего Windows на особенности данного устройства) все Windows-программы могут работать с этим устройством. Это ликвидирует весьма болезненную для DOS проблему обеспечения совместимости программ с конкретными устройствами.

Программы (драйверы) для поддержки наиболее распространенных устройств входят в Windows, а для остальных устройств поставляются вместе с этими устройствами или контролёрами.

диный пользовательский интерфейс.

Windows представляет программистам все необходимые средства для создания пользовательского интерфейса, поэтому программисты пользуются ими, а не изобретают аналогичные собственные средства. Вследствие этого пользовательский интерфейс Windows-программ в значительной степени унифицирован, и пользователям не требуется изучать для каждой программы новые принципы организации взаимодействия с этой программой.

оддержка масштабируемых шрифтов.

В таких приложениях, как редактирование документов, издательское и рекламное дело, создание таблиц или презентаций и т.д., необходимо использование большого количества шрифтов – текстовых, заголовочных, декоративных, пиктографических и других, причем символы этих шрифтов могут потребоваться в самых различных размерах. Поэтому в Windows 3.1 была встроена поддержка масштабируемых шрифтов формата TrueType. Масштабируемые шрифты в (отличие от растровых) содержат не растровые (поточечные) изображения символов некоторого фиксированного размера, а описание контуров символов, позволяющие строить символы любого нужного размера. Поскольку изображения символов на экране и на печати формируется из одних и тех же контуров, содержащихся в шрифтовом файле, они, естественно, полностью соответствуют друг другу, что обеспечивает выполнение принципа WYSIWYG – что на экране, то и на печати.

оддержка мультимедиа.

Одним из усовершенствований Windows явилась поддержка мультимедиа. При подключении соответствующих устройств Windows может воспринимать звуки от микрофона, компакт-диска или

MIDI – синтезатора, изображения от цифровой видеокамеры или с компакт-диска, выводить звуки и движущиеся изображения.

Это открывает большие возможности для обучающих, игровых и других программ, позволяя

делать общение с компьютером более лёгким и приятным даже для непрофессионалов.

ногозадачность.

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

редства обмена данными.

Для организации обмена данными между различными программами Windows предлагает следующие способы:

· Буфер обмена данными (
clipboard
):
одна программа может поместить данные в этот буфер, а другая использовать данные из буфера (например, вставив их в документ);

· Динамический обмен данными(
Dynamic
DataExchange, DDE) – одна программа может использовать данные, созданные другой программой (например, редактор документов может использовать часть таблицы, созданной табличным процессором), причем копия данных в использующей программе сохраняет «привязку» к исходным (оригинальным) данным. Поэтому программа, использующая DDE-данные, может в любой момент их «обновить», т.е. восстановить соответствие используемой копии данных оригиналу;

· Механизм связи и внедрения объектов (
ObjectLinkingandImbibing,OLE), появившийся в версии Windows3.1, является усовершенствованием средств DDE. Здесь программа использующая «внедренные» данные, может редактировать эти данные, для чего автоматически запускается программа, с помощью которой эти данные были созданы. Например, в документ, обрабатываемый редактором MicrosoftWord, можно вставить в качестве «объекта» картинку, созданную в графическом редакторе CorelDraw, и тогда при двойном щелчке мышью над изображением данной картинки в документе MicrosoftWord автоматически вызовется CorelDraw для редактирования этой картинки.

Средства обмена данными между Windows-программами существенно помогают работе пользователей и облегчают им решение сложных задач, требующих использование более чем одной программы.

овместимость с

DOS

-программами.

Работа в среде Windows не вынуждает отказываться от использования DOS программ. Более того, для

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

озможности для разработчиков.

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

Поддержка устройств (принтеров, мониторов и т.д.) в Windows снимает его заботу с разработчиков программ. Однако два преимущества программирования для Windows следует отметить особо:

· доступность всей оперативной памяти – в отличие от DOS, средства управления оперативной памятью Windows обеспечивают доступность для программ всей оперативной памяти компьютера (а не 640 Кбайт), что облегчает создание больших программ;

· динамическое подключение библиотек — Windows обеспечивает автоматическое подключение библиотек подпрограмм во время выполнения программы. Формат библиотек (.DLL – файлов) и порядок вызова библиотечных подпрограмм стандартизованы, поэтому эти библиотеки могут быть созданы с помощью различных программных средств и даже написаны на разных языках программирования.

Недостатки Windows

Как известно, любая медаль имеет две стороны, поэтому у Windows есть не только преимущества, но и недостатки, которые мы и опишем в этом разделе.

лавный недостаток Windows для пользователей состоит в том, что описанные преимущества Windows достигаются за счет значительного увеличения нагрузки на аппаратные средства компьютера. Графический интерфейс, поддержка масштабируемых шрифтов, поддержка многозадачности и т. д. требуют большой мощности процессора, значительной оперативной памяти и дискового пространства. Хотя для работы с Windows достаточно лишь процессора 80386 с 2-4 мегабайтами оперативной памяти и свободных 45 мегабайт на винчестере, такая конфигурация не позволяет использовать Windows ни для каких практических задач, разве лишь для раскладывания пасьянсов. Комфортная же работа обеспечивается лишь при наличии 8-16 мегабайт и не менее 150-300 мегабайт на диске для Windows и Windows-приложений. При этом часто программы с приблизительно одинаковыми возможностями для DOS и для Windows отличаются по требованиям к компьютерным ресурсам в несколько раз. Так, Microsoft Word для DOS может работать на компьютере без жёсткого диска и требует всего 512 килобайт ОЗУ.

А редактор Microsoft Word for Windows (правда, здесь следует заметить, что он обладает несколько большими возможностями) требует 4 мегабайта оперативной памяти (а лучше 8 мегабайт), и около 20 мегабайт на диске, работая при этом в несколько раз медленнее. Чтобы компенсировать это замедление и обеспечить приемлемую скорость работы, пользователи вынуждены покупать достаточно мощные компьютеры. На западе мода на Windows очень быстро привела к отказу не только от компьютеров на основе Intel-286, но и на основе Intel-386.

сё вышесказанное никоим образом не умаляет достоинств Windows, а лишь указывает на то, что Windows не является универсальным решением, пригодным для всех пользователей и на все случаи жизни. Конечно, для большинства пользователей (если они согласны платить за достаточно мощный компьютер) Windows и Windows-программы позволяют работать на компьютере самым удобным и эффективным способом. Использование Windows нецелесообразно в следующих случаях:

Для приложений, в которых графический интерфейс и многозадачные возможности Windows не нужны: например, на рабочих местах операторов в банках, торговых работников и т.д.

Для приложений, в которых необходимо обеспечить особо высокое быстродействие обработки.

Для задач, удовлетворительное решение которых обеспечивается имеющимися программами, работающими в среде DOS, UNIX и т.д.

меет свои негативные стороны и программирование под Windows. Дело в том, что Windows в принудительном порядке заставляет программистов

использовать средства программного интерфейса Windows (API) — это более 600 функций. Кроме того, программист должен для этого свободно владеть весьма сложными концептуальными понятиями объектно-ориентированного программирования, оперировать с объектами, сообщениями, разделяемыми ресурсами и т.д., поэтому обучение программированию под Windows весьма непростое дело.

Некоторые клавиатурные комбинации

Windows

9

x

и

NT

Комбинация Действие

Alt-Tab, Shift-Alt-TabПереход в следующую (предыдущую) активную

задачу.

Ctrl-Tab, Shift-Ctrl-Tab Переход в следующее окно многооконной

программы или в следующую страницу

диалогового окна

Alt-Esc Переход на следующийзначок илив

следующуюзадачу

Ctrl-EscВход вглавное меню

Ctrl-пробел Снять/установитьвыделение текущего объекта

Alt- пробел Вход в системное меню окна

Alt-EnterСвойства выделенного объекта. Перевод DOS-

программ из оконного в полноэкранный режим и

обратно

Ctrl-↑, ↓, →и←, Home Переходымежду значкамив папке без

End, PgUp, PgDown выделения объекта

Ctrl-Ф Выделить всё

Ctrl- Ч Вырезать выделенные объекты

Ctrl-С Копировать выделенные объекты

Ctrl-M Вставить

Ctrl-Я Отмена последней команды

F1 Вызывается справка (общая)

F2 Изменение имени значка или папки

F3,Ctrl-F Вызывается программа поиска файлов для

текущей папки

F4 Раскрывается список «Переход к другой папке»

(если в окне установлена панель инструментов).

При повторном нажатии — возврат

Alt-F4 Закрывается текущее окно или программа

F5 Заново считывается окно, снимается

выделение со всех значков

F6 Попадаете в список «Переход к другой папке»

(если в окне установлена панель инструментов).

При повторном сжатии — возврат

F10 Активизация строки меню текущей программы

Shift-F10 Вызывает контекстно-зависимое меню

Некоторые клавиатурные комбинации с клавишей

Windows

Комбинация Действие

Windows Вызывает главное меню

Windows-E ЗапускаетПроводник

Windows-FЗапускает Поискфайлов

Windows- Ctrl-F Запускает Поиск компьютера в локальнойсети

Windows-V, Windows-F7 ЗапускаетПросмотр буфера обмена

Windows-M Сворачивает все окна

Windows-Shift-MРазворачивает все ранее свернутыеокна

Windows-D Сворачивает и разворачиваетвсе окна

Windows-RВызывает окно «Выполнить»

Windows-F1 Запускает справку Windows из любойпрограммы

Windows-Break Вызывает окно «Система»

Windows-CЗапускает Панель управления

Windows-K Вызывает окно«Свойства: Клавиатура»

Windows-IВызывает окно«Свойства; Мышь»

Windows-TabПереходит на следующую кнопку(активную

программу) в панели задач.

ЗАКЛЮЧЕНИЕ

Windows наиболее распространенная операционная система, и для большинства пользователей она наиболее подходящая ввиду своей простоты, неплохого интерфейса, приемлемой производительности и огромного количества прикладных программ для нее.

Я имел возможность работать с операционными системами Microsoft от DOS и Windows98, до версии Windows XPProfessional, по-моему, мнению наиболее удачной является ОС ХР Professional, которая предоставляет наиболее совершенную защиту, чем Windows 98 или Windows Ме, более быстродействующая, нежели Windows NT, более продуманный интерфейс и много разных других мелочей, делающих эту ОС более привлекательной. Хотя бы проводник, автоматически встраивающийся в панель задач, новое меню кнопки «Пуск», встроенные программы просмотра графики и программа, встроенная в медио проигрыватель для перевода звуковых файлов в формат МП 3, для экономии места на диске и многое другое.

Список использованной литературы.

1. А.Левин. Самоучитель работы на компьютере. Издательский дом «Питер»,2002.- 655с.:ил.

2. А.Левин. Самоучитель полезных программ. – М.: «Нолидж», 2000. – 496 с., ил.

3. В.Э.Фигурнов IBM для пользователя. Издательский дом «ИНФРА-М»,2001.- 480с.:ил.

4. http://www.oszone.net/windows/arc.shtml

  • Ресторан windows on the world
  • Рисование фигур c windows forms
  • Ретро игры для windows 10
  • Рисовалка для windows 10 скачать
  • Ресурсы аппаратуры в windows 10