Module: wine Branch: refs/heads/master Commit: ee8c855f777153c0af27e60c58f933d68b37b90a URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=ee8c855f777153c0af27e60c...
Author: Jacek Caban jacek@codeweavers.com Date: Sat Jun 3 00:41:48 2006 +0200
mshtml: Added begining binding code in IPersistMoniker::Load.
---
dlls/mshtml/navigate.c | 25 +++++++++++++++++++++++++ dlls/mshtml/persist.c | 9 ++++++++- 2 files changed, 33 insertions(+), 1 deletions(-)
diff --git a/dlls/mshtml/navigate.c b/dlls/mshtml/navigate.c index dc70726..514f2bd 100644 --- a/dlls/mshtml/navigate.c +++ b/dlls/mshtml/navigate.c @@ -491,3 +491,28 @@ void hlink_frame_navigate(HTMLDocument * IMoniker_Release(mon);
} + +HRESULT start_binding(BSCallback *bscallback, IMoniker *mon) +{ + IStream *str = NULL; + IBindCtx *bctx; + HRESULT hres; + + hres = CreateAsyncBindCtx(0, STATUSCLB(bscallback), NULL, &bctx); + if(FAILED(hres)) { + WARN("CreateAsyncBindCtx failed: %08lx\n", hres); + return hres; + } + + hres = IMoniker_BindToStorage(mon, bctx, NULL, &IID_IStream, (void**)&str); + IBindCtx_Release(bctx); + if(FAILED(hres)) { + WARN("BindToStorage failed: %08lx\n", hres); + return hres; + } + + if(str) + IStream_Release(str); + + return S_OK; +} diff --git a/dlls/mshtml/persist.c b/dlls/mshtml/persist.c index 55462ad..7127091 100644 --- a/dlls/mshtml/persist.c +++ b/dlls/mshtml/persist.c @@ -228,7 +228,12 @@ static HRESULT WINAPI PersistMoniker_Loa if(post_data_stream) nsIInputStream_Release(post_data_stream);
+ if(!bscallback->nschannel) + ERR("bscallback->nschannel == NULL\n"); + if(NS_SUCCEEDED(nsres)) { + /* FIXME: don't return here (URL Moniker needs to be good enough) */ + IBindStatusCallback_Release(STATUSCLB(bscallback)); CoTaskMemFree(url); return S_OK; @@ -244,10 +249,12 @@ static HRESULT WINAPI PersistMoniker_Loa if(pibc) FIXME("not supported pibc\n");
+ hres = start_binding(bscallback, pimkName); + IBindStatusCallback_Release(STATUSCLB(bscallback)); CoTaskMemFree(url);
- return S_OK; + return hres; }
static HRESULT WINAPI PersistMoniker_Save(IPersistMoniker *iface, IMoniker *pimkName,