You can change *.c and *.h Explorer icons to point your own resource dll with this small project.
This one change only c_auto_file\DefaultIcon and h_auto_file\DefaultIcon values.
Copy CFileTypeRes.dll and CFileType.exe to proper folder and run CFileType.exe with option /R or /U to change register values.
If you found errors, you may create better version and please publish it.
EDIT: For WindowsXP only ?
New version in CFileType_WS_1.zip
Hi Timo;
You may be running into Virtualization issues with Vista and 7 ... this would require the program to carry a manifest and may require it to be run "as administrator" as well.
Also note that the registry has two versions of it's file associations... a global "default" and a second set of per-user settings that can override the defaults. You can use my Windows File Associations (http://forum.pellesc.de/index.php?topic=3685.0)library to locate the correct registry branch... The AssocOpen() call will give you a handle to the active item and AssocSetDefaultIcon() will let you change it.
Yeah I know... major pain in the posterior... but... hey, it's Microsoft!