I think this is a wonderful piece of code. Well done. I intend to create a source code app soon to help people.
Anyway, does anyone understand how much use VB makes of the def file? After some experimentation it seems that you only need the exports section.
Also, does it matter about what value you actually asign to the ordinal? I have found you can't miss one out but (e.g. 1,2,4) but it doesn't seem to matter (for VB at least) what the values are set to - what effect does this have on the use of the dll.