Здравствуйте, x1, Вы писали:
x1>Надо получить доступ к UserControl как к компоненту ActiveX, всроив его в страницу html.
x1>Пытаемся получить доступ через html:
x1> <object id="Vasdfs" classid="KMControl.dll#KMC.KMControl" width="300" height="300" >
x1> </object>
x1>Пробовал так:
x1> <object id="Vasdfs" classid="KMControl#KMC.KMControl" width="300" height="300" >
x1> </object>
x1>Не работает!!! Не могу понять, в чём дело. Сборка успешно регестрируется в GAC, генерится tlb, и в reg-файле есть строки:
Вы здесь путаете два разных подхода. Вариант с classid="KMControl.dll#KMC.KMControl" — это использование .NET контрола на html странице. Он будет работать только при открытии страницы с web сервера (а не локально), и dll должна лежать в той же папке на сервере. При этом у вас скорее всего будут проблемы с безопасностью, нужно будет вручную ставить права для dll на клиенте.
Второй вариант — использование ActiveX контрола. В этом случае нужно писать:
<object id="Vasdfs" classid="CLSID:402FCF87-8B9E-4389-BC48-08B4FCD85CB6" codebase="KMControl.cab" width="300" height="300" >
</object>
В .cab положите сделанный для проекта инсталлятор .msi. Установка в GAC не обязательна, зато желательно реализовать интерфейс IObjectSafety, чтобы пометить контрол как безопасный.