Something went wrong. Try again.
Reactos
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163/* * 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 */
#pragma once
typedef struct nsWineURI nsWineURI;
/* Keep sync with request_method_strings in nsio.c */typedef enum { METHOD_GET, METHOD_PUT, METHOD_POST} REQUEST_METHOD;
typedef enum { BOM_NONE, BOM_UTF8, BOM_UTF16} binding_bom_t;
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; nsILoadInfo *load_info; nsLoadFlags load_flags; nsIURI *original_uri; nsIURI *referrer; char *content_type; char *charset; UINT32 response_status; char *response_status_text; REQUEST_METHOD request_method; struct list response_headers; struct list request_headers;} nsChannel;
typedef struct { nsIInputStream *post_stream; WCHAR *headers; HGLOBAL post_data; ULONG post_data_len;} request_data_t;
typedef struct BSCallbackVtbl BSCallbackVtbl;
struct BSCallback { IBindStatusCallback IBindStatusCallback_iface; IServiceProvider IServiceProvider_iface; IHttpNegotiate2 IHttpNegotiate2_iface; IInternetBindInfo IInternetBindInfo_iface;
const BSCallbackVtbl *vtbl;
LONG ref;
request_data_t request_data; ULONG readed; DWORD bindf; BOOL bindinfo_ready; binding_bom_t bom;
IMoniker *mon; IBinding *binding;
HTMLInnerWindow *window;
struct list entry;};
typedef struct nsProtocolStream nsProtocolStream;
struct nsChannelBSC { BSCallback bsc;
nsChannel *nschannel; nsIStreamListener *nslistener; nsISupports *nscontext; BOOL is_js; BOOL is_doc_channel; BOOL response_processed;
nsProtocolStream *nsstream;};
struct BSCallbackVtbl { void (*destroy)(BSCallback*); HRESULT (*init_bindinfo)(BSCallback*); HRESULT (*start_binding)(BSCallback*); HRESULT (*stop_binding)(BSCallback*,HRESULT); HRESULT (*read_data)(BSCallback*,IStream*); HRESULT (*on_progress)(BSCallback*,ULONG,LPCWSTR); HRESULT (*on_response)(BSCallback*,DWORD,LPCWSTR); HRESULT (*beginning_transaction)(BSCallback*,WCHAR**);};
typedef struct { struct list entry; WCHAR *header; WCHAR *data;} http_header_t;
#define BINDING_NAVIGATED 0x0001#define BINDING_REPLACE 0x0002#define BINDING_FROMHIST 0x0004#define BINDING_REFRESH 0x0008#define BINDING_SUBMIT 0x0010#define BINDING_NOFRAG 0x0020
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*,cpp_bool*) DECLSPEC_HIDDEN;HRESULT hlink_frame_navigate(HTMLDocument*,LPCWSTR,nsChannel*,DWORD,BOOL*) DECLSPEC_HIDDEN;HRESULT create_doc_uri(HTMLOuterWindow*,IUri*,nsWineURI**) DECLSPEC_HIDDEN;HRESULT load_nsuri(HTMLOuterWindow*,nsWineURI*,nsIInputStream*,nsChannelBSC*,DWORD) DECLSPEC_HIDDEN;HRESULT set_moniker(HTMLOuterWindow*,IMoniker*,IUri*,IBindCtx*,nsChannelBSC*,BOOL) DECLSPEC_HIDDEN;void prepare_for_binding(HTMLDocument*,IMoniker*,DWORD) DECLSPEC_HIDDEN;HRESULT super_navigate(HTMLOuterWindow*,IUri*,DWORD,const WCHAR*,BYTE*,DWORD) DECLSPEC_HIDDEN;HRESULT load_uri(HTMLOuterWindow*,IUri*,DWORD) DECLSPEC_HIDDEN;HRESULT navigate_new_window(HTMLOuterWindow*,IUri*,const WCHAR*,request_data_t*,IHTMLWindow2**) DECLSPEC_HIDDEN;HRESULT navigate_url(HTMLOuterWindow*,const WCHAR*,IUri*,DWORD) DECLSPEC_HIDDEN;HRESULT submit_form(HTMLOuterWindow*,const WCHAR*,IUri*,nsIInputStream*) DECLSPEC_HIDDEN;
void init_bscallback(BSCallback*,const BSCallbackVtbl*,IMoniker*,DWORD) DECLSPEC_HIDDEN;HRESULT create_channelbsc(IMoniker*,const WCHAR*,BYTE*,DWORD,BOOL,nsChannelBSC**) DECLSPEC_HIDDEN;HRESULT channelbsc_load_stream(HTMLInnerWindow*,IMoniker*,IStream*) DECLSPEC_HIDDEN;void channelbsc_set_channel(nsChannelBSC*,nsChannel*,nsIStreamListener*,nsISupports*) DECLSPEC_HIDDEN;IUri *nsuri_get_uri(nsWineURI*) DECLSPEC_HIDDEN;
HRESULT read_stream(BSCallback*,IStream*,void*,DWORD,DWORD*) DECLSPEC_HIDDEN;
HRESULT create_relative_uri(HTMLOuterWindow*,const WCHAR*,IUri**) DECLSPEC_HIDDEN;HRESULT create_uri(const WCHAR*,DWORD,IUri**) DECLSPEC_HIDDEN;IUri *get_uri_nofrag(IUri*) DECLSPEC_HIDDEN;
void set_current_mon(HTMLOuterWindow*,IMoniker*,DWORD) DECLSPEC_HIDDEN;void set_current_uri(HTMLOuterWindow*,IUri*) DECLSPEC_HIDDEN;