Jacek Caban : urlmon: Properly support dwFlags argument in CreateURLMonikerEx.
Alexandre Julliard
julliard at winehq.org
Fri Jun 24 13:54:00 CDT 2011
Module: wine
Branch: master
Commit: 7cb30ca57d6157c1cca8356bcd7a19d55ff45630
URL: http://source.winehq.org/git/wine.git/?a=commit;h=7cb30ca57d6157c1cca8356bcd7a19d55ff45630
Author: Jacek Caban <jacek at codeweavers.com>
Date: Thu Jun 23 13:43:22 2011 +0200
urlmon: Properly support dwFlags argument in CreateURLMonikerEx.
---
dlls/urlmon/umon.c | 20 +++++++++++++++++---
1 files changed, 17 insertions(+), 3 deletions(-)
diff --git a/dlls/urlmon/umon.c b/dlls/urlmon/umon.c
index fbb2287..86c0382 100644
--- a/dlls/urlmon/umon.c
+++ b/dlls/urlmon/umon.c
@@ -555,6 +555,18 @@ HRESULT StdURLMoniker_Construct(IUnknown *outer, void **ppv)
return S_OK;
}
+static const DWORD create_flags_map[3] = {
+ Uri_CREATE_FILE_USE_DOS_PATH, /* URL_MK_LEGACY */
+ 0, /* URL_MK_UNIFORM */
+ Uri_CREATE_NO_CANONICALIZE /* URL_MK_NO_CANONICALIZE */
+};
+
+static const DWORD combine_flags_map[3] = {
+ URL_FILE_USE_PATHURL, /* URL_MK_LEGACY */
+ 0, /* URL_MK_UNIFORM */
+ URL_DONT_SIMPLIFY /* URL_MK_NO_CANONICALIZE */
+};
+
/***********************************************************************
* CreateURLMonikerEx (URLMON.@)
*
@@ -585,8 +597,10 @@ HRESULT WINAPI CreateURLMonikerEx(IMoniker *pmkContext, LPCWSTR szURL, IMoniker
if (!szURL || !ppmk)
return E_INVALIDARG;
- if(dwFlags != URL_MK_LEGACY)
+ if(dwFlags > sizeof(create_flags_map)/sizeof(*create_flags_map)) {
FIXME("Unsupported flags %x\n", dwFlags);
+ return E_INVALIDARG;
+ }
if(pmkContext) {
IUriContainer *uri_container;
@@ -601,10 +615,10 @@ HRESULT WINAPI CreateURLMonikerEx(IMoniker *pmkContext, LPCWSTR szURL, IMoniker
}
if(base_uri) {
- hres = CoInternetCombineUrlEx(base_uri, szURL, URL_FILE_USE_PATHURL, &uri, 0);
+ hres = CoInternetCombineUrlEx(base_uri, szURL, combine_flags_map[dwFlags], &uri, 0);
IUri_Release(base_uri);
}else {
- hres = CreateUri(szURL, Uri_CREATE_FILE_USE_DOS_PATH|Uri_CREATE_ALLOW_RELATIVE|Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME, 0, &uri);
+ hres = CreateUri(szURL, Uri_CREATE_ALLOW_RELATIVE|Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME|create_flags_map[dwFlags], 0, &uri);
}
if(FAILED(hres))
return hres;
More information about the wine-cvs
mailing list