Hi John,
I had a quick look at the PortableApps Menu source this weekend.
As I have many applications that need to be stored in folders outside the PA structure I am currently thinking about
a) writing a tool for creating launchers automatically or
b) enhancing your Menu to support Windows lnk files.
I think this would be a great enhancement for users like me who are trying to keep the structure of your PA applications and have their own apps on the same drive but in a different folder, e.g. PortableTools ;). It's easier to update and maintain. Some apps also have fixed paths. The benefit comes from integrating those "external" apps into the menu.
I've already found a closed source tool for a) in the forum but it lacks proper support of different working folders and application icons have to be integrated manually using e.g. ResHacker.
Regarding a) I could implement a small tool taking the needed informations (name, workpath, icon and so on, with drop-and-drag support) to create exe files and drop them into an appropriate folders inside the PA structure.
b) would also be possible by using something like the informations returned from a CLSID_ShellLink instance. As you know the problem with ShellLinks is that they tend to rely on fixed drive letters which might create problems if the portable device is attached to a different one.
The overall quality of your code is pretty good but I would suggest trying to keep it more in a Delphi way, regarding the naming conventions and indenting. There are also several issues when porting it to D2009 (but due to the missing Win9x support this might not be relevant now) due to the old expectation of Char = 1 Byte.
Your turn, send me your comments about.
Cheers,
Arvid