Re: Использование UserControl как ActiveX
От: algol Россия about:blank
Дата: 20.11.06 21:46
Оценка:
Здравствуйте, 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, чтобы пометить контрол как безопасный.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.