Module: wine Branch: master Commit: 3acf62f5e70ea58fab6b6ae91f5b8f5c36b428cd URL: http://source.winehq.org/git/wine.git/?a=commit;h=3acf62f5e70ea58fab6b6ae91f...
Author: Eric Pouech eric.pouech@orange.fr Date: Wed Jun 2 22:22:42 2010 +0200
winhelp: Added support for hotspot in images with target window embedded.
---
programs/winhlp32/hlpfile.c | 28 ++++++++++++++++++++++++++++ 1 files changed, 28 insertions(+), 0 deletions(-)
diff --git a/programs/winhlp32/hlpfile.c b/programs/winhlp32/hlpfile.c index 8c0d325..5146c38 100644 --- a/programs/winhlp32/hlpfile.c +++ b/programs/winhlp32/hlpfile.c @@ -815,6 +815,34 @@ static void HLPFILE_AddHotSpotLinks(struct RtfData* rd, HLPFILE* file, file->lpszPath, -1, HLPFILE_Hash(str), 0, 1, -1); break; + + case 0xEE: + case 0xEF: + { + const char* win = strchr(str, '>'); + int wnd = -1; + char* tgt = NULL; + + if (win) + { + for (wnd = file->numWindows - 1; wnd >= 0; wnd--) + { + if (!strcmp(win + 1, file->windows[wnd].name)) break; + } + if (wnd == -1) + WINE_WARN("Couldn't find window info for %s\n", win); + if ((tgt = HeapAlloc(GetProcessHeap(), 0, win - str + 1))) + { + memcpy(tgt, str, win - str); + tgt[win - str] = '\0'; + } + } + hslink = (HLPFILE_HOTSPOTLINK*) + HLPFILE_AllocLink(rd, (start[7 + 15 * i + 0] & 1) ? hlp_link_link : hlp_link_popup, + file->lpszPath, -1, HLPFILE_Hash(tgt ? tgt : str), 0, 1, wnd); + HeapFree(GetProcessHeap(), 0, tgt); + break; + } default: WINE_FIXME("unknown hotsport target 0x%x\n", start[7 + 15 * i + 0]); }