Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

РазработкаОфисныхЗаст

.pdf
Скачиваний:
5
Добавлен:
07.02.2016
Размер:
1.18 Mб
Скачать

11

1.2.2 Налаштування рівня документа 1.2.2.1 Загальні відомості про налаштування рівня

документа

Налаштування рівня документа складаються зі збірки, пов'язаної з окремим документом, книгою або шаблоном в Microsoft Office Word або Microsoft Office Excel. Налаштування не можуть провадити зміни на рівні програми, такі як відображення нового елемента меню або вкладки стрічки при відкритті будь-якого документа.

Налаштовуваний документ подано у Visual Studio у вигляді поверхні проектування, що дає можливість проектувати документ шляхом перетягування на нього елементів керування. У проектах рівня документа доступно багато інших можливостей Visual Studio, такі як елементи керування Windows Forms, прив'язка даних перетягуванням і вбудований відладчик.

Коли користувач відкриває документ, застосування Microsoft Office завантажує відповідну збірку. Після завантаження збірки налаштування може відповідати на події у відкритому документі. Коли документ відкритий, налаштування може також звертатися до об'єктної моделі автоматизації і розширювати застосування, а також може використовувати будь-які класи .NET Framework.

На етапі розробки створюється проект рівня документа у Visual Studio, що включає документ і збірку, пов’язану з документом.

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

1.2.2.2 Архітектура налаштування рівня документа

При відкритті користувачем документа, який є частиною налаштування Microsoft Office, застосування використовує маніфест розгортання, пов'язаний із даним документом, для виявлення і завантаження останньої версії збірки налаштування. Розташування маніфесту розгортання зберігається у властивості _AssemblyLocation налаштовуваного документа. Рядок, що ідентифікує дане розташування, вставляється в цю властивість при побудові рішення. Маніфест розгортання вказує на маніфест додатка, який в свою чергу

12

вказує на найсвіжішу збірку. Основна архітектура налаштувань рівня документа показана на рис. 1.1.

Застосування Microsoft Office

Користувач відкриває документ

 

 

Документ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Властивість

 

 

 

 

 

 

 

 

 

 

 

 

Первинна збірка

 

 

 

_AssemblyLocation

 

 

 

 

 

 

 

 

взаємодії

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Зчитування маніфеста

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Маніфест розгортання

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Події та методи

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

зворотного

 

 

Зчитування маніфеста

 

 

 

 

 

 

 

Виклики

 

 

виклику

 

 

 

 

 

 

 

 

 

 

 

 

 

об’єктної

 

 

 

 

 

 

Маніфест застосування

 

 

 

 

 

 

 

 

 

моделі

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Завантаження збірки

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Збірка для налаштування на рівні документа

Рисунок 1.1 — Архітектура налаштування рівня документа

1.2.2.3 Процес завантаження

При відкритті користувачем документа, який є частиною рішення Microsoft Office, виконуються наступні дії:

Застосування Microsoft Office перевіряє властивості налаштовуваного документа на наявність розширень керованого коду, пов'язаних з цим документом.

Якщо розширення керованого коду виявляються, то застосування завантажує файл VSTOEE.dll, який в свою чергу завантажує файл VSTOLoader.dll. Ці файли є некерованими бібліотеками DLL, що є компонентами завантажувача для середовища

13

Visual Studio 2010 Tools для середовища виконання Office.

VSTOLoader.dll завантажує .NET Framework і запускає керовану частину середовища виконання Visual Studio Tools for Office.

Якщо документ відкривається не з локального комп'ютера, то середовище виконання Visual Studio Tools for Office перевіряє, чи входить розташування цього документа до списку надійних розташувань згідно параметрів центру керування безпекою для даного застосування Office.

Середовище виконання Visual Studio Tools for Office

встановлює рішення (якщо воно ще не встановлено), завантажує останні версії додатка і маніфесту розгортання, виконує серію перевірок безпеки.

Якщо налаштування має необхідний для виконання рівень довіри, то середовище виконання використовує маніфест розгортання

іманіфест застосування для пошуку оновлень збірки. Якщо нова версія збірки доступна, то Середовище виконання завантажує цю нову версію збірки в кеш ClickOnce на клієнтському комп'ютері.

Середовище виконання створює новий домен програми для завантаження збірки налаштування.

Середовище виконання завантажує збірку налаштування в домен програми.

Середовище виконання викликає обробник подій Startup в даній збірці налаштування.

1.2.2.4 Налаштовувані властивості документа

При побудові проекту рівня документа Visual Studio додає дві настроювані властивості в документ проекту: _AssemblyLocation і _AssemblyName. Коли користувач відкриває документ, застосування Microsoft Office здійснює перевірку настроюваних властивостей документа. Якщо властивості вже вказані в документі, застосування завантажує Середовище виконання Visual Studio Tools for Office, яке запускає налаштування.

Спосіб розгортання рішення визначає різні формати значення властивості _AssemblyLocation.

Якщо рішення публікується для встановлення з веб-вузла, з CD або USB диска, властивість _AssemblyLocation має формат

14

DeploymentManifestPath|SolutionID.

Якщо запускається або налаштовується рішення у Visual Studio, властивість _AssemblyLocation має формат:

DeploymentManifestName|SolutionID|vstolocal, де SolutionID — це

GUID, який використовується середовищем виконання Visual Studio Tools for Office для ідентифікації рішення (автоматично створюється при створенні проекту). Термін vstolocal вказує середовищу виконання, що збірку і документ потрібно завантажити з однієї папки.

1.2.2.5 Використання створених класів у проектах рівня документа

При створенні проекту рівня документа Visual Studio автоматично генерує клас у проекті, який можна використовувати, щоб приступити до написання коду. У проектах рівня документа для Word клас за замовчуванням називається ThisDocument. Проекти рівня документа для Excel генерують декілька класів: один для самої книги і по одному для кожного аркуша. За замовчуванням ці класи мають наступні імена: ThisWorkbook, Sheet1, Sheet2, Sheet3.

Згенеровані класи включають обробники подій, які викликаються при відкритті і закритті документа. Для виконання коду при відкритому документі додайте код в оброблювач подій Startup. Для виконання коду безпосередньо перед закриттям документа додайте код в оброблювач подій Shutdown.

У проектах, орієнтованих на платформу .NET Framework 4, створювані класи успадковують більшість своїх членів від наступних

базових

класів:

ThisDocument

 

від

Microsoft.Office.Tools.Word.DocumentBase,

ThisWorkbook

від

Microsoft.Office.Tools.Excel.WorkbookBase,

Sheet

n

від

Microsoft.Office.Tools.Excel.WorksheetBase.

Для того щоб записати документ, який є частиною налаштування рівня документа для Word, використовується this.Save(); Поза класом ThisDocument використовується об'єкт

Globals: Globals.ThisDocument.Save();

15

1.2.3 Надбудови рівня застосування 1.2.3.1 Загальні відомості про надбудови рівня застосування

Надбудова рівня застосування складається зі збірки, пов'язаної з застосуванням Microsoft Office. Як правило, надбудова виконується при запуску пов'язаного застосування, хоча користувачі можуть також завантажувати збірки в ході роботи програми. Можливості створюваних надбудов доступні самому застосуванню незалежно від типу документів, що відкриваються.

Visual Studio містить засоби для створення надбудов. Проект надбудови включає автоматично створюваний клас, що представляє надбудову. Цей клас надає властивості та події, які можуть використовуватися для доступу до об'єктної моделі застосування та запуску коду при завантаженні і закритті надбудови. У проектах на рівні застосування доступно багато інших можливостей Visual Studio, такі як форми Windows Forms і вбудований відладчик.

1.2.3.2 Архітектура надбудов рівня програми

При встановленні декількох надбудов у застосуванні, кожна надбудова завантажується в окремому домені застосування. Це означає, що некоректна поведінка однієї надбудови не приведе до невдалого завершення інших надбудов.

Компоненти надбудов:

а) розділи реєстру: знаходження надбудов застосуваннями Microsoft Office здійснюється при пошуку набору записів реєстру, при цьому при побудові рішення Visual Studio створює всі обов'язкові записи реєстру на комп'ютері розробника, спрощуючи налагодження і запуск надбудови;

б) маніфест розгортання і маніфест застосування: надбудови використовують маніфести розгортання і маніфести застосування для ідентифікації та завантаження найсвіжішої версії збірки надбудови, маніфест розгортання вказує на поточний маніфест застосування, маніфест застосування вказує на збірку надбудови і задає клас точки входу для виконання в збірці;

в) середовище виконання Visual Studio Tools for Office.

Щоб виконати надбудови, створені за допомогою засобів розробника Office в Visual Studio, на користувацьких комп'ютерах

16

повинно бути встановлено Середовище виконання Visual Studio Tools for Office, що включає некеровані компоненти і набір керованих збірок. Некеровані компоненти завантажують збірку надбудови. Керовані збірки надають об'єктну модель, яку код надбудови використовує для автоматизації та розширення можливостей ведучого застосування.

Архітектура надбудов рівня застосування наведена на рис. 1.2.

Застосування Microsoft Office

Пошук надбудов

 

 

 

 

 

 

Первинна збірка

 

 

Реєстрація

 

 

 

 

 

 

 

 

взаємодії

 

 

 

 

 

 

 

 

 

Зчитування маніфеста

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Події та методи

 

Маніфест розгортання

 

 

 

 

 

зворотного

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

виклику

 

Зчитування маніфеста

 

 

 

Виклики

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

об’єктної

 

 

 

 

Маніфест застосування

 

 

 

моделі

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Завантаження збірки

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Збірка надбудови

Рисунок 1.2 — Архітектура надбудови рівня застосування

1.2.3.3 Процес завантаження

При запуску програми відбувається наступне:

а) застосування перевіряє реєстр на наявність записів, що ідентифікують надбудови, створені за допомогою засобів розробника

Office в Visual Studio;

б) якщо записи реєстру знайдені, застосування завантажує файл

VSTOEE.dll, який завантажує файл VSTOLoader.dll. Ці файли є некерованими бібліотеками DLL, що є компонентами завантажувача

17

для середовища Visual Studio Tools for Office;

в) VSTOLoader.dll завантажує .NET Framework і запускає керовану частину середовища виконання Visual Studio Tools for Office;

г) середовище виконання Visual Studio Tools for Office

перевіряє наявність оновлень та виконує завантаження нещодавних застосувань і маніфестів розгортання;

д) середовище виконання Visual Studio Tools for Office виконує серію перевірок безпеки;

е) якщо надбудова має необхідний для виконання рівень довіри, то середовище виконання Visual Studio Tools for Office використовує маніфест розгортання і маніфест застосування для пошуку оновлень збірки: якщо нова версія збірки доступна, то середовище виконання завантажує цю нову версію збірки в кеш ClickOnce на клієнтському комп'ютері;

ж) середовище виконання Visual Studio Tools for Office створює новий домен програми для завантаження збірки надбудови;

з) середовище виконання Visual Studio Tools for Office

завантажує збірку надбудови в домен програми;

и) середовище виконання Visual Studio Tools for Office викликає метод RequestComAddInAutomationService в надбудові у разі виконання перевизначення;

к) за необхідності перевизначити даний метод, щоб надати іншим рішенням Microsoft Office доступ до об'єкта в даній надбудові; л) середовище виконання Visual Studio Tools for Office викликає

метод RequestService в надбудові у разі виконання перевизначення; м) для розширення можливостей Microsoft Office можна

перевизначити даний метод, повертаючи об'єкт, який реалізує інтерфейс розширення;

н) середовище виконання Visual Studio Tools for Office викликає метод ThisAddIn_Startup у надбудові, який є обробником події Startup за замовчуванням.

1.2.3.4 Записи реєстру для надбудов рівня застосування

При розгортанні надбудов, створених за допомогою Visual Studio 2010, слід створити спеціальний набір записів реєстру. Ці записи реєстру забезпечують відомості, що дозволяють застосуванням Microsoft Office знаходити і завантажувати надбудови.

18

Додатки Microsoft Office 2010 можуть завантажувати надбудови, які зареєстровані в HKEY_LOCAL_MACHINE або HKEY_CURRENT_USER (далі – корінь). Запитувані записи реєстру надбудови розміщуються в наступному розділі реєстру для всіх програм, окрім Visio:

Корінь\Software\Microsoft\Office\Імя_надбудови\, Addins\Ідентифікатор_надбудови. У таблиці 1.1 перераховані записи в даному розділі реєстру.

Таблиця 1.1 — Записи реєстру для реєстрації надбудови

Запис

Тип

Значення

 

 

 

 

 

 

Description

REG_SZ

Короткий опис надбудови.

 

 

 

 

FriendlyName

REG_SZ

Ім'я надбудови, яке відображається в

 

 

діалоговому вікні Надбудови СOM в

 

 

застосуванні Microsoft Office

 

 

 

LoadBehavior

REG_DWORD

Значення, що визначає, коли програма

 

 

намагається завантажити надбудову, і

 

 

поточний

стан

надбудови

 

 

(завантажена або вивантажена).

 

 

 

Manifest

REG_SZ

Повний шлях маніфесту розгортання

 

 

надбудови. В якості шляху може бути

 

 

вказано розташування на локальному

 

 

комп'ютері, мережева папка (UNC)

 

 

або веб-сервер (HTTP).

 

 

 

 

Warmup

REG_DWORD

Необов'язковий. Значення, яке вказує,

 

 

що .NET Framework і середовище

 

 

виконання Visual Studio Tools for

 

 

Office повинні

завантажуватися до

 

 

завантаження надбудови.

 

 

 

 

 

 

Запис LoadBehavior містить побітову комбінацію значень, які вказують поведінку під час виконання надбудови. Найменший порядковий біт (значення 0 і 1) вказує, вивантажена або завантажена надбудова в поточний момент. Решта бітів вказують, коли програма намагається завантажити надбудову.

Як правило, значення запису LoadBehavior дорівнює 0

19

(надбудова не завантажується автоматично), 3 (завантаження при запуску), 9 (завантаження за запитом) або 16 (завантажити перший раз, а потім завантажити на вимогу), якщо надбудова встановлена на комп'ютерах кінцевих користувачів. За замовчуванням Visual Studio встановлює запис LoadBehavior надбудови в значення 3 при побудові або публікації. Щоб завантажити надбудову вручну, установіть прапорець поруч з надбудовою у діалоговому вікні Надбудови COM у застосуванні. Щоб завантажити надбудову програмно, задайте властивість COMAddIn об'єкта true, що представляє надбудову властивості Connect.

1.2.4 Об’єктна модель Word

При розробці рішень Word в Visual Studio виконується взаємодія з об'єктною моделлю Word, що складається з класів і інтерфейсів, які надаються в основній збірці взаємодії для Word і задаються в просторі

імен Microsoft.Office.Interop.Word.

У Word надаються сотні об'єктів, з якими можна взаємодіяти. Ці об'єкти організовані в ієрархію, яка відповідає інтерфейсу користувача. Вгорі ієрархії знаходиться об'єкт Application. Цей об'єкт є поточним екземпляром Word і містить об'єкти Document, Selection, Bookmark і Range. Кожний з цих об'єктів має багато методів і властивостей, якими можна управляти і з якими можна взаємодіяти.

На рис. 1.3 показано подання цих об'єктів в ієрархії об'єктної моделі Word.

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

Об'єкти верхнього рівня:

— об'єкт застосування Application представляє застосування Word і є батьківським для всіх інших об’єктів. Його члени зазвичай застосовуються до Word у цілому, а властивості і методи можна використовувати для керування середовищем Word. У проектах надбудов рівня застосування (або документа) можна отримувати доступ до об'єкта Application за допомогою поля Application класу

20

ThisAddIn (або ThisDocument);

об'єкт документа;

об'єкт вибору Selection представляє область, обрану в поточний момент. Якщо нічого не виділено, то цей об'єкт представляє точку вставки;

об'єкт діапазону;

об'єкт закладки.

Рисунок 1.3 — Короткий довідник за об'єктною моделлю Word

Об'єкт документа Microsoft.Office.Interop.Word.Document є

основою для програмування в Word. Він представляє документ і весь його вміст. При відкритті документа або створенні нового документа створюється новий об'єкт Microsoft.Office.Interop.Word.Document,

який додається в колекцію Documents об'єкта Application. Документ, у якому знаходиться фокус, називається активним документом. Він представлений властивістю ActiveDocument об'єкта Application.

Засоби розробки Office в Visual Studio розширюють об'єкт

Microsoft.Office.Interop.Word.Document, надаючи тип Microsoft.Office.Tools.Word.Document. Цей тип є ведучим елементом,

який надає користувачеві доступ до всіх функцій об'єкта