void wxWebViewIE::SetPage(const wxString& html, const wxString& baseUrl)
{
- BSTR bstr = SysAllocString(html.wc_str());
-
- // Creates a new one-dimensional array
+ BSTR bstr = SysAllocString(OLESTR(""));
SAFEARRAY *psaStrings = SafeArrayCreateVector(VT_VARIANT, 0, 1);
if (psaStrings != NULL)
{
VARIANT *param;
-
HRESULT hr = SafeArrayAccessData(psaStrings, (LPVOID*)¶m);
param->vt = VT_BSTR;
param->bstrVal = bstr;
- hr = SafeArrayUnaccessData(psaStrings);
+ hr = SafeArrayUnaccessData(psaStrings);
+
IHTMLDocument2* document = GetDocument();
document->write(psaStrings);
+ document->close();
document->Release();
- // SafeArrayDestroy calls SysFreeString for each BSTR
SafeArrayDestroy(psaStrings);
- //We send the events when we are done to mimic webkit
- //Navigated event
- wxWebViewEvent event(wxEVT_COMMAND_WEB_VIEW_NAVIGATED,
- GetId(), baseUrl, "");
- event.SetEventObject(this);
- HandleWindowEvent(event);
-
- //Document complete event
- event.SetEventType(wxEVT_COMMAND_WEB_VIEW_LOADED);
- event.SetEventObject(this);
- HandleWindowEvent(event);
+ bstr = SysAllocString(html.wc_str());
+
+ // Creates a new one-dimensional array
+ psaStrings = SafeArrayCreateVector(VT_VARIANT, 0, 1);
+ if (psaStrings != NULL)
+ {
+ hr = SafeArrayAccessData(psaStrings, (LPVOID*)¶m);
+ param->vt = VT_BSTR;
+ param->bstrVal = bstr;
+ hr = SafeArrayUnaccessData(psaStrings);
+
+ document = GetDocument();
+ document->write(psaStrings);
+ document->Release();
+
+ // SafeArrayDestroy calls SysFreeString for each BSTR
+ SafeArrayDestroy(psaStrings);
+
+ //We send the events when we are done to mimic webkit
+ //Navigated event
+ wxWebViewEvent event(wxEVT_COMMAND_WEB_VIEW_NAVIGATED,
+ GetId(), baseUrl, "");
+ event.SetEventObject(this);
+ HandleWindowEvent(event);
+
+ //Document complete event
+ event.SetEventType(wxEVT_COMMAND_WEB_VIEW_LOADED);
+ event.SetEventObject(this);
+ HandleWindowEvent(event);
+ }
+ else
+ {
+ wxLogError("wxWebViewIE::SetPage() : psaStrings is NULL");
+ }
}
else
{
- wxLogError("wxWebViewIE::SetPage() : psaStrings is NULL");
+ wxLogError("wxWebViewIE::SetPage() : psaStrings is NULL during clear");
}
-
}
wxString wxWebViewIE::GetPageSource() const
CPPUNIT_TEST( Selection );
CPPUNIT_TEST( Zoom );
CPPUNIT_TEST( RunScript );
+ CPPUNIT_TEST( SetPage );
CPPUNIT_TEST_SUITE_END();
void Title();
void Selection();
void Zoom();
void RunScript();
+ void SetPage();
void LoadUrl(int times = 1);
wxWebView* m_browser;
CPPUNIT_ASSERT_EQUAL("Hello World!", m_browser->GetPageText());
}
+void WebTestCase::SetPage()
+{
+ m_browser->SetPage("<html><body>text</body></html>", "");
+ CPPUNIT_ASSERT_EQUAL("text", m_browser->GetPageText());
+
+ m_browser->SetPage("<html><body>other text</body></html>", "");
+ CPPUNIT_ASSERT_EQUAL("other text", m_browser->GetPageText());
+}
+
#endif //wxUSE_WEBVIEW && (wxUSE_WEBVIEW_WEBKIT || wxUSE_WEBVIEW_IE)