This is a mirror of official site: http://jasper-net.blogspot.com/

Isolating Office Extensions with the COM Shim Wizard

| Monday, October 4, 2004
Да это просто бл№№№во какое то !! После того значит как я столько настрадался и в конце концов плюнул на это дело: Разработка shim компонента для Office. Они значит выпускают 1-2-3 Wizard для постройки этого самого компонента !!!!

Напоминание: Мне надо было сделать небольшой такой add-in для Outlook 2003. Делая все по книжке я получил managed add-in выбрав сам Solution файл из списка возможных проектов для Visual Studio 2003 (File/New/Project/в левом меню выбрать Other/Shared Add-In) но тут появилась большое западло!

По определению все add-in'ы для Outlook им самим не воспринимаются и вам выдается табличка такая (10.000 раз мною поруганная) которая предупреждает вас о том что какая то программа пытается отослать email пользуясь Outlook'ом. Перерыв гору материала, взяв 2-3 курса по программированию Outlook и отдохнув 7 лет в Тибете я понял: Для того чтоб эта <цензура> табличка не появлялась надо дигитально подписать файл ! Но тут появилось западло номер 2:

Managed Add-In срабатывал когда он откомпелировавался через Jit. Ответственный за компиляцию был какой то левый dll файл НО он компилировал все (!) add-in’ы в прошлом и будущем. То есть все установленные add-in’ы (или еще не установленные) компилируются через него. Если дигитально подписать его то это откроет потенциальную лазейку для всяких там вирусов И он в свою очередь подгружал .NET Framework (типо System.dll , System.Windows.Forms.dll, System.Drawing.dll и т.д.) они в свою очередь тоже (!) не подписаны дигитально.

Решение (от Microsoft) было: Создать типо proxy между Outlook’ом и моим add-in’ом. Сам прокси является dll’ом и написан в С++. Его мы дигитально подписываем и он родимый запускается/прописывается в registry как add-in и он же в свою очередь подгружает наш заветный и настоящий add-in.

Так как даже книжку по С++ я не держал в руках уже года 2 а настраивать всякие GUID, LCID и дигитально подписывать файл отродясь не занимался то дело шло медленно несмотря на все шаг-за-шагом инструкций от Мелгомягких. И тут случилось западло намбер 3:

Visual Studio 2005 beta 1 (full) не поддерживает (пока что) создание shared-add in проектов ! Это я узнал после того как за 2 часа снес VS 2002 и еще двух часовой установки VS 2005. На 2 запуске VS 2005 ткнувшись в заветный проект прождав полчаса на песочных часах с надписью подождите минутку я понял что нет ! Просто нету пока такой опции в VS 2005. На официальном сайте они клянутся, божатся что ничего не трогали и в ту сторону даже не дышали но факты есть факты – не создает хоть ты тресни.

Теперь же быстрорукие написали Wizard для создания такого COM Add-In (или как его еще называют shim) для VS 2003 разумеется J и выложили у себя на сайте. Ну не западло а ?

Ссылка на wizard: Isolating Office Extensions with the COM Shim Wizard

0 comments: