mshtml: Added nsIURL::GetQuery implementation.

This commit is contained in:
Jacek Caban 2010-09-17 18:33:45 +02:00 committed by Alexandre Julliard
parent e081b65aee
commit ffe9cc87c0
1 changed files with 29 additions and 2 deletions

View File

@ -2105,14 +2105,41 @@ static nsresult NSAPI nsURL_SetParam(nsIURL *iface, const nsACString *aParam)
static nsresult NSAPI nsURL_GetQuery(nsIURL *iface, nsACString *aQuery)
{
nsWineURI *This = NSURI_THIS(iface);
URL_COMPONENTSW url = {sizeof(URL_COMPONENTSW)};
WCHAR *ptr_end, *ptr;
char *query;
int len;
TRACE("(%p)->(%p)\n", This, aQuery);
if(This->nsurl)
return nsIURL_GetQuery(This->nsurl, aQuery);
FIXME("default action not implemented\n");
return NS_ERROR_NOT_IMPLEMENTED;
url.dwExtraInfoLength = 1;
if(!InternetCrackUrlW(This->wine_url, 0, 0, &url)) {
WARN("InternetCrackUrlW failed: 0x%08x\n", GetLastError());
nsACString_SetData(aQuery, "");
return NS_OK;
}
ptr_end = url.lpszExtraInfo+url.dwExtraInfoLength;
for(ptr = url.lpszExtraInfo; ptr < ptr_end; ptr++) {
if(*ptr == '#')
break;
}
ptr = url.lpszExtraInfo;
len = WideCharToMultiByte(CP_ACP, 0, ptr, ptr_end-ptr, NULL, 0, NULL, NULL);
query = heap_alloc(len+1);
if(!query)
return NS_ERROR_OUT_OF_MEMORY;
WideCharToMultiByte(CP_ACP, 0, ptr, ptr_end-ptr, query, len, NULL, NULL);
query[len] = 0;
nsACString_SetData(aQuery, query);
TRACE("ret %s\n", debugstr_a(query));
heap_free(query);
return NS_OK;
}
static nsresult NSAPI nsURL_SetQuery(nsIURL *iface, const nsACString *aQuery)