Jacek Caban : urlmon: Correctly handle INET_E_USE_DEFAULT_SETTING returned from GetBindString( BINDIND_ACCEPT_MIMES).
Alexandre Julliard
julliard at winehq.org
Wed Sep 8 13:32:13 CDT 2010
Module: wine
Branch: master
Commit: ed2b72248fef1880e176e88ca46e03cc5769c8ca
URL: http://source.winehq.org/git/wine.git/?a=commit;h=ed2b72248fef1880e176e88ca46e03cc5769c8ca
Author: Jacek Caban <jacek at codeweavers.com>
Date: Wed Sep 8 14:56:08 2010 +0200
urlmon: Correctly handle INET_E_USE_DEFAULT_SETTING returned from GetBindString(BINDIND_ACCEPT_MIMES).
---
dlls/urlmon/http.c | 13 +++++++++++--
include/urlmon.idl | 1 +
2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/dlls/urlmon/http.c b/dlls/urlmon/http.c
index fc0b8c4..04ca232 100644
--- a/dlls/urlmon/http.c
+++ b/dlls/urlmon/http.c
@@ -76,6 +76,7 @@ static HRESULT HttpProtocol_open_request(Protocol *prot, LPCWSTR url, DWORD requ
IHttpNegotiate2 *http_negotiate2 = NULL;
LPWSTR host, user, pass, path;
LPOLESTR accept_mimes[257];
+ const WCHAR **accept_types;
URL_COMPONENTSW url_comp;
BYTE security_id[512];
DWORD len = 0;
@@ -113,7 +114,15 @@ static HRESULT HttpProtocol_open_request(Protocol *prot, LPCWSTR url, DWORD requ
num = sizeof(accept_mimes)/sizeof(accept_mimes[0])-1;
hres = IInternetBindInfo_GetBindString(bind_info, BINDSTRING_ACCEPT_MIMES, accept_mimes, num, &num);
- if(hres != S_OK) {
+ if(hres == INET_E_USE_DEFAULT_SETTING) {
+ static const WCHAR default_accept_mimeW[] = {'*','/','*',0};
+ static const WCHAR *default_accept_mimes[] = {default_accept_mimeW, NULL};
+
+ accept_types = default_accept_mimes;
+ num = 0;
+ }else if(hres == S_OK) {
+ accept_types = (const WCHAR**)accept_mimes;
+ }else {
WARN("GetBindString BINDSTRING_ACCEPT_MIMES failed: %08x\n", hres);
return INET_E_NO_VALID_MEDIA;
}
@@ -130,7 +139,7 @@ static HRESULT HttpProtocol_open_request(Protocol *prot, LPCWSTR url, DWORD requ
This->base.request = HttpOpenRequestW(This->base.connection,
This->base.bind_info.dwBindVerb < BINDVERB_CUSTOM
? wszBindVerb[This->base.bind_info.dwBindVerb] : This->base.bind_info.szCustomVerb,
- path, NULL, NULL, (LPCWSTR *)accept_mimes, request_flags, (DWORD_PTR)&This->base);
+ path, NULL, NULL, accept_types, request_flags, (DWORD_PTR)&This->base);
heap_free(path);
while(num--)
CoTaskMemFree(accept_mimes[num]);
diff --git a/include/urlmon.idl b/include/urlmon.idl
index c1d3bec..ac856e8 100644
--- a/include/urlmon.idl
+++ b/include/urlmon.idl
@@ -1897,6 +1897,7 @@ cpp_quote("#define INET_E_SECURITY_PROBLEM _HRESULT_TYPEDEF_(0x800C000E
cpp_quote("#define INET_E_CANNOT_LOAD_DATA _HRESULT_TYPEDEF_(0x800C000F)")
cpp_quote("#define INET_E_CANNOT_INSTANTIATE_OBJECT _HRESULT_TYPEDEF_(0x800C0010)")
cpp_quote("#define INET_E_USE_DEFAULT_PROTOCOLHANDLER _HRESULT_TYPEDEF_(0x800C0011)")
+cpp_quote("#define INET_E_USE_DEFAULT_SETTING _HRESULT_TYPEDEF_(0x800C0012L)")
cpp_quote("#define INET_E_QUERYOPTION_UNKNOWN _HRESULT_TYPEDEF_(0x800C0013)")
cpp_quote("#define INET_E_REDIRECT_FAILED _HRESULT_TYPEDEF_(0x800C0014)")
cpp_quote("#define INET_E_REDIRECT_TO_DIR _HRESULT_TYPEDEF_(0x800C0015)")
More information about the wine-cvs
mailing list