Commit db94b0c6 authored by Erich Hoover's avatar Erich Hoover Committed by Alexandre Julliard

hhctrl.ocx: Support jumping to a help topic with 'mapid'.

parent 3a824542
...@@ -272,12 +272,42 @@ HWND WINAPI HtmlHelpA(HWND caller, LPCSTR filename, UINT command, DWORD_PTR data ...@@ -272,12 +272,42 @@ HWND WINAPI HtmlHelpA(HWND caller, LPCSTR filename, UINT command, DWORD_PTR data
int WINAPI doWinMain(HINSTANCE hInstance, LPSTR szCmdLine) int WINAPI doWinMain(HINSTANCE hInstance, LPSTR szCmdLine)
{ {
MSG msg; MSG msg;
int len, buflen; int len, buflen, mapid = -1;
WCHAR *filename; WCHAR *filename;
char *endq = NULL; char *endq = NULL;
hh_process = TRUE; 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 */ /* FIXME: Check szCmdLine for bad arguments */
if (*szCmdLine == '\"') if (*szCmdLine == '\"')
endq = strchr(++szCmdLine, '\"'); endq = strchr(++szCmdLine, '\"');
...@@ -291,7 +321,11 @@ int WINAPI doWinMain(HINSTANCE hInstance, LPSTR szCmdLine) ...@@ -291,7 +321,11 @@ int WINAPI doWinMain(HINSTANCE hInstance, LPSTR szCmdLine)
MultiByteToWideChar(CP_ACP, 0, szCmdLine, len, filename, buflen); MultiByteToWideChar(CP_ACP, 0, szCmdLine, len, filename, buflen);
filename[buflen-1] = 0; 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); heap_free(filename);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment