In addition to the other problems with that code, as others have pointed out, RegSvr32 requires elevated permissions. See
http://doughennig.blogspot.ca/2007/04/elevating-tasks-in-vista.html for information on elevating ShellExecute.
A bigger question is why are you trying to register a COM object from within the application? That's really a job for the installer.
Doug