Erich Hoover : hhctrl.ocx: Support jumping to a help topic with 'mapid'.
Alexandre Julliard
julliard at winehq.org
Fri Jan 29 10:56:37 CST 2010
Module: wine
Branch: master
Commit: db94b0c63631f3279c3e508010661c31efd13ac5
URL: http://source.winehq.org/git/wine.git/?a=commit;h=db94b0c63631f3279c3e508010661c31efd13ac5
Author: Erich Hoover <ehoover at mines.edu>
Date: Thu Jan 28 16:16:54 2010 -0700
hhctrl.ocx: Support jumping to a help topic with 'mapid'.
---
dlls/hhctrl.ocx/hhctrl.c | 38 ++++++++++++++++++++++++++++++++++++--
1 files changed, 36 insertions(+), 2 deletions(-)
diff --git a/dlls/hhctrl.ocx/hhctrl.c b/dlls/hhctrl.ocx/hhctrl.c
index 8268a21..c8ae0a1 100644
--- a/dlls/hhctrl.ocx/hhctrl.c
+++ b/dlls/hhctrl.ocx/hhctrl.c
@@ -272,12 +272,42 @@ HWND WINAPI HtmlHelpA(HWND caller, LPCSTR filename, UINT command, DWORD_PTR data
int WINAPI doWinMain(HINSTANCE hInstance, LPSTR szCmdLine)
{
MSG msg;
- int len, buflen;
+ int len, buflen, mapid = -1;
WCHAR *filename;
char *endq = NULL;
hh_process = TRUE;
+ /* Parse command line option of the HTML Help command.
+ *
+ * Note: The only currently handled action is "mapid",
+ * which corresponds to opening a specific page.
+ */
+ while(*szCmdLine == '-')
+ {
+ LPSTR space, ptr;
+
+ ptr = szCmdLine + 1;
+ space = strchr(ptr, ' ');
+ if(!strncmp(ptr, "mapid", space-ptr))
+ {
+ char idtxt[10];
+
+ ptr += strlen("mapid")+1;
+ space = strchr(ptr, ' ');
+ memcpy(idtxt, ptr, space-ptr);
+ idtxt[space-ptr] = '\0';
+ filename += (space-ptr)+1;
+ mapid = atoi(idtxt);
+ szCmdLine = space+1;
+ }
+ else
+ {
+ FIXME("Unhandled HTML Help command line parameter! (%.*s)\n", space-szCmdLine, szCmdLine);
+ return 0;
+ }
+ }
+
/* FIXME: Check szCmdLine for bad arguments */
if (*szCmdLine == '\"')
endq = strchr(++szCmdLine, '\"');
@@ -291,7 +321,11 @@ int WINAPI doWinMain(HINSTANCE hInstance, LPSTR szCmdLine)
MultiByteToWideChar(CP_ACP, 0, szCmdLine, len, filename, buflen);
filename[buflen-1] = 0;
- HtmlHelpW(GetDesktopWindow(), filename, HH_DISPLAY_TOPIC, 0);
+ /* Open a specific help topic */
+ if(mapid != -1)
+ HtmlHelpW(GetDesktopWindow(), filename, HH_HELP_CONTEXT, mapid);
+ else
+ HtmlHelpW(GetDesktopWindow(), filename, HH_DISPLAY_TOPIC, 0);
heap_free(filename);
More information about the wine-cvs
mailing list