私は、アプリケーションで外部Webページを表示するためにIWebBrowser2コントロールを使用しています。 問題は、オブジェクトがスクリプト化に安全でなく、get_Documentへの呼び出しが失敗したことです(戻り値としてS_FALSEを指定)。IWebBrowser2コントロールのスクリプト作成を安全にする
IWebBrowser2 & IObjectSafetyから継承する新しいクラスのIScriptableWebBrowser2を実装しました。これを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;
}
};
こんにちは、ありがとうございましたが、私は同じスレッドからIWebBrowser2にアクセスしています。 – Yuval