From 1e60c2f30046826e60c2e75e5a4b825fb53ac472 Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Sat, 23 Jul 2011 12:50:11 +0200 Subject: [PATCH] mshtml: Moved binding-related declarations to separate file. --- dlls/mshtml/binding.h | 112 +++++++++++++++++++++++++++++++++++ dlls/mshtml/htmlwindow.c | 1 + dlls/mshtml/mshtml_private.h | 53 ----------------- dlls/mshtml/navigate.c | 44 ++------------ dlls/mshtml/nsembed.c | 1 + dlls/mshtml/nsio.c | 1 + dlls/mshtml/persist.c | 1 + 7 files changed, 120 insertions(+), 93 deletions(-) create mode 100644 dlls/mshtml/binding.h diff --git a/dlls/mshtml/binding.h b/dlls/mshtml/binding.h new file mode 100644 index 0000000000..f3c4d3ea41 --- /dev/null +++ b/dlls/mshtml/binding.h @@ -0,0 +1,112 @@ +/* + * Copyright 2011 Jacek Caban for CodeWeavers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +typedef struct nsWineURI nsWineURI; + +/* Keep sync with request_method_strings in nsio.c */ +typedef enum { + METHOD_GET, + METHOD_PUT, + METHOD_POST +} REQUEST_METHOD; + +typedef struct { + nsIHttpChannel nsIHttpChannel_iface; + nsIUploadChannel nsIUploadChannel_iface; + nsIHttpChannelInternal nsIHttpChannelInternal_iface; + + LONG ref; + + nsWineURI *uri; + nsIInputStream *post_data_stream; + BOOL post_data_contains_headers; + nsILoadGroup *load_group; + nsIInterfaceRequestor *notif_callback; + nsISupports *owner; + nsLoadFlags load_flags; + nsIURI *original_uri; + nsIURI *referrer; + char *content_type; + char *charset; + PRUint32 response_status; + REQUEST_METHOD request_method; + struct list response_headers; + struct list request_headers; + UINT url_scheme; +} nsChannel; + +typedef struct BSCallbackVtbl BSCallbackVtbl; + +struct BSCallback { + IBindStatusCallback IBindStatusCallback_iface; + IServiceProvider IServiceProvider_iface; + IHttpNegotiate2 IHttpNegotiate2_iface; + IInternetBindInfo IInternetBindInfo_iface; + + const BSCallbackVtbl *vtbl; + + LONG ref; + + LPWSTR headers; + HGLOBAL post_data; + ULONG post_data_len; + ULONG readed; + DWORD bindf; + BOOL bindinfo_ready; + + IMoniker *mon; + IBinding *binding; + + HTMLDocumentNode *doc; + + struct list entry; +}; + +typedef struct nsProtocolStream nsProtocolStream; + +struct nsChannelBSC { + BSCallback bsc; + + HTMLWindow *window; + + nsChannel *nschannel; + nsIStreamListener *nslistener; + nsISupports *nscontext; + BOOL is_js; + + nsProtocolStream *nsstream; +}; + +typedef struct { + struct list entry; + WCHAR *header; + WCHAR *data; +} http_header_t; + +HRESULT set_http_header(struct list*,const WCHAR*,int,const WCHAR*,int) DECLSPEC_HIDDEN; +HRESULT create_redirect_nschannel(const WCHAR*,nsChannel*,nsChannel**) DECLSPEC_HIDDEN; + +nsresult on_start_uri_open(NSContainer*,nsIURI*,PRBool*) DECLSPEC_HIDDEN; +HRESULT hlink_frame_navigate(HTMLDocument*,LPCWSTR,nsChannel*,DWORD,BOOL*) DECLSPEC_HIDDEN; +HRESULT create_doc_uri(HTMLWindow*,WCHAR*,nsWineURI**) DECLSPEC_HIDDEN; +HRESULT load_nsuri(HTMLWindow*,nsWineURI*,nsChannelBSC*,DWORD) DECLSPEC_HIDDEN; +HRESULT set_moniker(HTMLDocument*,IMoniker*,IBindCtx*,nsChannelBSC*,BOOL) DECLSPEC_HIDDEN; + +HRESULT create_channelbsc(IMoniker*,WCHAR*,BYTE*,DWORD,nsChannelBSC**) DECLSPEC_HIDDEN; +HRESULT channelbsc_load_stream(nsChannelBSC*,IStream*) DECLSPEC_HIDDEN; +void channelbsc_set_channel(nsChannelBSC*,nsChannel*,nsIStreamListener*,nsISupports*) DECLSPEC_HIDDEN; diff --git a/dlls/mshtml/htmlwindow.c b/dlls/mshtml/htmlwindow.c index e0d542be22..89702b12b3 100644 --- a/dlls/mshtml/htmlwindow.c +++ b/dlls/mshtml/htmlwindow.c @@ -31,6 +31,7 @@ #include "mshtml_private.h" #include "htmlevent.h" +#include "binding.h" #include "resource.h" WINE_DEFAULT_DEBUG_CHANNEL(mshtml); diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h index 7a5b24e4da..6344b0e571 100644 --- a/dlls/mshtml/mshtml_private.h +++ b/dlls/mshtml/mshtml_private.h @@ -491,51 +491,6 @@ struct NSContainer { HWND hwnd; }; -typedef struct nsWineURI nsWineURI; - -nsresult on_start_uri_open(NSContainer*,nsIURI*,PRBool*) DECLSPEC_HIDDEN; - -/* Keep sync with request_method_strings in nsio.c */ -typedef enum { - METHOD_GET, - METHOD_PUT, - METHOD_POST -} REQUEST_METHOD; - -typedef struct { - nsIHttpChannel nsIHttpChannel_iface; - nsIUploadChannel nsIUploadChannel_iface; - nsIHttpChannelInternal nsIHttpChannelInternal_iface; - - LONG ref; - - nsWineURI *uri; - nsIInputStream *post_data_stream; - BOOL post_data_contains_headers; - nsILoadGroup *load_group; - nsIInterfaceRequestor *notif_callback; - nsISupports *owner; - nsLoadFlags load_flags; - nsIURI *original_uri; - nsIURI *referrer; - char *content_type; - char *charset; - PRUint32 response_status; - REQUEST_METHOD request_method; - struct list response_headers; - struct list request_headers; - UINT url_scheme; -} nsChannel; - -typedef struct { - struct list entry; - WCHAR *header; - WCHAR *data; -} http_header_t; - -HRESULT set_http_header(struct list*,const WCHAR*,int,const WCHAR*,int) DECLSPEC_HIDDEN; -HRESULT create_redirect_nschannel(const WCHAR*,nsChannel*,nsChannel**) DECLSPEC_HIDDEN; - typedef struct { HRESULT (*qi)(HTMLDOMNode*,REFIID,void**); void (*destructor)(HTMLDOMNode*); @@ -701,13 +656,9 @@ void release_nsio(void) DECLSPEC_HIDDEN; BOOL is_gecko_path(const char*) DECLSPEC_HIDDEN; HRESULT nsuri_to_url(LPCWSTR,BOOL,BSTR*) DECLSPEC_HIDDEN; -HRESULT create_doc_uri(HTMLWindow*,WCHAR*,nsWineURI**) DECLSPEC_HIDDEN; -HRESULT load_nsuri(HTMLWindow*,nsWineURI*,nsChannelBSC*,DWORD) DECLSPEC_HIDDEN; -HRESULT hlink_frame_navigate(HTMLDocument*,LPCWSTR,nsChannel*,DWORD,BOOL*) DECLSPEC_HIDDEN; HRESULT navigate_url(HTMLWindow*,const WCHAR*,const WCHAR*) DECLSPEC_HIDDEN; HRESULT set_frame_doc(HTMLFrameBase*,nsIDOMDocument*) DECLSPEC_HIDDEN; -HRESULT set_moniker(HTMLDocument*,IMoniker*,IBindCtx*,nsChannelBSC*,BOOL) DECLSPEC_HIDDEN; void call_property_onchanged(ConnectionPoint*,DISPID) DECLSPEC_HIDDEN; HRESULT call_set_active_object(IOleInPlaceUIWindow*,IOleInPlaceActiveObject*) DECLSPEC_HIDDEN; @@ -744,10 +695,6 @@ void abort_document_bindings(HTMLDocumentNode*) DECLSPEC_HIDDEN; HRESULT bind_mon_to_buffer(HTMLDocumentNode*,IMoniker*,void**,DWORD*) DECLSPEC_HIDDEN; -HRESULT create_channelbsc(IMoniker*,WCHAR*,BYTE*,DWORD,nsChannelBSC**) DECLSPEC_HIDDEN; -HRESULT channelbsc_load_stream(nsChannelBSC*,IStream*) DECLSPEC_HIDDEN; -void channelbsc_set_channel(nsChannelBSC*,nsChannel*,nsIStreamListener*,nsISupports*) DECLSPEC_HIDDEN; - void set_ready_state(HTMLWindow*,READYSTATE) DECLSPEC_HIDDEN; HRESULT HTMLSelectionObject_Create(HTMLDocumentNode*,nsISelection*,IHTMLSelectionObject**) DECLSPEC_HIDDEN; diff --git a/dlls/mshtml/navigate.c b/dlls/mshtml/navigate.c index 6d84d3f6c5..7c38935493 100644 --- a/dlls/mshtml/navigate.c +++ b/dlls/mshtml/navigate.c @@ -38,22 +38,23 @@ #include "wine/unicode.h" #include "mshtml_private.h" +#include "binding.h" WINE_DEFAULT_DEBUG_CHANNEL(mshtml); #define CONTENT_LENGTH "Content-Length" #define UTF16_STR "utf-16" -typedef struct { +struct nsProtocolStream { nsIInputStream nsIInputStream_iface; LONG ref; char buf[1024]; DWORD buf_size; -} nsProtocolStream; +}; -typedef struct { +struct BSCallbackVtbl { void (*destroy)(BSCallback*); HRESULT (*init_bindinfo)(BSCallback*); HRESULT (*start_binding)(BSCallback*); @@ -62,31 +63,6 @@ typedef struct { HRESULT (*on_progress)(BSCallback*,ULONG,LPCWSTR); HRESULT (*on_response)(BSCallback*,DWORD,LPCWSTR); HRESULT (*beginning_transaction)(BSCallback*,WCHAR**); -} BSCallbackVtbl; - -struct BSCallback { - IBindStatusCallback IBindStatusCallback_iface; - IServiceProvider IServiceProvider_iface; - IHttpNegotiate2 IHttpNegotiate2_iface; - IInternetBindInfo IInternetBindInfo_iface; - - const BSCallbackVtbl *vtbl; - - LONG ref; - - LPWSTR headers; - HGLOBAL post_data; - ULONG post_data_len; - ULONG readed; - DWORD bindf; - BOOL bindinfo_ready; - - IMoniker *mon; - IBinding *binding; - - HTMLDocumentNode *doc; - - struct list entry; }; static inline nsProtocolStream *impl_from_nsIInputStream(nsIInputStream *iface) @@ -862,18 +838,6 @@ HRESULT bind_mon_to_buffer(HTMLDocumentNode *doc, IMoniker *mon, void **buf, DWO return hres; } -struct nsChannelBSC { - BSCallback bsc; - - HTMLWindow *window; - - nsChannel *nschannel; - nsIStreamListener *nslistener; - nsISupports *nscontext; - - nsProtocolStream *nsstream; -}; - static HRESULT read_post_data_stream(nsChannelBSC *This, nsChannel *nschannel) { PRUint32 data_len = 0, available = 0; diff --git a/dlls/mshtml/nsembed.c b/dlls/mshtml/nsembed.c index 2cac2b2c26..73817daa86 100644 --- a/dlls/mshtml/nsembed.c +++ b/dlls/mshtml/nsembed.c @@ -35,6 +35,7 @@ #include "mshtml_private.h" #include "htmlevent.h" +#include "binding.h" WINE_DEFAULT_DEBUG_CHANNEL(mshtml); WINE_DECLARE_DEBUG_CHANNEL(gecko); diff --git a/dlls/mshtml/nsio.c b/dlls/mshtml/nsio.c index ca2b7636da..7d26529548 100644 --- a/dlls/mshtml/nsio.c +++ b/dlls/mshtml/nsio.c @@ -36,6 +36,7 @@ #include "wine/unicode.h" #include "mshtml_private.h" +#include "binding.h" WINE_DEFAULT_DEBUG_CHANNEL(mshtml); diff --git a/dlls/mshtml/persist.c b/dlls/mshtml/persist.c index 6915e3d8e0..64e27ede0d 100644 --- a/dlls/mshtml/persist.c +++ b/dlls/mshtml/persist.c @@ -37,6 +37,7 @@ #include "mshtml_private.h" #include "htmlevent.h" +#include "binding.h" #include "resource.h" WINE_DEFAULT_DEBUG_CHANNEL(mshtml); -- 2.32.0.93.g670b81a890