Поняття про Component Objects ModelПоняття про Component Objects Model, Детальна інформація

Поняття про Component Objects ModelПоняття про Component Objects Model
Тип документу: Реферат
Сторінок: 7
Предмет: Комп`ютерні науки
Автор: Олексій
Розмір: 32.7
Скачувань: 1022
3. Класи в поточній програмі.

4. Класи в VCX-файлі бібліотеки, відкритою командою set classlib.

5. Класи у файлах процедур, відкритих командою set PROCEDURE.

6. Класи в послідовності виконуваних програм Visual FoxPro.

7. Реєстр OLE (якщо раніше була команда SET oleobject on).

Після того, як буде сформовано посилання на об'єкт, можна звертатися до нього точно так, як і до будь-якого створеного в програмі об'єкту класу Visual FoxPro.

Але зверніть увагу на відмінність в імені класу, об'єкт якої створюється. Звичайно використовується ім'я класу, що складається з одного слова. Для сом-об'єкту використовується ім'я класу з двох слів, перше з яких відповідає імені додатку, а друге - імені класу усередині цього додатку.

Якщо вам здастся, що все це ви вже чули, коли йшлося про OLE-автомат, ви будете недалекі від істини. Автоматизація OLE є не що інше, як частина моделі СОМ. Отже, якщо ми говоримо OLE, то маємо на увазі СОМ.

Що відбувається при зверненні до сом-об'єкту

При установці додатку, який грає роль серверу СОМ, в реєстрі Windows реєструється як сам додаток, так і всі його класи. Наприклад, подивіться в розділ реєстру Windows, що відноситься до Visual FoxPro, який також є сервером СОМ.

Можливості Visual FoxPro як COM-клієнта

Тепер розглянемо, які ж в цьому плані можливості програмного продукту Visual FoxPro.

ФУНКЦІЯ CREATEOBJECT ()

Як вже наголошувалося вище, за допомогою функції CREATEOBJECT () можна створити посилання на СОМ-об'єкт. Потрібно підкреслити, і це дуже істотно, що при зверненні до CREATEOBJECT () завжди створюється новий об'єкт.

Проведемо експеримент. Запустіть наступні команди з вікна команд:

Ох=CreateObject("Word.Application")

Оу=CreateObject("Word.Application")

А зараз викличте на екран діалогове вікно Close Program в Windows 95/98 (для цього потрібно натискувати ). В NT те ж саме можна зробити за допомогою Task Manager. Після цього порахуйте, скільки екземплярів додатку WinWord запущено. Їх напевно виявляться не менше два (можливо, раніше у вас ще був відкритий цей редактор).

Тепер продовжимо наші ігри. Поверніться в Visual FoxPro і звільніть змінні Ох і Оу. Більш того, можна навіть закрити взагалі додаток Visual FoxPro. Знову порахуйте, скільки екземплярів додатку знаходиться в роботі. Їх виявиться знову два. Для того, щоб позбутися запушеного додатку СОМ-серверу, потрібно звернутися до його методу Quit ().

Наш простенький експеримент виявився вельми повчальним - будьте дуже уважні при створенні СОМ-об'єктів в додатку. Перевірте, чи не був аналогічний об'єкт вже створений раніше. Врахуйте, що кожний новий додаток-сервер відтягує на себе значні ресурси пам'яті, яку можна використовувати набагато ефективніше. Якщо вам знадобиться одержати посилання на раніше запушений СОМ-об'єкт деякого класу, використовуйте функцію GetObject ().

ФУНКЦІЯ GETOBJECT ( )

Функція GETOBJECT () певною мірою аналогічна за призначенням вже розглянутої функції CREATEOBJECT (). Вона приймає два параметри. Перший - ім'я файлу, який потрібно відкрити, а другий - ім'я класу, з яким передбачається працювати.

Функція GETOBJECT () застосовується в двох випадках:

для отримання посилання на існуючий файл;

для отримання посилання на раніше запущений додаток-сервер.

Отримання ссилки на існуючий файл

Насамперед функція GETOBJECT () може бути використана для отримання посилання на файл, зареєстрований в OLE-розділі системного реєстру.

Припустимо, ви хочете відкрити файл BUDGET.XLS, який знаходиться в кореневому каталозі диска С:. Виконати це можна двома способами. Перший - створити земпляр сом-серверу Excel функцією CREATEOBJECT () і потім викликати його метод для відкриття файлу, що цікавить вас. Другий - безпосередньо відкрити файл функцією GETOBJECT ():

oExcel = GetOBJECT("с:\budget.xls").

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

The online video editor trusted by teams to make professional video in minutes