Jacek Caban : mshtml: Added IPersistHistory::SaveHistory implementation.
Alexandre Julliard
julliard at winehq.org
Fri Nov 9 11:03:23 CST 2012
Module: wine
Branch: master
Commit: 92443dca0210741359493d151020b178e4f51e58
URL: http://source.winehq.org/git/wine.git/?a=commit;h=92443dca0210741359493d151020b178e4f51e58
Author: Jacek Caban <jacek at codeweavers.com>
Date: Thu Nov 8 18:17:24 2012 +0100
mshtml: Added IPersistHistory::SaveHistory implementation.
---
dlls/mshtml/persist.c | 25 +++++++++++++++++++++++--
1 files changed, 23 insertions(+), 2 deletions(-)
diff --git a/dlls/mshtml/persist.c b/dlls/mshtml/persist.c
index 0c279c0..aa31067 100644
--- a/dlls/mshtml/persist.c
+++ b/dlls/mshtml/persist.c
@@ -943,8 +943,29 @@ static HRESULT WINAPI PersistHistory_LoadHistory(IPersistHistory *iface, IStream
static HRESULT WINAPI PersistHistory_SaveHistory(IPersistHistory *iface, IStream *pStream)
{
HTMLDocument *This = impl_from_IPersistHistory(iface);
- FIXME("(%p)->(%p)\n", This, pStream);
- return E_NOTIMPL;
+ ULONG len, written;
+ BSTR display_uri;
+ HRESULT hres;
+
+ TRACE("(%p)->(%p)\n", This, pStream);
+
+ if(!This->window || !This->window->uri) {
+ FIXME("No current URI\n");
+ return E_FAIL;
+ }
+
+ /* NOTE: The format we store is *not* compatible with native MSHTML. We currently
+ * store only URI of the page (as a length followed by a string) */
+ hres = IUri_GetDisplayUri(This->window->uri, &display_uri);
+ if(FAILED(hres))
+ return hres;
+
+ len = SysStringLen(display_uri);
+ hres = IStream_Write(pStream, &len, sizeof(len), &written);
+ if(SUCCEEDED(hres))
+ hres = IStream_Write(pStream, display_uri, len*sizeof(WCHAR), &written);
+ SysFreeString(display_uri);
+ return hres;
}
static HRESULT WINAPI PersistHistory_SetPositionCookie(IPersistHistory *iface, DWORD dwPositioncookie)
More information about the wine-cvs
mailing list