mirror of
git://source.winehq.org/git/wine.git
synced 2024-09-30 04:38:32 +00:00
ieframe: Use the original URL for error pages' address bar.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
This commit is contained in:
parent
8a67308f74
commit
76b198000f
|
@ -281,6 +281,7 @@ HRESULT get_window(DocHost*,IHTMLWindow2**);
|
|||
HRESULT get_location_url(DocHost*,BSTR*);
|
||||
HRESULT set_dochost_url(DocHost*,const WCHAR*);
|
||||
void handle_navigation_error(DocHost*,HRESULT,BSTR,IHTMLWindow2*);
|
||||
const WCHAR *error_url_frag(const WCHAR*);
|
||||
HRESULT dochost_object_available(DocHost*,IUnknown*);
|
||||
void set_doc_state(DocHost*,READYSTATE);
|
||||
void activate_document(DocHost*);
|
||||
|
|
|
@ -783,6 +783,10 @@ static void DocHostContainer_on_command_state_change(DocHost *iface, LONG comman
|
|||
static void DocHostContainer_set_url(DocHost* iface, const WCHAR *url)
|
||||
{
|
||||
InternetExplorer *This = impl_from_DocHost(iface);
|
||||
const WCHAR *orig_url = error_url_frag(url);
|
||||
|
||||
if(orig_url)
|
||||
url = orig_url;
|
||||
|
||||
This->nohome = FALSE;
|
||||
SendMessageW(This->frame_hwnd, WM_UPDATEADDRBAR, 0, (LPARAM)url);
|
||||
|
|
|
@ -29,6 +29,24 @@
|
|||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(ieframe);
|
||||
|
||||
const WCHAR *error_url_frag(const WCHAR *url)
|
||||
{
|
||||
if(!wcsncmp(url, L"res://", ARRAY_SIZE(L"res://")-1)) {
|
||||
WCHAR buf[MAX_PATH];
|
||||
UINT len = GetSystemDirectoryW(buf, ARRAY_SIZE(buf));
|
||||
|
||||
if(len && !wcsncmp(url + ARRAY_SIZE(L"res://")-1, buf, len)) {
|
||||
len += ARRAY_SIZE(L"res://")-1;
|
||||
if(!wcsncmp(url + len, L"\\shdoclc.dll/ERROR.HTM", ARRAY_SIZE(L"\\shdoclc.dll/ERROR.HTM")-1)) {
|
||||
len += ARRAY_SIZE(L"\\shdoclc.dll/ERROR.HTM")-1;
|
||||
url = wcschr(url + len, '#');
|
||||
return url ? url + 1 : NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static inline ShellBrowser *impl_from_IShellBrowser(IShellBrowser *iface)
|
||||
{
|
||||
return CONTAINING_RECORD(iface, ShellBrowser, IShellBrowser_iface);
|
||||
|
|
Loading…
Reference in a new issue