I need to register an ActiveX exe programmatically and Shell(SomeActiveX.Exe /regserver) is not sufficient. Is anyone aware of an API equivalent?
You can use DllRegisterServer to register a COM component programatically, if it's an in-process com object. Here is a VB6 example on MSDN.
To register an out of process COM object, things get tricky. See Exposing ActiveX Objects. The Hello Sample shows some of the options. Larry Osterman blogged about this for background info.
In general, if you need to do this to an EXE, shelling out to *.EXE /regserver will be much easier.
You could try using regsvr32 also. This should be sufficient:
Shell(SomeActiveX.Exe /regserver)
Shell(regsvr32 SomeActiveX.Exe)
来源:https://stackoverflow.com/questions/1088266/api-equivalent-of-running-someactivex-exe-regserver