[PATCH 1/2] [WinHelp]: added support for hotspot in images with target window embedded
Eric Pouech
eric.pouech at orange.fr
Wed Jun 2 15:22:42 CDT 2010
(partial fix for #22979)
A+
---
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]);
}
More information about the wine-patches
mailing list