Как я могу разрешить только Flash ActiveX, но другие запрещают в моем веб-контроле использовать IWebBrowser2?

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

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

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

пожалуйста помоги. благодаря.


person hyun6    schedule 07.02.2012    source источник


Ответы (1)


Хосты веб-браузера могут управлять его поведением, реализуя 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.

person EricLaw    schedule 30.05.2012