我在我的应用程序中使用 IWebBrowser2 控件来显示外部网页。问题是该对象对于脚本来说是不安全的,并且对 get_Document 的调用失败(返回值是 S_FALSE)。
我已经实现了一个新类 IScriptableWebBrowser2,它继承自 IWebBrowser2 和 IObjectSafety,并尝试使用它来代替 IWebBrowser2,但这并没有成功。
如何使我的 IWebBrowser2 控件对脚本安全?
class IScriptableWebBrowser2 :
public CComObjectRootEx<CComSingleThreadModel>,
public IWebBrowser2,
public IObjectSafety
{
BEGIN_COM_MAP(IScriptableWebBrowser2)
COM_INTERFACE_ENTRY(IObjectSafety)
END_COM_MAP()
// IObjectSafety implementation
STDMETHODIMP GetInterfaceSafetyOptions(REFIID riid,
DWORD *pdwSupportedOptions,
DWORD *pdwEnabledOptions )
{
*pdwSupportedOptions = INTERFACESAFE_FOR_UNTRUSTED_CALLER |
INTERFACESAFE_FOR_UNTRUSTED_DATA;
*pdwEnabledOptions = *pdwSupportedOptions;
return S_OK;
}
STDMETHODIMP SetInterfaceSafetyOptions(REFIID riid, DWORD dwOptionSetMask, DWORD dwEnabledOptions)
{
return S_OK;
}
};