I am working on context sensitive help with Win32.hlp. And passing parameters as,

winhlp32 -k search_word e:\helps\win32.hlp

it is working and invoking help file but search_word is not in help index then winhlp32.exe is staying resident in memory after closing help file. Anyone know the solution.

You may test this via this batch,

----------------- snip ----------------------
winhlp32 -k LRESULT x:\help_directory\win32.hlp
----------------- snip ----------------------

LRESULT is a word to search as an example only. But RadAsm or other editors has not such a problem(hallelujah :))

In fact in my quick tests,

;keyw db "-k LRESULT E:\WinApiHLP\WIN32.HLP",0 ; ShellExecute
;helps db "winhlp32.exe",0 ; ShellExecute
;dir db "c:\tests\aaa",0 ; ShellExecute
;opening db "open",0 ; ShellExecute
keyw db "LRESULT",0 ; WinHelp
helps db "E:\WinApiHLP\win32.hlp",0 ; WinHelp

CALL WinHelp,hwnd_,offset helps,HELP_KEY, offset keyw

is working well but,

CALL ShellExecute, hwnd_, offset opening, offset helps, offset keyw, offset dir, SW_SHOW

is not. Well :) you may say that then do the right one. Its ok but i am invoking different files with ShellExecute api but only changing parameters for each. So i use the same thing for others. I want to find a solution before doing an exception for only help file invoking. This would be better. And will learn(if possible) one more thing if anybody will help me :)

Posted on 2003-12-21 11:44:45 by cakmak
Don't you just send HELP_QUIT to unload the WinHelp application ?

invoke WinHelp,0,pFilename,HELP_QUIT,NULL
Posted on 2003-12-21 11:55:51 by donkey
Good point! No wasn't.

Thank you donkey
Posted on 2003-12-21 11:59:21 by cakmak