Excel OLE - надстройка .NET COM ведет себя иначе, когда Excel встроен в приложение

У меня есть надстройка .NET (C #), которая использует dll COM Shim для загрузки в Excel. Надстройка отлично работает без каких-либо проблем, когда Excel работает нормально. Надстройка отображает собственную настраиваемую панель инструментов в Excel, которая используется для выполнения различных команд.

Когда я встраиваю Excel в другое приложение (например, DSOFramer и т. Д.), Надстройка начинает вести себя странно. Кажется, что если я отключу кнопку на его панели инструментов, она не будет снова включена после установки свойства Visible. Кроме того, я получаю кучу ошибок «Ссылка на объект не задана», потому что объект Application :: Selection имеет значение NULL, чего никогда не происходит, когда Excel работает нормально. Иногда я также получаю ошибки разрешения при вызове метода Application :: GetAddIns ().

Я не уверен, что здесь происходит, и мне не удалось найти статьи, объясняющие поведение надстроек Excel COM, когда Excel встроен в другое приложение.


person A9S6    schedule 02.10.2009    source источник


Ответы (2)


Должен признаться, я мало что знаю о dSOFramer, но я наткнулся на следующие пункты. Я не знаю, помогает ли это вообще.

текст ссылки

текст ссылки

person guitarthrower    schedule 07.10.2009

Я связался с Microsoft Professional по поводу этой проблемы и узнал, что Microsoft теперь не рекомендует встраивать офисные приложения. Мне было предложено либо прекратить встраивать Excel в приложение, либо использовать только Excel 2007 с интерфейсом ленты. Согласно MS, в пользовательском интерфейсе ленты нет этих проблем.

Проблема с CommandBars заключается в том, что согласование происходит только во время OnConnection, и после этого никакие изменения не могут быть сделаны.

person A9S6    schedule 29.12.2009