hhctrl.ocx: Support jumping to a help topic with 'mapid'.
This commit is contained in:
parent
3a824542a5
commit
db94b0c636
|
@ -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,6 +321,10 @@ 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;
|
||||||
|
|
||||||
|
/* Open a specific help topic */
|
||||||
|
if(mapid != -1)
|
||||||
|
HtmlHelpW(GetDesktopWindow(), filename, HH_HELP_CONTEXT, mapid);
|
||||||
|
else
|
||||||
HtmlHelpW(GetDesktopWindow(), filename, HH_DISPLAY_TOPIC, 0);
|
HtmlHelpW(GetDesktopWindow(), filename, HH_DISPLAY_TOPIC, 0);
|
||||||
|
|
||||||
heap_free(filename);
|
heap_free(filename);
|
||||||
|
|
Loading…
Reference in New Issue