23#define NONAMELESSUNION
55static const WCHAR colspaceW[] = {
':',
' ',0};
57static const DWORD safety_supported_options =
58 INTERFACESAFE_FOR_UNTRUSTED_CALLER |
59 INTERFACESAFE_FOR_UNTRUSTED_DATA |
60 INTERFACE_USES_SECURITY_MANAGER;
73 IXMLHTTPRequest IXMLHTTPRequest_iface;
88 struct list reqheaders;
92 BOOL use_utf8_content;
95 struct list respheaders;
117 IServerXMLHTTPRequest IServerXMLHTTPRequest_iface;
120static inline httprequest *impl_from_IXMLHTTPRequest( IXMLHTTPRequest *iface )
140static inline serverhttp *impl_from_IServerXMLHTTPRequest(IServerXMLHTTPRequest *iface)
145static void httprequest_setreadystate(httprequest *
This, READYSTATE
state)
148 static const char* readystates[] = {
149 "READYSTATE_UNINITIALIZED",
150 "READYSTATE_LOADING",
152 "READYSTATE_INTERACTIVE",
153 "READYSTATE_COMPLETE"};
168static void free_response_headers(httprequest *
This)
170 struct httpheader *
header, *header2;
184static void free_request_headers(httprequest *
This)
186 struct httpheader *
header, *header2;
233 if (
bsc->binding) IBinding_Abort(
bsc->binding);
236 IBindStatusCallback_Release(&
bsc->IBindStatusCallback_iface);
252 *
ppv = &
This->IBindStatusCallback_iface;
256 *
ppv = &
This->IHttpNegotiate_iface;
260 *
ppv = &
This->IAuthenticate_iface;
272 IBindStatusCallback_AddRef(iface);
300 if (
This->binding) IBinding_Release(
This->binding);
301 if (
This->stream) IStream_Release(
This->stream);
318 This->binding = pbind;
319 IBinding_AddRef(pbind);
321 httprequest_setreadystate(
This->request, READYSTATE_LOADED);
349 TRACE(
"(%p)->(%u %u %u %s)\n",
This, ulProgress, ulProgressMax, ulStatusCode,
364 IBinding_Release(
This->binding);
370 BindStatusCallback_Detach(
This->request->bsc);
372 httprequest_setreadystate(
This->request, READYSTATE_COMPLETE);
379 DWORD *bind_flags, BINDINFO *pbindinfo)
383 TRACE(
"(%p)->(%p %p)\n",
This, bind_flags, pbindinfo);
386 if (
This->request->async) *bind_flags |= BINDF_ASYNCHRONOUS;
388 if (
This->request->verb != BINDVERB_GET &&
This->body)
390 pbindinfo->stgmedData.tymed = TYMED_HGLOBAL;
391 pbindinfo->stgmedData.u.hGlobal =
This->body;
394 IBindStatusCallback_QueryInterface(iface, &
IID_IUnknown, (
void**)&pbindinfo->stgmedData.pUnkForRelease);
397 pbindinfo->dwBindVerb =
This->request->verb;
398 if (
This->request->verb == BINDVERB_CUSTOM)
401 strcpyW(pbindinfo->szCustomVerb,
This->request->custom);
419 hr = IStream_Read(stgmed->u.pstm,
buf,
sizeof(
buf), &
read);
423 }
while((
hr ==
S_OK) && written != 0 &&
read != 0);
425 httprequest_setreadystate(
This->request, READYSTATE_INTERACTIVE);
458 return IBindStatusCallback_QueryInterface(&
This->IBindStatusCallback_iface,
riid,
ppv);
464 return IBindStatusCallback_AddRef(&
This->IBindStatusCallback_iface);
470 return IBindStatusCallback_Release(&
This->IBindStatusCallback_iface);
476 static const WCHAR content_type_utf8W[] = {
'C',
'o',
'n',
't',
'e',
'n',
't',
'-',
'T',
'y',
'p',
'e',
':',
' ',
477 't',
'e',
'x',
't',
'/',
'p',
'l',
'a',
'i',
'n',
';',
'c',
'h',
'a',
'r',
's',
'e',
't',
'=',
'u',
't',
'f',
'-',
'8',
'\r',
'\n',0};
478 static const WCHAR refererW[] = {
'R',
'e',
'f',
'e',
'r',
'e',
'r',
':',
' ',0};
481 const struct httpheader *
entry;
490 if (
This->request->use_utf8_content)
491 size =
sizeof(content_type_utf8W);
496 if (
This->request->base_uri)
498 IUri_GetRawUri(
This->request->base_uri, &base_uri);
516 if (
This->request->use_utf8_content)
552static void add_response_header(httprequest *
This,
const WCHAR *
data,
int len)
554 struct httpheader *
entry;
564 while (*++
ptr ==
' ')
593 free_response_headers(
This->request);
614 if (*
ptr ==
'\r' && *(
ptr+1) ==
'\n')
645 return IBindStatusCallback_QueryInterface(&
This->IBindStatusCallback_iface,
riid,
ppv);
651 return IBindStatusCallback_AddRef(&
This->IBindStatusCallback_iface);
657 return IBindStatusCallback_Release(&
This->IBindStatusCallback_iface);
707 IBindCtx_Release(pbc);
724 if (
This->verb != BINDVERB_GET)
726 void *send_data, *
ptr;
826 IBindCtx_Release(pbc);
831 IBindStatusCallback_Release(&
bsc->IBindStatusCallback_iface);
845 if(!(
This->safeopt & INTERFACESAFE_FOR_UNTRUSTED_DATA))
855 hr = IUri_GetScheme(
This->base_uri, &base_scheme);
859 if(
scheme != base_scheme) {
860 WARN(
"Schemes don't match\n");
865 FIXME(
"Unknown scheme\n");
873 hr = IUri_GetHost(
This->base_uri, &base_host);
876 WARN(
"Hosts don't match\n");
889 static const WCHAR MethodHeadW[] = {
'H',
'E',
'A',
'D',0};
890 static const WCHAR MethodGetW[] = {
'G',
'E',
'T',0};
891 static const WCHAR MethodPutW[] = {
'P',
'U',
'T',0};
892 static const WCHAR MethodPostW[] = {
'P',
'O',
'S',
'T',0};
893 static const WCHAR MethodDeleteW[] = {
'D',
'E',
'L',
'E',
'T',
'E',0};
894 static const WCHAR MethodPropFindW[] = {
'P',
'R',
'O',
'P',
'F',
'I',
'N',
'D',0};
903 IUri_Release(
This->uri);
910 free_request_headers(
This);
914 This->verb = BINDVERB_GET;
918 This->verb = BINDVERB_PUT;
922 This->verb = BINDVERB_POST;
928 This->verb = BINDVERB_CUSTOM;
943 WARN(
"Could not create IUri object: %08x\n",
hr);
973 IUriBuilder_SetUserName(builder,
This->user);
974 IUriBuilder_SetPassword(builder,
This->password);
975 hr = IUriBuilder_CreateUri(builder, -1, 0, 0, &full_uri);
982 WARN(
"failed to create modified uri, 0x%08x\n",
hr);
983 IUriBuilder_Release(builder);
986 WARN(
"IUriBuilder creation failed, 0x%08x\n",
hr);
995 httprequest_setreadystate(
This, READYSTATE_LOADING);
1002 struct httpheader *
entry;
1005 if (
This->state != READYSTATE_LOADING)
return E_FAIL;
1043 struct httpheader *
entry;
1055 if (*
ptr ==
'\r' && *(
ptr+1) ==
'\n')
1078static HRESULT httprequest_getAllResponseHeaders(httprequest *
This,
BSTR *respheaders)
1092 if (
This->state != READYSTATE_LOADING)
return E_FAIL;
1097 BindStatusCallback_Detach(
bsc);
1102static HRESULT httprequest_abort(httprequest *
This)
1104 BindStatusCallback_Detach(
This->bsc);
1106 httprequest_setreadystate(
This, READYSTATE_UNINITIALIZED);
1123 if (
This->state != READYSTATE_COMPLETE)
return E_FAIL;
1136 if (
This->state != READYSTATE_COMPLETE)
return E_FAIL;
1182 IXMLDOMDocument3 *doc;
1187 if (
This->state != READYSTATE_COMPLETE)
return E_FAIL;
1192 hr = httprequest_get_responseText(
This, &
str);
1197 hr = IXMLDOMDocument3_loadXML(doc,
str, &
ok);
1202 IXMLDOMDocument3_Release(doc);
1271 IStream_Seek(
stream, move, STREAM_SEEK_SET,
NULL);
1289 if (
This->sink) IDispatch_Release(
This->sink);
1295static void httprequest_release(httprequest *
This)
1298 IUnknown_Release(
This->site );
1300 IUri_Release(
This->uri);
1302 IUri_Release(
This->base_uri);
1309 free_request_headers(
This);
1310 free_response_headers(
This);
1314 BindStatusCallback_Detach(
This->bsc);
1316 if (
This->sink) IDispatch_Release(
This->sink);
1321 httprequest *
This = impl_from_IXMLHTTPRequest( iface );
1354static ULONG WINAPI XMLHTTPRequest_AddRef(IXMLHTTPRequest *iface)
1356 httprequest *
This = impl_from_IXMLHTTPRequest( iface );
1362static ULONG WINAPI XMLHTTPRequest_Release(IXMLHTTPRequest *iface)
1364 httprequest *
This = impl_from_IXMLHTTPRequest( iface );
1371 httprequest_release(
This );
1378static HRESULT WINAPI XMLHTTPRequest_GetTypeInfoCount(IXMLHTTPRequest *iface,
UINT *pctinfo)
1380 httprequest *
This = impl_from_IXMLHTTPRequest( iface );
1389static HRESULT WINAPI XMLHTTPRequest_GetTypeInfo(IXMLHTTPRequest *iface,
UINT iTInfo,
1392 httprequest *
This = impl_from_IXMLHTTPRequest( iface );
1394 TRACE(
"(%p)->(%u %u %p)\n",
This, iTInfo, lcid, ppTInfo);
1402 httprequest *
This = impl_from_IXMLHTTPRequest( iface );
1409 if(!rgszNames || cNames == 0 || !rgDispId)
1415 hr = ITypeInfo_GetIDsOfNames(
typeinfo, rgszNames, cNames, rgDispId);
1424 EXCEPINFO *pExcepInfo,
UINT *puArgErr)
1426 httprequest *
This = impl_from_IXMLHTTPRequest( iface );
1431 lcid,
wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
1437 pDispParams, pVarResult, pExcepInfo, puArgErr);
1447 httprequest *
This = impl_from_IXMLHTTPRequest( iface );
1455 httprequest *
This = impl_from_IXMLHTTPRequest( iface );
1462 httprequest *
This = impl_from_IXMLHTTPRequest( iface );
1467static HRESULT WINAPI XMLHTTPRequest_getAllResponseHeaders(IXMLHTTPRequest *iface,
BSTR *respheaders)
1469 httprequest *
This = impl_from_IXMLHTTPRequest( iface );
1470 TRACE(
"(%p)->(%p)\n",
This, respheaders);
1471 return httprequest_getAllResponseHeaders(
This, respheaders);
1476 httprequest *
This = impl_from_IXMLHTTPRequest( iface );
1478 return httprequest_send(
This,
body);
1481static HRESULT WINAPI XMLHTTPRequest_abort(IXMLHTTPRequest *iface)
1483 httprequest *
This = impl_from_IXMLHTTPRequest( iface );
1485 return httprequest_abort(
This);
1490 httprequest *
This = impl_from_IXMLHTTPRequest( iface );
1497 httprequest *
This = impl_from_IXMLHTTPRequest( iface );
1499 return httprequest_get_statusText(
This,
status);
1504 httprequest *
This = impl_from_IXMLHTTPRequest( iface );
1506 return httprequest_get_responseXML(
This,
body);
1511 httprequest *
This = impl_from_IXMLHTTPRequest( iface );
1513 return httprequest_get_responseText(
This,
body);
1518 httprequest *
This = impl_from_IXMLHTTPRequest( iface );
1520 return httprequest_get_responseBody(
This,
body);
1525 httprequest *
This = impl_from_IXMLHTTPRequest( iface );
1527 return httprequest_get_responseStream(
This,
body);
1532 httprequest *
This = impl_from_IXMLHTTPRequest( iface );
1534 return httprequest_get_readyState(
This,
state);
1539 httprequest *
This = impl_from_IXMLHTTPRequest( iface );
1541 return httprequest_put_onreadystatechange(
This,
sink);
1544static const struct IXMLHTTPRequestVtbl XMLHTTPRequestVtbl =
1546 XMLHTTPRequest_QueryInterface,
1547 XMLHTTPRequest_AddRef,
1548 XMLHTTPRequest_Release,
1549 XMLHTTPRequest_GetTypeInfoCount,
1550 XMLHTTPRequest_GetTypeInfo,
1551 XMLHTTPRequest_GetIDsOfNames,
1552 XMLHTTPRequest_Invoke,
1553 XMLHTTPRequest_open,
1554 XMLHTTPRequest_setRequestHeader,
1555 XMLHTTPRequest_getResponseHeader,
1556 XMLHTTPRequest_getAllResponseHeaders,
1557 XMLHTTPRequest_send,
1558 XMLHTTPRequest_abort,
1559 XMLHTTPRequest_get_status,
1560 XMLHTTPRequest_get_statusText,
1561 XMLHTTPRequest_get_responseXML,
1562 XMLHTTPRequest_get_responseText,
1563 XMLHTTPRequest_get_responseBody,
1564 XMLHTTPRequest_get_responseStream,
1565 XMLHTTPRequest_get_readyState,
1566 XMLHTTPRequest_put_onreadystatechange
1574 return IXMLHTTPRequest_QueryInterface(&
This->IXMLHTTPRequest_iface,
riid,
ppvObject);
1580 return IXMLHTTPRequest_AddRef(&
This->IXMLHTTPRequest_iface);
1586 return IXMLHTTPRequest_Release(&
This->IXMLHTTPRequest_iface);
1598 return IUnknown_QueryInterface(
This->site, iid, ppvSite );
1601static void get_base_uri(httprequest *
This)
1604 IHTMLDocument2 *doc;
1609 hr = IUnknown_QueryInterface(
This->site, &IID_IServiceProvider, (
void**)&provider);
1613 hr = IServiceProvider_QueryService(provider, &SID_SContainerDispatch, &IID_IHTMLDocument2, (
void**)&doc);
1615 hr = IServiceProvider_QueryService(provider, &SID_SInternetHostSecurityManager, &IID_IHTMLDocument2, (
void**)&doc);
1616 IServiceProvider_Release(provider);
1620 hr = IHTMLDocument2_get_URL(doc, &
url);
1621 IHTMLDocument2_Release(doc);
1642 IUnknown_Release(
This->site );
1644 IUri_Release(
This->base_uri);
1650 IUnknown_AddRef( punk );
1659 httprequest_ObjectWithSite_QueryInterface,
1660 httprequest_ObjectWithSite_AddRef,
1661 httprequest_ObjectWithSite_Release,
1662 httprequest_ObjectWithSite_SetSite,
1663 httprequest_ObjectWithSite_GetSite
1670 return IXMLHTTPRequest_QueryInterface(&
This->IXMLHTTPRequest_iface,
riid,
ppv);
1676 return IXMLHTTPRequest_AddRef(&
This->IXMLHTTPRequest_iface);
1682 return IXMLHTTPRequest_Release(&
This->IXMLHTTPRequest_iface);
1694 *supported = safety_supported_options;
1706 if ((
mask & ~safety_supported_options))
1715 httprequest_Safety_QueryInterface,
1716 httprequest_Safety_AddRef,
1717 httprequest_Safety_Release,
1718 httprequest_Safety_GetInterfaceSafetyOptions,
1719 httprequest_Safety_SetInterfaceSafetyOptions
1725 return IXMLHTTPRequest_QueryInterface(&
This->IXMLHTTPRequest_iface,
riid,
obj);
1731 return IXMLHTTPRequest_AddRef(&
This->IXMLHTTPRequest_iface);
1737 return IXMLHTTPRequest_Release(&
This->IXMLHTTPRequest_iface);
1773 *
obj = &
This->req.ISupportErrorInfo_iface;
1787static ULONG WINAPI ServerXMLHTTPRequest_AddRef(IServerXMLHTTPRequest *iface)
1795static ULONG WINAPI ServerXMLHTTPRequest_Release(IServerXMLHTTPRequest *iface)
1804 httprequest_release( &
This->req );
1811static HRESULT WINAPI ServerXMLHTTPRequest_GetTypeInfoCount(IServerXMLHTTPRequest *iface,
UINT *pctinfo)
1821static HRESULT WINAPI ServerXMLHTTPRequest_GetTypeInfo(IServerXMLHTTPRequest *iface,
UINT iTInfo,
1826 TRACE(
"(%p)->(%u %u %p)\n",
This, iTInfo, lcid, ppTInfo);
1841 if(!rgszNames || cNames == 0 || !rgDispId)
1847 hr = ITypeInfo_GetIDsOfNames(
typeinfo, rgszNames, cNames, rgDispId);
1856 EXCEPINFO *pExcepInfo,
UINT *puArgErr)
1863 lcid,
wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
1869 pDispParams, pVarResult, pExcepInfo, puArgErr);
1899static HRESULT WINAPI ServerXMLHTTPRequest_getAllResponseHeaders(IServerXMLHTTPRequest *iface,
BSTR *respheaders)
1902 TRACE(
"(%p)->(%p)\n",
This, respheaders);
1903 return httprequest_getAllResponseHeaders(&
This->req, respheaders);
1910 return httprequest_send(&
This->req,
body);
1913static HRESULT WINAPI ServerXMLHTTPRequest_abort(IServerXMLHTTPRequest *iface)
1917 return httprequest_abort(&
This->req);
1924 return httprequest_get_status(&
This->req,
status);
1931 return httprequest_get_statusText(&
This->req,
status);
1938 return httprequest_get_responseXML(&
This->req,
body);
1941static HRESULT WINAPI ServerXMLHTTPRequest_get_responseText(IServerXMLHTTPRequest *iface,
BSTR *
body)
1945 return httprequest_get_responseText(&
This->req,
body);
1952 return httprequest_get_responseBody(&
This->req,
body);
1959 return httprequest_get_responseStream(&
This->req,
body);
1966 return httprequest_get_readyState(&
This->req,
state);
1973 return httprequest_put_onreadystatechange(&
This->req,
sink);
1976static HRESULT WINAPI ServerXMLHTTPRequest_setTimeouts(IServerXMLHTTPRequest *iface,
LONG resolveTimeout,
LONG connectTimeout,
1977 LONG sendTimeout,
LONG receiveTimeout)
1980 FIXME(
"(%p)->(%d %d %d %d): stub\n",
This, resolveTimeout, connectTimeout, sendTimeout, receiveTimeout);
2005static const struct IServerXMLHTTPRequestVtbl ServerXMLHTTPRequestVtbl =
2007 ServerXMLHTTPRequest_QueryInterface,
2008 ServerXMLHTTPRequest_AddRef,
2009 ServerXMLHTTPRequest_Release,
2010 ServerXMLHTTPRequest_GetTypeInfoCount,
2011 ServerXMLHTTPRequest_GetTypeInfo,
2012 ServerXMLHTTPRequest_GetIDsOfNames,
2013 ServerXMLHTTPRequest_Invoke,
2014 ServerXMLHTTPRequest_open,
2015 ServerXMLHTTPRequest_setRequestHeader,
2016 ServerXMLHTTPRequest_getResponseHeader,
2017 ServerXMLHTTPRequest_getAllResponseHeaders,
2018 ServerXMLHTTPRequest_send,
2019 ServerXMLHTTPRequest_abort,
2020 ServerXMLHTTPRequest_get_status,
2021 ServerXMLHTTPRequest_get_statusText,
2022 ServerXMLHTTPRequest_get_responseXML,
2023 ServerXMLHTTPRequest_get_responseText,
2024 ServerXMLHTTPRequest_get_responseBody,
2025 ServerXMLHTTPRequest_get_responseStream,
2026 ServerXMLHTTPRequest_get_readyState,
2027 ServerXMLHTTPRequest_put_onreadystatechange,
2028 ServerXMLHTTPRequest_setTimeouts,
2029 ServerXMLHTTPRequest_waitForResponse,
2030 ServerXMLHTTPRequest_getOption,
2031 ServerXMLHTTPRequest_setOption
2034static void init_httprequest(httprequest *req)
2036 req->IXMLHTTPRequest_iface.lpVtbl = &XMLHTTPRequestVtbl;
2045 req->uri = req->base_uri =
NULL;
2046 req->user = req->password =
NULL;
2048 req->state = READYSTATE_UNINITIALIZED;
2053 req->status_text =
NULL;
2054 req->reqheader_size = 0;
2055 req->raw_respheaders =
NULL;
2056 req->use_utf8_content =
FALSE;
2075 init_httprequest(req);
2076 *
obj = &req->IXMLHTTPRequest_iface;
2078 TRACE(
"returning iface %p\n", *
obj);
2093 init_httprequest(&req->req);
2094 req->IServerXMLHTTPRequest_iface.lpVtbl = &ServerXMLHTTPRequestVtbl;
2096 *
obj = &req->IServerXMLHTTPRequest_iface;
2098 TRACE(
"returning iface %p\n", *
obj);
2107 MESSAGE(
"This program tried to use a XMLHTTPRequest object, but\n"
2108 "libxml2 support was not present at compile time.\n");
2114 MESSAGE(
"This program tried to use a ServerXMLHTTP object, but\n"
2115 "libxml2 support was not present at compile time.\n");
static struct sockaddr_in sa
HRESULT get_typeinfo(enum type_id tid, ITypeInfo **ret)
static void * heap_alloc(size_t len)
static BOOL heap_free(void *mem)
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
void user(int argc, const char *argv[])
static void list_remove(struct list_entry *entry)
static int list_empty(struct list_entry *head)
static void list_add_head(struct list_entry *head, struct list_entry *entry)
static void list_init(struct list_entry *head)
static IFilterGraphImpl * impl_from_IObjectWithSite(IObjectWithSite *iface)
#define WideCharToMultiByte
#define MultiByteToWideChar
static JScript * impl_from_IObjectSafety(IObjectSafety *iface)
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
static HRESULT WINAPI SupportErrorInfo_InterfaceSupportsErrorInfo(ISupportErrorInfo *iface, REFIID riid)
static ULONG WINAPI SupportErrorInfo_AddRef(ISupportErrorInfo *iface)
static HTMLDocument * impl_from_ISupportErrorInfo(ISupportErrorInfo *iface)
static HRESULT WINAPI SupportErrorInfo_QueryInterface(ISupportErrorInfo *iface, REFIID riid, void **ppv)
static ULONG WINAPI SupportErrorInfo_Release(ISupportErrorInfo *iface)
static const ISupportErrorInfoVtbl SupportErrorInfoVtbl
HRESULT DOMDocument_create(MSXML_VERSION version, void **ppObj)
HRESULT WINAPI GetHGlobalFromStream(IStream *pstm, HGLOBAL *phglobal)
HRESULT WINAPI CreateStreamOnHGlobal(HGLOBAL hGlobal, BOOL fDeleteOnRelease, LPSTREAM *ppstm)
HRESULT WINAPI SafeArrayGetUBound(SAFEARRAY *psa, UINT nDim, LONG *plUbound)
HRESULT WINAPI SafeArrayAccessData(SAFEARRAY *psa, void **ppvData)
HRESULT WINAPI SafeArrayUnaccessData(SAFEARRAY *psa)
SAFEARRAY *WINAPI SafeArrayCreate(VARTYPE vt, UINT cDims, SAFEARRAYBOUND *rgsabound)
HRESULT WINAPI CreateUri(LPCWSTR pwzURI, DWORD dwFlags, DWORD_PTR dwReserved, IUri **ppURI)
HRESULT WINAPI CoInternetCombineUrlEx(IUri *pBaseUri, LPCWSTR pwzRelativeUrl, DWORD dwCombineFlags, IUri **ppCombinedUri, DWORD_PTR dwReserved)
HRESULT WINAPI CreateIUriBuilder(IUri *pIUri, DWORD dwFlags, DWORD_PTR dwReserved, IUriBuilder **ppIUriBuilder)
@ XML_CHAR_ENCODING_UTF16LE
XMLPUBFUN const char *XMLCALL xmlGetCharEncodingName(xmlCharEncoding enc)
XMLPUBFUN xmlCharEncoding XMLCALL xmlDetectCharEncoding(const unsigned char *in, int len)
static HRESULT WINAPI Authenticate_QueryInterface(IAuthenticate *iface, REFIID riid, void **ppv)
static ExtensionService * impl_from_IHttpNegotiate(IHttpNegotiate *iface)
static ULONG WINAPI Authenticate_AddRef(IAuthenticate *iface)
static const IAuthenticateVtbl AuthenticateVtbl
static ExtensionService * impl_from_IAuthenticate(IAuthenticate *iface)
static HRESULT WINAPI Authenticate_Authenticate(IAuthenticate *iface, HWND *phwnd, LPWSTR *pszUsername, LPWSTR *pszPassword)
static ULONG WINAPI Authenticate_Release(IAuthenticate *iface)
static unsigned char buff[32768]
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLenum GLenum GLsizei const GLuint GLboolean enabled
GLenum const GLfloat * params
GLenum GLuint GLenum GLsizei const GLchar * buf
GLuint GLsizei GLsizei * length
GLsizei GLenum GLboolean sink
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
LPVOID NTAPI GlobalLock(HGLOBAL hMem)
HGLOBAL NTAPI GlobalFree(HGLOBAL hMem)
BOOL NTAPI GlobalUnlock(HGLOBAL hMem)
HGLOBAL NTAPI GlobalAlloc(UINT uFlags, SIZE_T dwBytes)
SIZE_T NTAPI GlobalSize(HGLOBAL hMem)
HRESULT ServerXMLHTTP_create(void **obj)
HRESULT XMLHTTPRequest_create(void **ppObj)
static ULONG WINAPI BindStatusCallback_AddRef(IBindStatusCallback *iface)
static HRESULT WINAPI BindStatusCallback_OnObjectAvailable(IBindStatusCallback *iface, REFIID riid, IUnknown *punk)
static HRESULT WINAPI BindStatusCallback_OnDataAvailable(IBindStatusCallback *iface, DWORD grfBSCF, DWORD dwSize, FORMATETC *pformatetc, STGMEDIUM *pstgmed)
static HRESULT WINAPI BindStatusCallback_OnLowResource(IBindStatusCallback *iface, DWORD reserved)
static ULONG WINAPI BindStatusCallback_Release(IBindStatusCallback *iface)
static HRESULT WINAPI BindStatusCallback_GetBindInfo(IBindStatusCallback *iface, DWORD *grfBINDF, BINDINFO *pbindinfo)
static const IBindStatusCallbackVtbl BindStatusCallbackVtbl
static HRESULT WINAPI BindStatusCallback_GetPriority(IBindStatusCallback *iface, LONG *pnPriority)
static HRESULT WINAPI BindStatusCallback_OnStopBinding(IBindStatusCallback *iface, HRESULT hresult, LPCWSTR szError)
static HRESULT WINAPI BindStatusCallback_OnProgress(IBindStatusCallback *iface, ULONG ulProgress, ULONG ulProgressMax, ULONG ulStatusCode, LPCWSTR szStatusText)
static HRESULT WINAPI BindStatusCallback_OnStartBinding(IBindStatusCallback *iface, DWORD dwReserved, IBinding *pbind)
static HRESULT WINAPI BindStatusCallback_QueryInterface(IBindStatusCallback *iface, REFIID riid, void **ppv)
VOID WINAPI CoTaskMemFree(LPVOID ptr)
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
static HlinkImpl * impl_from_IBindStatusCallback(IBindStatusCallback *iface)
#define memcpy(s1, s2, n)
const IID IID_IObjectWithSite
static const char * debugstr_variant(const VARIANT *var)
static IActiveScriptSite * site
static VARIANTARG static DISPID
static IBindStatusCallbackEx bsc
static const IObjectWithSiteVtbl ObjectWithSiteVtbl
static const IObjectSafetyVtbl ObjectSafetyVtbl
static ClassFactory serverhttp
@ IServerXMLHTTPRequest_tid
static const WCHAR crlfW[]
struct stdole::DISPPARAMS DISPPARAMS
#define LOCALE_SYSTEM_DEFAULT
HRESULT WINAPI CreateBindCtx(DWORD reserved, LPBC *ppbc)
UINT WINAPI SysStringByteLen(BSTR str)
BSTR WINAPI SysAllocString(LPCOLESTR str)
INT WINAPI SysReAllocString(LPBSTR old, LPCOLESTR str)
UINT WINAPI SysStringLen(BSTR str)
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
BSTR WINAPI DECLSPEC_HOTPATCH SysAllocStringByteLen(LPCSTR str, UINT len)
BSTR WINAPI SysAllocStringLen(const OLECHAR *str, unsigned int len)
#define IsEqualGUID(rguid1, rguid2)
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
static const void * body(MD5_CTX *ctx, const void *data, unsigned long size)
vector< Header * > headers
IBindStatusCallback IBindStatusCallback_iface
IHttpNegotiate IHttpNegotiate_iface
IAuthenticate IAuthenticate_iface
#define CONTAINING_RECORD(address, type, field)
HRESULT WINAPI CreateURLMonikerEx2(IMoniker *pmkContext, IUri *pUri, IMoniker **ppmk, DWORD dwFlags)
static HRESULT WINAPI BSCHttpNegotiate_BeginningTransaction(IHttpNegotiate2 *iface, LPCWSTR szURL, LPCWSTR szHeaders, DWORD dwReserved, LPWSTR *pszAdditionalHeaders)
static HRESULT WINAPI BSCHttpNegotiate_QueryInterface(IHttpNegotiate2 *iface, REFIID riid, void **ppv)
static const IHttpNegotiate2Vtbl BSCHttpNegotiateVtbl
HRESULT WINAPI RegisterBindStatusCallback(IBindCtx *pbc, IBindStatusCallback *pbsc, IBindStatusCallback **ppbscPrevious, DWORD dwReserved)
static HRESULT WINAPI BSCHttpNegotiate_OnResponse(IHttpNegotiate2 *iface, DWORD dwResponseCode, LPCWSTR szResponseHeaders, LPCWSTR szRequestHeaders, LPWSTR *pszAdditionalRequestHeaders)
static ULONG WINAPI BSCHttpNegotiate_AddRef(IHttpNegotiate2 *iface)
static ULONG WINAPI BSCHttpNegotiate_Release(IHttpNegotiate2 *iface)
HRESULT WINAPI DECLSPEC_HOTPATCH VariantChangeType(VARIANTARG *pvargDest, VARIANTARG *pvargSrc, USHORT wFlags, VARTYPE vt)
HRESULT WINAPI DECLSPEC_HOTPATCH VariantClear(VARIANTARG *pVarg)
void WINAPI VariantInit(VARIANTARG *pVarg)
_In_ DWORD _Out_ _In_ WORD wFlags
_In_ void _In_ PCCERT_CONTEXT _In_opt_ LPFILETIME _In_ DWORD _In_ DWORD _Outptr_opt_ void ** ppvObject
@ INTERNET_SCHEME_UNKNOWN