WWW.REFERATCENTRAL.ORG.UA - Я ТУТ НАВЧАЮСЬ

... відкритий, безкоштовний архів рефератів, курсових, дипломних робіт

ГоловнаІнформатика, Компютерні науки → Поняття про Component Objects Model - Реферат

Поняття про Component Objects Model - Реферат

яка саме інформація повинна бути витягнута. Можливі значення iІnfoCode приведені в табл. 20.1.
Таблиця 20.1. Інформація, що повертається функцією Comciassinfо () при різних значення параметра iinfoCode
Значення ilnfoCodе Інформація, що Повертається
1 (значення по замовчуванню) Програмний ідентифікатор об'єкту (ProgID). Цей ідентифікатор задає вхід реєстру, який асоціюється з CLSID. Вважайте, що це ім'я, однозначне пов'язане з CLSID. Кожна версія програми має власний програмний ідентифікатор. Наприклад,ProgID для Visual FoxPro 6 буде Visual.Foxprо.Applcation.6, а для Visual FoxPro 5 - Visual.Foxprо.Application.5. Ідентифікатор ProgID також є ім'ям класу, яке можна використовувати для створення об'єкту СОМ-серверу. Наприклад, можна звернутися до createobject () таким чином:
оVFP5=CREATEOBJECT("Visual.Foxpro.Application.5") оVFP6=CREATEOBJECT("Visual.Foxpro.Application.6") Але, як правило, небажано, щоб додаток був жорстко прив'язаний до певної версії , СОМ-серверу. Тому має сенс, передавши як перший параметр Visual. Foxpro .Application, запитати у реєстру, яка з версій встановлена на даному комп'ютері (а якщо встановлено декілька версій, то яка з них більш нова), і створювати об'єкт СОМ-серверу саме цієї версії
2 Програмний ідентифікатор, не залежний від версії (VersionlndependentProglD). VersionindepencientProgiD асоціює ProgID з CLSID. Він використовується для визначення останньої версії об'єкту додатку, посилаючись на його клас, і не змінюється від версії до версії
3 Оригінальне англійське ім'я об'єкту, про який прийнято говорити як про "дружнє" ім'я (friendly name)
4 Идентификатор класу объекта
Ось яке значення буде повернено функцією ComClassinfo () при завданні як перший параметр Excel.Application і при різних варіантах значень другого параметра:
1 Excel.Application.8
2 Excel.Application
3 Microsoft Excel 97 Application
4 { 00024500-0000-0000-COOO-00000000004 6}
Функція CreateObjectEX ()
Як було описано вище, модель DCOM припускає, що додаток COM-серверу розміщений і виконується на різних комп'ютерах мережі. Як правило, комп'ютер клієнта конфігурується так, щоб знати, де знаходиться СОМ-сервер, і стандартна функція Createobject () може працювати без жодних додаткових фокусів. Використовування функції CreateObjectEX () дозволяє обійтися без спеціальної конфігурації комп'ютерів мережі і безпосередньо специфікувати потрібний комп'ютер.
Це дуже зручно у тому випадку, коли бажано розподілити навантаження між декількома комп'ютерами в мережі. Використовування CreateObjectEX () можливе в операційній системі Windows NT 4.0 або більш старшій версії або в Windows 95/98 зі встановленим механізмом DCOM.
Хай вас не збентежує, що при усіканні імені функції CreateObjectEX () до 13 символів воно виглядає як CreateObjectE (). Це все одно та ж сама функція CreateObjectEX().
Функція ComArray ()
В Visual FoxPro найчастіше приймається, що початковий елемент масиву має індекс 1. Але це не обов'язково. В інших мовах програмування початковий елемент має індекс 0.
Функція ComArray () дозволяє визначитися з тим, як передаватимуться масиви в СОМ-об'єкт. В результаті буде зареєстровано, яким чином здійснюється обмін масивами з конкретним COM-об'єктом.
Функція має два параметри.
oObject Посилання на СОМ-об'єкт, до якого адресується запит або який
змінюється
nSettinga Це необов'язковий числовий параметр, який визначає спосіб обміну
масивами з COM-об'єктом. В табл. 20.2 приведені його можливі
значення. Якщо цей параметр опушений, функція повертає поточну
установку для даного сом-об'єкту
Таблиця 20.2. Спосіб передачі масиву в СОМ-об'єкт при різних значення параметра nSettings
Значення nSettings Опис
0 Перший елемент масиву має індекс 0, і масив передається в СОМ-об'єкт по значенню
1 (за замовчуванням) Перший елемент масиву має індекс 1, і масив передається в СОМ-об'єкт по значенню. Така настройка сумісна з попередніми версіями Visual FoxPro
10 Перший елемент масиву має індекс 0, і масив передається в СОМ-об'єкт по ссилці
11 Перший елемент масиву має індекс 1, і масив передається в СОМ-об'єкт по ссилці
Зверніть увагу - настройка у функції сприймається системою тільки при передачі масиву в СОМ-об'єкт з використанням наступного синтаксису:
oObject.Method(@laArray)
Якщо в цьому виразі опустити символ (@), то в СОМ-об'єкт буде переданий тільки перший елемент масиву і всі настройки, виконані в ComArray (), будуть проігноровані.
Visual FoxPro як СОМ-сервер
Ми зараз, власне, розглянули, як використовувати в додатку Visual FoxPro звернення до інших СОМ-серверів. Але цим можливості СОМ-технології в поєднанні з Visual FoxPro не вичерпуються. Можна створити в середовищі Visual FoxPro власний СОМ-сервер. Про це піде мова в розділі 22. Але спочатку в розділі 21 ми розглянемо на прикладах технологію програмування додатку - клієнта СОМ в середовищі Visual FoxPro, яке здатне взаємодіяти з іншими додатками з обширного "гардероба" Microsoft Office.
Управління об'єктами СОМ-додатку
Зверніть увагу на код на самому початку програми CustRpt.PRG, який організовує запуск Excel. Спочатку викликається функція GetObject (), а потім, якщо GetObject () поверне NULL, CreateObject (). Це зроблено для того, щоб запобігти повторному запуску Excel.
Таку ж методику запуску можна застосувати і до будь-якого іншого СОМ-серверу. Тут мимовільно виникає ідея створити універсальну процедуру запуску СОМ-серверу. Програмний код такої процедури приведений в лістингу 21.5. Прогляньте цей лістинг - численні коментарі допоможуть розібратися в деталях виконання процедури.
Лістинг 21.5.21Code05 - процедура запуску СОМ-серверу
*- Програма..: GETCOMINSTANCE.PRG
*- Версія.....: 1.0
*- Автор......: Menachem Bazian, CPA
*- Дата.......: August 23, 1998
*- Проект.....: Using Visual FoxPro 6 Special Edition
*- Copyright (з) 1998 Menachem Bazian, CPA, All Rights Reserved.
*- Компілятор.: Visual FoxPro 06.00.8141.00 for Windows
*- Опис...:
*- Зміни..:
*- Універсальна процедура запуску сом-серверу.
-------------------------------------------------
LPARAMETERS tcCOMServerClass, tcDocumentFileName
*- Параметр tcCOMServerClass - ім'я класу СОМ-серверу
*- об'єкт якого необхідно створити.
*- Наприклад "excel.application".
*- Перевіримо, чи переданий перший параметр.
ASSERT TYPE("tcCOMServerClass") = "С";
MESSAGE "You must provide а character
Loading...

 
 

Цікаве