Time was when you set file associations in:
HEY_CLASSES_ROOT\<.ext>
However, that seems to be possible, but an incomplete solution anymore. There are additional associations throughout the registry. For example:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\KindMap HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\Extensions
And all of the above, but by HKEY_USERS\
And Microsoft added their Set Default Associations control panel applet, which controls... what?
I'm looking for a white paper, or discussions on:
"How is a modern, Windows XP-Windows 7 compatible application written in C/C++ supposed to register and manipulate its file associations without interfering with Explorer, User-Settings, or the Default Associations cpl"
EDIT: I'm trying to further this investigation with more questions here: http://stackoverflow.com/questions/2850157/how-to-delete-progids-from-other-user-accounts-when-uninstalling-from-windows