Thomas Mullaly : urlmon: Implemented functionality for retrieving the scheme type of a IUri.
Alexandre Julliard
julliard at winehq.org
Wed Jul 21 10:54:52 CDT 2010
Module: wine
Branch: master
Commit: a34700f0346ddad5f9347d604180769215311c33
URL: http://source.winehq.org/git/wine.git/?a=commit;h=a34700f0346ddad5f9347d604180769215311c33
Author: Thomas Mullaly <thomas.mullaly at gmail.com>
Date: Mon Jun 7 21:41:19 2010 -0400
urlmon: Implemented functionality for retrieving the scheme type of a IUri.
---
dlls/urlmon/tests/uri.c | 24 ++++++++++++------------
dlls/urlmon/uri.c | 22 +++++++++++++++-------
2 files changed, 27 insertions(+), 19 deletions(-)
diff --git a/dlls/urlmon/tests/uri.c b/dlls/urlmon/tests/uri.c
index 80a2593..d1e5163 100644
--- a/dlls/urlmon/tests/uri.c
+++ b/dlls/urlmon/tests/uri.c
@@ -112,7 +112,7 @@ static const uri_properties uri_tests[] = {
{
{Uri_HOST_DNS,S_OK,TRUE}, /* HOST_TYPE */
{80,S_OK,TRUE}, /* PORT */
- {URL_SCHEME_HTTP,S_OK,TRUE}, /* SCHEME */
+ {URL_SCHEME_HTTP,S_OK,FALSE}, /* SCHEME */
{URLZONE_INVALID,E_NOTIMPL,FALSE} /* ZONE */
}
},
@@ -141,7 +141,7 @@ static const uri_properties uri_tests[] = {
{
{Uri_HOST_DNS,S_OK,TRUE},
{80,S_OK,TRUE},
- {URL_SCHEME_HTTP,S_OK,TRUE},
+ {URL_SCHEME_HTTP,S_OK,FALSE},
{URLZONE_INVALID,E_NOTIMPL,FALSE}
}
},
@@ -170,7 +170,7 @@ static const uri_properties uri_tests[] = {
{
{Uri_HOST_DNS,S_OK,TRUE},
{80,S_OK,TRUE},
- {URL_SCHEME_HTTP,S_OK,TRUE},
+ {URL_SCHEME_HTTP,S_OK,FALSE},
{URLZONE_INVALID,E_NOTIMPL,FALSE},
}
},
@@ -199,7 +199,7 @@ static const uri_properties uri_tests[] = {
{
{Uri_HOST_DNS,S_OK,TRUE},
{80,S_OK,TRUE},
- {URL_SCHEME_HTTP,S_OK,TRUE},
+ {URL_SCHEME_HTTP,S_OK,FALSE},
{URLZONE_INVALID,E_NOTIMPL,FALSE},
}
},
@@ -229,7 +229,7 @@ static const uri_properties uri_tests[] = {
{
{Uri_HOST_DNS,S_OK,TRUE},
{9999,S_OK,TRUE},
- {URL_SCHEME_FTP,S_OK,TRUE},
+ {URL_SCHEME_FTP,S_OK,FALSE},
{URLZONE_INVALID,E_NOTIMPL,FALSE}
}
},
@@ -257,7 +257,7 @@ static const uri_properties uri_tests[] = {
{
{Uri_HOST_UNKNOWN,S_OK,TRUE},
{0,S_FALSE,TRUE},
- {URL_SCHEME_FILE,S_OK,TRUE},
+ {URL_SCHEME_FILE,S_OK,FALSE},
{URLZONE_INVALID,E_NOTIMPL,FALSE}
}
},
@@ -285,7 +285,7 @@ static const uri_properties uri_tests[] = {
{
{Uri_HOST_UNKNOWN,S_OK,TRUE},
{0,S_FALSE,TRUE},
- {URL_SCHEME_FILE,S_OK,TRUE},
+ {URL_SCHEME_FILE,S_OK,FALSE},
{URLZONE_INVALID,E_NOTIMPL,FALSE}
}
},
@@ -313,7 +313,7 @@ static const uri_properties uri_tests[] = {
{
{Uri_HOST_UNKNOWN,S_OK,TRUE},
{0,S_FALSE,TRUE},
- {URL_SCHEME_UNKNOWN,S_OK,TRUE},
+ {URL_SCHEME_UNKNOWN,S_OK,FALSE},
{URLZONE_INVALID,E_NOTIMPL,FALSE}
}
},
@@ -342,7 +342,7 @@ static const uri_properties uri_tests[] = {
{
{Uri_HOST_IPV4,S_OK,TRUE},
{80,S_OK,TRUE},
- {URL_SCHEME_HTTP,S_OK,TRUE},
+ {URL_SCHEME_HTTP,S_OK,FALSE},
{URLZONE_INVALID,E_NOTIMPL,FALSE}
}
},
@@ -371,7 +371,7 @@ static const uri_properties uri_tests[] = {
{
{Uri_HOST_IPV6,S_OK,TRUE},
{80,S_OK,TRUE},
- {URL_SCHEME_HTTP,S_OK,TRUE},
+ {URL_SCHEME_HTTP,S_OK,FALSE},
{URLZONE_INVALID,E_NOTIMPL,FALSE}
}
},
@@ -400,7 +400,7 @@ static const uri_properties uri_tests[] = {
{
{Uri_HOST_IPV6,S_OK,TRUE},
{21,S_OK,TRUE},
- {URL_SCHEME_FTP,S_OK,TRUE},
+ {URL_SCHEME_FTP,S_OK,FALSE},
{URLZONE_INVALID,E_NOTIMPL,FALSE}
}
},
@@ -429,7 +429,7 @@ static const uri_properties uri_tests[] = {
{
{Uri_HOST_IPV6,S_OK,TRUE},
{80,S_OK,TRUE},
- {URL_SCHEME_HTTP,S_OK,TRUE},
+ {URL_SCHEME_HTTP,S_OK,FALSE},
{URLZONE_INVALID,E_NOTIMPL,FALSE}
}
}
diff --git a/dlls/urlmon/uri.c b/dlls/urlmon/uri.c
index f99061f..36ba81c 100644
--- a/dlls/urlmon/uri.c
+++ b/dlls/urlmon/uri.c
@@ -500,6 +500,8 @@ static HRESULT WINAPI Uri_GetPropertyLength(IUri *iface, Uri_PROPERTY uriProp, D
static HRESULT WINAPI Uri_GetPropertyDWORD(IUri *iface, Uri_PROPERTY uriProp, DWORD *pcchProperty, DWORD dwFlags)
{
Uri *This = URI_THIS(iface);
+ HRESULT hres;
+
TRACE("(%p)->(%d %p %x)\n", This, uriProp, pcchProperty, dwFlags);
if(!pcchProperty)
@@ -520,7 +522,17 @@ static HRESULT WINAPI Uri_GetPropertyDWORD(IUri *iface, Uri_PROPERTY uriProp, DW
return E_INVALIDARG;
}
- return E_NOTIMPL;
+ switch(uriProp) {
+ case Uri_PROPERTY_SCHEME:
+ *pcchProperty = This->scheme_type;
+ hres = S_OK;
+ break;
+ default:
+ FIXME("(%p)->(%d %p %x)\n", This, uriProp, pcchProperty, dwFlags);
+ hres = E_NOTIMPL;
+ }
+
+ return hres;
}
static HRESULT WINAPI Uri_HasProperty(IUri *iface, Uri_PROPERTY uriProp, BOOL *pfHasProperty)
@@ -718,12 +730,8 @@ static HRESULT WINAPI Uri_GetPort(IUri *iface, DWORD *pdwPort)
static HRESULT WINAPI Uri_GetScheme(IUri *iface, DWORD *pdwScheme)
{
Uri *This = URI_THIS(iface);
- FIXME("(%p)->(%p)\n", This, pdwScheme);
-
- if(!pdwScheme)
- return E_INVALIDARG;
-
- return E_NOTIMPL;
+ TRACE("(%p)->(%p)\n", This, pdwScheme);
+ return Uri_GetPropertyDWORD(iface, Uri_PROPERTY_SCHEME, pdwScheme, 0);
}
static HRESULT WINAPI Uri_GetZone(IUri *iface, DWORD *pdwZone)
More information about the wine-cvs
mailing list