From 5a04f526ad21ccf5bb4d3f323805172003cdaadf Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Sun, 23 Mar 2008 02:16:03 +0100 Subject: [PATCH] mshtml: Added new nsChannelBSC type. --- dlls/mshtml/mshtml_private.h | 19 +++++++++++-------- dlls/mshtml/navigate.c | 6 +++--- dlls/mshtml/nsio.c | 4 ++-- dlls/mshtml/persist.c | 12 ++++++------ 4 files changed, 22 insertions(+), 19 deletions(-) diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h index 2936f762b03..a21eee3c377 100644 --- a/dlls/mshtml/mshtml_private.h +++ b/dlls/mshtml/mshtml_private.h @@ -54,6 +54,7 @@ typedef struct HTMLDOMNode HTMLDOMNode; typedef struct ConnectionPoint ConnectionPoint; typedef struct BSCallback BSCallback; +typedef struct BSCallback nsChannelBSC; typedef struct { const IHTMLWindow2Vtbl *lpHTMLWindow2Vtbl; @@ -138,7 +139,7 @@ struct HTMLDocument { IOleUndoManager *undomgr; - BSCallback *bscallback; + nsChannelBSC *bscallback; IMoniker *mon; LPOLESTR url; struct list bindings; @@ -211,7 +212,7 @@ struct NSContainer { HWND hwnd; - BSCallback *bscallback; /* hack */ + nsChannelBSC *bscallback; /* hack */ HWND reset_focus; /* hack */ }; @@ -428,14 +429,16 @@ void get_editor_controller(NSContainer*); void init_nsevents(NSContainer*); nsresult get_nsinterface(nsISupports*,REFIID,void**); -BSCallback *create_bscallback(IMoniker*); -HRESULT start_binding(HTMLDocument*,BSCallback*,IBindCtx*); -HRESULT load_stream(BSCallback*,IStream*); -void set_document_bscallback(HTMLDocument*,BSCallback*); +void set_document_bscallback(HTMLDocument*,nsChannelBSC*); void set_current_mon(HTMLDocument*,IMoniker*); +HRESULT start_binding(HTMLDocument*,BSCallback*,IBindCtx*); -void channelbsc_set_channel(BSCallback*,nsChannel*,nsIStreamListener*,nsISupports*); -IMoniker *get_channelbsc_mon(BSCallback*); +HRESULT bind_mon_to_buffer(HTMLDocument*,IMoniker*,void**); + +nsChannelBSC *create_channelbsc(IMoniker*); +HRESULT channelbsc_load_stream(nsChannelBSC*,IStream*); +void channelbsc_set_channel(nsChannelBSC*,nsChannel*,nsIStreamListener*,nsISupports*); +IMoniker *get_channelbsc_mon(nsChannelBSC*); IHTMLSelectionObject *HTMLSelectionObject_Create(HTMLDocument*,nsISelection*); IHTMLTxtRange *HTMLTxtRange_Create(HTMLDocument*,nsIDOMRange*); diff --git a/dlls/mshtml/navigate.c b/dlls/mshtml/navigate.c index e3ac73560bf..ebeca3d9f2b 100644 --- a/dlls/mshtml/navigate.c +++ b/dlls/mshtml/navigate.c @@ -660,7 +660,7 @@ static const IServiceProviderVtbl ServiceProviderVtbl = { BSCServiceProvider_QueryService }; -BSCallback *create_bscallback(IMoniker *mon) +BSCallback *create_channelbsc(IMoniker *mon) { BSCallback *ret = heap_alloc(sizeof(BSCallback)); @@ -789,7 +789,7 @@ void hlink_frame_navigate(HTMLDocument *doc, IHlinkFrame *hlink_frame, IHlink *hlink; HRESULT hr; - callback = create_bscallback(NULL); + callback = create_channelbsc(NULL); if(post_data_stream) { parse_post_data(post_data_stream, &callback->headers, &callback->post_data, @@ -897,7 +897,7 @@ void set_document_bscallback(HTMLDocument *doc, BSCallback *callback) } } -HRESULT load_stream(BSCallback *bscallback, IStream *stream) +HRESULT channelbsc_load_stream(BSCallback *bscallback, IStream *stream) { HRESULT hres; diff --git a/dlls/mshtml/nsio.c b/dlls/mshtml/nsio.c index 8c996b8e06a..b45bb082db9 100644 --- a/dlls/mshtml/nsio.c +++ b/dlls/mshtml/nsio.c @@ -727,7 +727,7 @@ static nsresult async_open_doc_uri(nsChannel *This, NSContainer *container, static nsresult async_open(nsChannel *This, NSContainer *container, nsIStreamListener *listener, nsISupports *context) { - BSCallback *bscallback; + nsChannelBSC *bscallback; IMoniker *mon = NULL; nsresult nsres; task_t *task; @@ -769,7 +769,7 @@ static nsresult async_open(nsChannel *This, NSContainer *container, nsIStreamLis if(FAILED(hres)) return NS_ERROR_UNEXPECTED; - bscallback = create_bscallback(mon); + bscallback = create_channelbsc(mon); IMoniker_Release(mon); channelbsc_set_channel(bscallback, This, listener, context); diff --git a/dlls/mshtml/persist.c b/dlls/mshtml/persist.c index 8c0cb3b0792..a094dc1f58b 100644 --- a/dlls/mshtml/persist.c +++ b/dlls/mshtml/persist.c @@ -185,7 +185,7 @@ void set_current_mon(HTMLDocument *This, IMoniker *mon) static HRESULT set_moniker(HTMLDocument *This, IMoniker *mon, IBindCtx *pibc, BOOL *bind_complete) { - BSCallback *bscallback; + nsChannelBSC *bscallback; LPOLESTR url = NULL; task_t *task; HRESULT hres; @@ -271,7 +271,7 @@ static HRESULT set_moniker(HTMLDocument *This, IMoniker *mon, IBindCtx *pibc, BO } } - bscallback = create_bscallback(mon); + bscallback = create_channelbsc(mon); if(This->frame) { task = heap_alloc(sizeof(task_t)); @@ -305,7 +305,7 @@ static HRESULT set_moniker(HTMLDocument *This, IMoniker *mon, IBindCtx *pibc, BO if(NS_SUCCEEDED(nsres)) { /* FIXME: don't return here (URL Moniker needs to be good enough) */ - IBindStatusCallback_Release(STATUSCLB(bscallback)); + IUnknown_Release((IUnknown*)bscallback); CoTaskMemFree(url); if(bind_complete) @@ -317,7 +317,7 @@ static HRESULT set_moniker(HTMLDocument *This, IMoniker *mon, IBindCtx *pibc, BO } set_document_bscallback(This, bscallback); - IBindStatusCallback_Release(STATUSCLB(bscallback)); + IUnknown_Release((IUnknown*)bscallback); CoTaskMemFree(url); if(bind_complete) @@ -422,7 +422,7 @@ static HRESULT WINAPI PersistMoniker_Load(IPersistMoniker *iface, BOOL fFullyAva return hres; if(!bind_complete) - return start_binding(This, This->bscallback, pibc); + return start_binding(This, (BSCallback*)This->bscallback, pibc); return S_OK; } @@ -687,7 +687,7 @@ static HRESULT WINAPI PersistStreamInit_Load(IPersistStreamInit *iface, LPSTREAM if(FAILED(hres)) return hres; - return load_stream(This->bscallback, pStm); + return channelbsc_load_stream(This->bscallback, pStm); } static HRESULT WINAPI PersistStreamInit_Save(IPersistStreamInit *iface, LPSTREAM pStm,