Програма для анімації музичних творів

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

ЛЬВІВСЬКИЙ ДЕРЖАВНИЙ ІНСТИТУТ НОВІТНІХ ТЕХНОЛОГІЙ ТА УПРАВЛІННЯ ІМ. В. ЧОРНОВОЛА

Факультет

інформаційних

технологій

 

 

 

 

 

 

 

 

Курсовий проект на тему:

“Програма для анімації музичних творів”

з дисципліни

“Системне програмне забезпечення ”

 

 

 

Виконав

Студент групи КІ-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