2010-09-23 2 views
0

У меня есть приложение, которое использует встроенный IE через элемент управления Windows Forms WebBrowser. Я хочу встроить некоторые элементы управления .NET в HTML-страницу.Есть ли способ программно вставить элемент управления Windows Forms в экземпляр MSHTML (WebBrowser)?

Существует старая поддержка (начиная с .NET 1.0) для использования специального classid в объекте < > (dllname # controlname), но через эксперимент я обнаружил, что он работает только в том случае, если dll обслуживается через http, так что это не возможно для меня.

Есть ли другой способ добавить элемент управления .NET (возможно, подкласс UserControl) на существующую страницу html, загруженную во встроенный IE-экземпляр?

Могу ли я написать правильный элемент управления ActiveX в .NET и использовать без учета реестра COM, чтобы заставить IE создать его экземпляр? Кажется, я помню некоторую статью о MS, обеспечивающую поддержку для этого, чтобы шаг за шагом выполнять миграцию VB, но я ничего не могу найти.

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

/P

+0

Нет, нет бэкдора здесь. Mshtml не получает умнее только потому, что вы используете его в управляемом проекте. Это '' или ничего. –

ответ

0

Я проверил с помощью Microsoft Interop Forms ToolKit 2.1, позволивший создать UserControl, который может быть встроен в качестве OCX (видимый элемент управления ActiveX). Запись в реестре оказалась необходимой, поскольку управляемые COM-компоненты не могут устанавливать флаги OCX, необходимые для встраивания, используя COM-диск без регистрации (эти флаги доступны только для собственного COM). После программного добавления тега «объект» в mshtml на хосте C# mshtml я мог бы получить экземпляр HtmlObject и его свойство @object, чтобы перейти в управляемый подкласс UserControl и добавить дополнительные дочерние элементы управления. О, и я обязательно зарегистрировал элемент управления как в 32-битной, так и в 64-битной частях.

Единственное, что до сих пор меня беспокоит зависимость от реестра ...

Смежные вопросы