You can try to register shell32.dll again. Click Start, Run, and type in REGSVR32 SHELL32.DLL. You should get a pop-up box that says DLLRegisterServer in shell32.dll succeeded.
If that doesn't fix it, try running System File Checker. Do you have a valid XP cd?
If so, place it in your CD ROM drive and follow the instructions below
Start > Run > cmd then type
sfc /scannow (note the space)
let this run untill you get a message saying it is complete.
SFC - system file checker, retrieves the correct version of the file from %Systemroot%\System32\Dllcache or the Windows installation source files, and then replaces the incorrect file.
If you want to see what was replaced, right click My Computer > manage, expand event viewer > system.
If neither of these help, please post back.