Как я могу разрешить только flash activeX, но другие запрещают в моем веб-контроле использовать IWebBrowser2? - PullRequest
1 голос
/ 07 февраля 2012

Я работаю над своим веб-управлением, используемым IWebBrowser2.

Я хочу, чтобы он воспроизводил флэш-ролик, но запретил другие элементы управления ActiveX.Я обнаружил, что запретить все элементы управления ActiveX с помощью DLCTL_NO_DLACTIVEXCTLS |Флаги DLCTL_NO_RUNACTIVEXCTLS в реализациях invoke.но я ищу в msdn IWebBrowser и связанные с ним интерфейсы, не могу найти какое-либо решение.

Я ожидаю перехватить событие перед загрузкой ActiveX или разрешить только флэш ActiveX.

, пожалуйста, помогите.спасибо.

1 Ответ

3 голосов
/ 31 мая 2012

Хозяева веб-браузера могут управлять его поведением, реализуя IOleClientSite и отвечая на DISPID_AMBIENT_DLCONTROL набором требуемых флагов поведения. Одно важное предостережение: флаг DLCTL_NO_RUNACTIVEXCTLS блокирует только теги OBJECT внутри самого документа. Это не влияет на использование вызовов нового ActiveXObject («…») из скрипта, если DLCTL_NO_SCRIPTS не был установлен.

Чтобы предотвратить выполнение ActiveX на хосте веб-браузера, укажите IInternetSecurityManager и верните URLPOLICY_DISALLOW и S_FALSE, когда ваша реализация ProcessURLAction вызывается с URLACTION_ACTIVEX_RUN. Чтобы разрешить запуск только указанного «списка разрешений» элементов управления, реализация ProcessURLAction может проверить CLSID запрошенного элемента управления; что CLSID передается с использованием параметра pContext.

...