http://bugs.winehq.org/show_bug.cgi?id=11690
--- Comment #13 from Hin-Tak Leung htl10@users.sourceforge.net 2008-04-06 21:36:36 --- Can you try deleting these three lines
hres = navigate_url(info, surl); if(SUCCEEDED(hres)) return TRUE;
around line 92-94, within NavigateToUrl() in file "dlls/htctrl.ocx/help.c" to see if F1 works?
NavigateToUrl() is only used by the CONTEXT branch using results from FindContextAlias(). I don't know if FindContextAlias() ever returns a fully formed url, but in this case it obviously doesn't, so the code should drop through to the part after these three lines trying to find the url within the chm file.
I think those three lines should either be deleted, or at least spanned by a check, something like this:
static const WCHAR url_indicator[] = {':', ':', '/'}; if (strstrW(surl, url_indicator)) { ... }
because navigate_url always succeeds even if url doesn't exist. (the return value of nagivate_url() is whether *interaction* with the web browser component succeeds, not about whether the url actually exists, I think?)