Поняття про Component Objects ModelПоняття про Component Objects Model, Детальна інформація
Поняття про Component Objects ModelПоняття про Component Objects Model
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 - процедура запуску СОМ-серверу
Функція 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 - процедура запуску СОМ-серверу
The online video editor trusted by teams to make professional video in
minutes
© Referats, Inc · All rights reserved 2021