mshtml: Added nsIURL::GetQuery implementation.
This commit is contained in:
parent
e081b65aee
commit
ffe9cc87c0
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue