Here is the latest version of my MsdnHelp addin for RadASM, which has now been extended to work with multiple helpfiles. Now you can get all the help info with just one key - F1. For example, if you have the cursor on a "mov" instruction it will open opcodes.hlp on the "mov" topic, and if you have the cursor on "MessageBox" it will open Win32.hlp or MSDN on the specified topic.
Just place all the files in this zip into the AddIns folder and enable the MsdnHelp plugin in radasm.ini by uncommenting the line msdnhelp.dll=1
The database contains paths for the default C:\Masm32\Help folder (opcodes, m32lib, floating point, directives), except that it uses MSDN in a folder E:\Program Files\ etc... if you want to change the help files, run SetPaths.exe

I await your bug reports ;)

Look here 5'th post for the updated version.
Posted on 2002-06-19 13:14:46 by Qweerdy
Hi Qweerdy

SetPaths.exe GPF's on me. Working well on some helpfiles tho.

Great work. :alright:

Before this I could never hit the right F1 on first try. Now there is only one key!!!!!!!!!!

Posted on 2002-06-19 14:01:36 by KetilO
Hey qweerdy some of us don't have the MSDN collection but alot of us probably have the SDK... I did an addin which supports the SDK I wouldn't mind if you integrated that into your addin perhaps an option to use either msdn or the platform SDK...
Posted on 2002-06-19 14:56:27 by MArtial_Code
As far as I know it already supports the platform SDK. The Platform SDK is just a big collection of CHM files, right? I also believe it comes with a COL (collection) file just like MSDN. Just type in the right filename and it should work just fine.
The beauty of this addin is that you can select ANY help file for a given set of keywords!
I just compared your platsdk code with my original MsdnHelp code which comes with RadASM too, and they do pretty much the same thing :)

KetilO: Could you give me a clue as to where it GPF's? Right at startup? Also it should be in the AddIns folder with help.mdb, but it should give you a nicer error message than a GPF :confused:
I noticed I forgot to InitCommonControls. Could that be it?
Posted on 2002-06-20 04:49:43 by Qweerdy
I have prepared two new database files that are a bit easier to edit.

This one contains the same keywords as the original database but have all the MSDN / PlatSDK categories merged into one so it's easier to change the filename.

Don't forget to rename the database to help.mdb!
Posted on 2002-06-20 05:42:22 by Qweerdy
This database file contains only the Windows API keywords that are actually in win32.hlp. Use this version when you don't have the Platform SDK or MSDN, and want to use win32.hlp instead.

Don't forget to rename the database to help.mdb!
Posted on 2002-06-20 05:44:34 by Qweerdy
Hi Qweerdy

It GPF's on my Win98 when I change selection in listbox. Both by click and keyboard. Strange I have a JIT debugger (OllyDbg) but it did't catch anything.:(
I will try your new mdb's.

Posted on 2002-06-20 05:57:20 by KetilO

I have updated the first zip with a new SetPaths.exe. Perhaps I was pushing my luck too far with some API register preservation.

Also, I have added the InitCommonControls I had forgotten.
Posted on 2002-06-20 06:42:23 by Qweerdy
Hi Qweerdy

Yeesss, the Win32.hlp database was the one I was looking for. :alright: MSDN/SDK is too slow for me.

Thanks, I will try it on Win98 when I get home. A little suggestion. If the word is not found, return FALSE and let RadASM launch the default help file.
I often use the find function of winhelp.

Posted on 2002-06-20 07:20:54 by KetilO

Have you tested it yet?

As for returning FALSE when the word is not found: that's how I originally had it but since I don't have Win32.hlp I found the "File not found" messagebox annoying when nothing was found. I'll make it an optional setting.
Posted on 2002-06-21 03:30:31 by Qweerdy
Hi Qweerdy

Thats great. I often press F1 on words like EM_GETRECT wich is not found as a keyword. Then I press Ctrl+C to copy EM_SETRECT and then do a Find on the word. Sorry, I did not have time to test it on win98. It works very good on xp. I will test it on 98 this evening.

Posted on 2002-06-21 04:17:26 by KetilO
Here's the updated version I promised. Startup flags are now:

1 = Enable plugin
2 = Pass unfound keywords to RadASM
4 = Display error messages in output window (else no errors are displayed). I hate messageboxes for help functions :)

Also, you can now specify .exe files as help files and the keyword will be passed on the command line. Untested though...

Too bad I couldn't edit the original message anymore :(

Sorry for the bad version, download again please :o

Look here 5'th post for the updated version.
Posted on 2002-06-21 09:02:51 by Qweerdy
Hi Qweerdy

The dll is dated 02-08-2002. Is this an early version. I could not get it to work.

Posted on 2002-06-21 09:37:43 by KetilO
Oops! Yes that was an absolutely ANCIENT version. Dunno how that got there :confused:

Anyway, try again :)

Ah wait I found it: when I updated RadASM it kept the old RadAsm\Projects folder with the OLD MsdnHelp, the new MsdnHelp project is in RadASM\Masm\Projects
Posted on 2002-06-21 10:59:06 by Qweerdy
Hi Qweerdy

Working great on xp. Will test on 98 in a few hours.

Thanks for this excelent addin. :alright:

Posted on 2002-06-21 11:28:21 by KetilO
Hi Qweerdy

No problems on win98. I love your addin.

What about rc.hlp? Not very important tho. Will you supply us the tools to update the database?

Posted on 2002-06-21 12:17:30 by KetilO
There aren't any real tools, unless you mean MS Access XP, which would be breaking forum rules ;)

The original database was created by copying and pasting help file indexes from the standard Masm32 help files into text files, which were then imported into access as tables. The MSDN keyword listing was created by a simple Vb program that used all the PROTO's in the Masm32\Include folder to create a CSV (Comma separated values) text file.

The new Win32.hlp database was created by decompiling the help file and using another VB program to extract the topics from the rtf file. These topics were then used to filter the records already in the database.

I will release the source code to the addin and the SetPaths utility as soon as I'm convinced that they are reasonably finished, as well as the source to the VB programs if anyone really needs them.
Posted on 2002-06-21 13:04:27 by Qweerdy
Hi Qweerdy... most of what you done here works just great! :alright: However the newer versions of MSDN dont have any .col extensions... for the most part they are .hx("x") extensions... ie .hxs, .hxq etc.... so I'm unable to get that part working correctly, and havent had time to research yet... any ideas?


Posted on 2002-06-21 16:39:35 by dlburlin
My best guess is: figure out which file the MSDN icon points to (not hh.exe, but the file to open with hh.exe) and try setting that as the help file. That's how I originally figured out that the .col file was the main file.
Posted on 2002-06-22 02:39:00 by Qweerdy
I really hate the edit time limit :( everytime I have a small update I have to post the whole zip over again. Surely some moderator can remove the old ones?

This new zip contains the latest dll and the original database, as well as a new toy to play with: MsdnOnline.exe!
Set this file as the help file for API functions and it'll show you the correct page from It may take a little long to open the page, because in the background it is first loading the search results page to get the URL for the best result. MSDN search has no "Feeling lucky" button :(
Btw, this program uses my "InStringEx" proc, posted in the Algorithms forum ;)
Posted on 2002-06-22 12:49:53 by Qweerdy