Програма для анімації музичних творів
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
ЛЬВІВСЬКИЙ ДЕРЖАВНИЙ ІНСТИТУТ НОВІТНІХ ТЕХНОЛОГІЙ ТА УПРАВЛІННЯ ІМ. В. ЧОРНОВОЛА
Факультет
інформаційних
технологій
Курсовий проект на тему:
“Програма для анімації музичних творів”
з дисципліни
“Системне програмне забезпечення ”
Виконав
Студент групи КІ-31
Митюк Я.
ЛЬВІВ 2009
Вступ
В даному курсовому проекті розглядається програма, яка призначена для анімації заданого музичного твору за допомогою обєкта ActiveX - Microsoft Agent. Цей компонент був створений для підтримки дружнього інтерфейсу з користувачем і виглядає як казковий персонаж, що керується певними командами. Персонажі можуть виглядати по-різному, але всі вони підтримують один стандартний набір команд.
Огляд літературних джерел
В даному курсовому проекті я користувався такою літературою:
“Assembler для Windows” автором якої є В. Ю. Пирогов.
Ця книга містить тільки працюючі програми з докладним розбором програм і коментарями. В книзі розглядаються способи й засоби аналізу й виправлення коду програм. В книзі також показані переваги мови асемблера над мовами високого рівня.
“Assembler для DOS, Windows и UNIX” автор Зубков С.В.
В книжці висвітлюються всі аспекти сучасного програмування на асемблері для DOS, Windows 95/NT и UNIX (Solaris, Linux и FreeBSD), включаючи створення резидентних програм і драйверів, пряме програмування периферійних пристроїв, керування захищеним режимом, і багато іншого. Детально розглядається архітектура процесорів Intel. В книжці є багато прикладів працюючих програм. Видання орієнтовано як на професіоналів, так і на початківців, без навиків програмування.
“Ассемблер. Разработка и оптимизация Windows-приложений” автор Юрій Магда.
В книжці розглядається один з ефективних методів оптимізації програм використання мови асемблера, описана методика розробки окремих модулів на ньому для використання в програмах на мовах високого рівня, показано, як з допомогою асемблера можна розробити повнофункціональну Windows-програму. Особливу увагу відведено оптимізації програм, написаних на мовах високого рівня, з допомогою асемблера.
Основна частина
1. Теоретичні положення
Ідея технології ActiveX полягає в тому, щоб звязати WEB-технологію з компонентами, які встановлені на компютері у користувача. Таким чином, компонент може бути активізований і керуватися через WEB-сторінки, якщо в них є посилання на ці обєкти. Другий варіант ActiveX це можливість керування компонентом з віддаленого WEB-сервера, або робота компонента під управлінням цього сервера.
Технологія ActiveX побудована на методах OLE і використовує стандартні функції реєстрації та створення COM-обєктів. Для роботи з COM-обєктом необхідно створити екземпляр його інтерфейсу за допомогою API функції CoCreateInstance. Після створення екземпляру обєкту (інтерфейсу) його необхідно відповідним чином ініціалізувати. Уникнути ініціалізації можна, якщо створювати екземпляр інтерфейсу більш спеціалізованими функціями, наприклад, функцією OleLoadPicture для інтерфейсу IPicture.
Microsoft Agent був створений для підтримки дружнього інтерфейсу з користувачем і виглядає як казковий персонаж, що керується певними командами. Компоненти Microsoft Agent входять в склад операційних систем Windows, починаючи з версії 2000. На інші системи ці компоненти можна інсталювати з сервера фірми Microsoft (
Технологія ActiveX не залежить ні від мови програмування, ні від платформи; тому її можна віднести до одної з технологій системного програмування.
До активізованого обєкта “Microsoft agent” можна застосовувати наступні методи MoveTo, Play, Speak.
На низькому рівні методи організовані як таблиця з адресами підпрограм, які їх реалізовують. У таблиці подані символічні назви методів, їх адреси, кількість параметрів.
Адреса Назва методуПараметриЗміст параметрів0h
04h
08h
0Ch
10h
14h
18h
1Ch
20h
24h
28h
2Ch
30h
34h
38h
3Ch
40h
44h
48h
4Ch
50h
54h
58hl
5Ch
60h
64h
68h
6Ch
70h
74h
78h
7Ch
80h
84h
88h
8Ch
90h
94h
98h
9Ch
0A0h
0A4h
0A8h
0ACh
0B0h
0B4h
0B8h
0BCh
0C0h
0C4h
0C8h
0CCh
0D0h
0D4h
0D8h
0DCh
0E0h
0E4h
0E8h
0Ech
0F0hQueryInterface
AddRef
Release
GetTypeInfoCount
GetTypeInfo
GetIDsOfNames
Invoke
GetVisible
SetPosition
GetPosition
SetSize
GetSize
GetName
GetDescription
GetTTSSpeed
GetTTSPitch
Activate
SetIdleOn
GetIdleOn
Prepare
Play
Stop
StopAll
Wait
Interrupt
Show
Hide
Speak
MoveTo
GestureAt
GetMoveCause
GetVisibilityCause
HasOtherClients
SetSoundEffectsOn
GetSoundEffectsOn
SetName
SetDescription
GetExtraData
ShowPopupMenu
SetAutoPopupMenu
GetAutoPopupMenu
GetHelpFileName
SetHelpFileName
SetHelpModeOn
GetHelpModeOn
SetHelpContextID
GetHelpContextID
GetActive
Listen
SetLanguageID
GetLanguageID
GetTTSModeID
SetTTSModeID
GetSRModeID
SetSRModeID
GetGUID
GetOriginalSize
Think
GetVersion
GetAnimationNames
GetSRStatusin, out
-
-
out
in, in, out
in, in, in, in, out
in,in,in,in,i/o,out
out
in, in
out, out
in, in
out, out
out
out
out
out
in
in
out
in, in, in, out
in, out
in
in
in, out
in, out
in, out
in, out
in, in, out
in, in, in, out
in, in, out
out
out
out
in
out
in
in
out
in, in
in