urlmon: Implemented IUriBuilder_{Get/Set}Path.
This commit is contained in:
parent
0a4e854182
commit
4a352bd78d
|
@ -4347,7 +4347,7 @@ static const uri_builder_test uri_builder_tests[] = {
|
|||
{
|
||||
{TRUE,"http",NULL,Uri_PROPERTY_SCHEME_NAME,S_OK,TRUE},
|
||||
{TRUE,"::192.2.3.4",NULL,Uri_PROPERTY_HOST,S_OK,FALSE},
|
||||
{TRUE,NULL,NULL,Uri_PROPERTY_PATH,S_OK,TRUE}
|
||||
{TRUE,NULL,NULL,Uri_PROPERTY_PATH,S_OK,FALSE}
|
||||
},
|
||||
{FALSE},
|
||||
0,S_OK,TRUE,
|
||||
|
@ -4504,6 +4504,70 @@ static const uri_builder_test uri_builder_tests[] = {
|
|||
{URL_SCHEME_UNKNOWN,S_OK},
|
||||
{URLZONE_INVALID,E_NOTIMPL}
|
||||
}
|
||||
},
|
||||
{ "http://google.com/",0,S_OK,FALSE,
|
||||
{
|
||||
{TRUE,"test/test",NULL,Uri_PROPERTY_PATH,S_OK,FALSE},
|
||||
},
|
||||
{FALSE},
|
||||
0,S_OK,TRUE,
|
||||
0,S_OK,TRUE,
|
||||
0,0,0,S_OK,TRUE,
|
||||
{
|
||||
{"http://google.com/test/test",S_OK},
|
||||
{"google.com",S_OK},
|
||||
{"http://google.com/test/test",S_OK},
|
||||
{"google.com",S_OK},
|
||||
{"",S_FALSE},
|
||||
{"",S_FALSE},
|
||||
{"google.com",S_OK},
|
||||
{"",S_FALSE},
|
||||
{"/test/test",S_OK},
|
||||
{"/test/test",S_OK},
|
||||
{"",S_FALSE},
|
||||
{"http://google.com/test/test",S_OK},
|
||||
{"http",S_OK},
|
||||
{"",S_FALSE},
|
||||
{"",S_FALSE}
|
||||
},
|
||||
{
|
||||
{Uri_HOST_DNS,S_OK},
|
||||
{80,S_OK},
|
||||
{URL_SCHEME_HTTP,S_OK},
|
||||
{URLZONE_INVALID,E_NOTIMPL}
|
||||
}
|
||||
},
|
||||
{ "zip:testing/test",0,S_OK,FALSE,
|
||||
{
|
||||
{TRUE,"test",NULL,Uri_PROPERTY_PATH,S_OK,FALSE},
|
||||
},
|
||||
{FALSE},
|
||||
0,S_OK,TRUE,
|
||||
0,S_OK,TRUE,
|
||||
0,0,0,S_OK,TRUE,
|
||||
{
|
||||
{"zip:test",S_OK},
|
||||
{"",S_FALSE},
|
||||
{"zip:test",S_OK},
|
||||
{"",S_FALSE},
|
||||
{"",S_FALSE},
|
||||
{"",S_FALSE},
|
||||
{"",S_FALSE},
|
||||
{"",S_FALSE},
|
||||
{"test",S_OK},
|
||||
{"test",S_OK},
|
||||
{"",S_FALSE},
|
||||
{"zip:test",S_OK},
|
||||
{"zip",S_OK},
|
||||
{"",S_FALSE},
|
||||
{"",S_FALSE}
|
||||
},
|
||||
{
|
||||
{Uri_HOST_UNKNOWN,S_OK},
|
||||
{0,S_FALSE},
|
||||
{URL_SCHEME_UNKNOWN,S_OK},
|
||||
{URLZONE_INVALID,E_NOTIMPL}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -88,6 +88,9 @@ typedef struct {
|
|||
|
||||
WCHAR *password;
|
||||
DWORD password_len;
|
||||
|
||||
WCHAR *path;
|
||||
DWORD path_len;
|
||||
} UriBuilder;
|
||||
|
||||
typedef struct {
|
||||
|
@ -4318,6 +4321,7 @@ static ULONG WINAPI UriBuilder_Release(IUriBuilder *iface)
|
|||
heap_free(This->fragment);
|
||||
heap_free(This->host);
|
||||
heap_free(This->password);
|
||||
heap_free(This->path);
|
||||
heap_free(This);
|
||||
}
|
||||
|
||||
|
@ -4480,19 +4484,11 @@ static HRESULT WINAPI UriBuilder_GetPath(IUriBuilder *iface, DWORD *pcchPath, LP
|
|||
UriBuilder *This = URIBUILDER_THIS(iface);
|
||||
TRACE("(%p)->(%p %p)\n", This, pcchPath, ppwzPath);
|
||||
|
||||
if(!pcchPath) {
|
||||
if(ppwzPath)
|
||||
*ppwzPath = NULL;
|
||||
return E_POINTER;
|
||||
}
|
||||
|
||||
if(!ppwzPath) {
|
||||
*pcchPath = 0;
|
||||
return E_POINTER;
|
||||
}
|
||||
|
||||
FIXME("(%p)->(%p %p)\n", This, pcchPath, ppwzPath);
|
||||
return E_NOTIMPL;
|
||||
if(!This->uri || This->uri->path_start == -1 || This->modified_props & Uri_HAS_PATH)
|
||||
return get_builder_component(&This->path, &This->path_len, NULL, 0, ppwzPath, pcchPath);
|
||||
else
|
||||
return get_builder_component(&This->path, &This->path_len, This->uri->canon_uri+This->uri->path_start,
|
||||
This->uri->path_len, ppwzPath, pcchPath);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI UriBuilder_GetPort(IUriBuilder *iface, BOOL *pfHasPort, DWORD *pdwPort)
|
||||
|
@ -4605,8 +4601,10 @@ static HRESULT WINAPI UriBuilder_SetPassword(IUriBuilder *iface, LPCWSTR pwzNewV
|
|||
static HRESULT WINAPI UriBuilder_SetPath(IUriBuilder *iface, LPCWSTR pwzNewValue)
|
||||
{
|
||||
UriBuilder *This = URIBUILDER_THIS(iface);
|
||||
FIXME("(%p)->(%s)\n", This, debugstr_w(pwzNewValue));
|
||||
return E_NOTIMPL;
|
||||
TRACE("(%p)->(%s)\n", This, debugstr_w(pwzNewValue));
|
||||
|
||||
This->modified_props |= Uri_HAS_PATH;
|
||||
return set_builder_component(&This->path, &This->path_len, pwzNewValue, 0);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI UriBuilder_SetPort(IUriBuilder *iface, BOOL fHasPort, DWORD dwNewValue)
|
||||
|
|
Loading…
Reference in New Issue