cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
evige33
Level 3

Using ComAdminCatalog to register COM Server

Hey everyone, I have an installscript that is creating the COM Server for my application. I know that I have to bring the dlls that will be in that COM Server into the installshield application (which I have). I'm assuming that I still have to set up the registry the way I want it for these COM dlls? I guess I'm wondering at this point, how much the InstallComponent() function of the Application object does for you when installing the dlls via installscript and how much you have to do yourself regarding registry entries. Presently, I have my components' "COM Extract at Build" set to no, but I do have registry entries for them in the Registry table (i.e. their CLSID, Interface, and Typelib entries); not sure if I extracted them myself or if they came in when I included them in the project....but anyways. I created a custom action to create the com+ package and install the components using the comadminlog functionality and InstallComponent function. The package seems to be created fine with everything in it, the properties of the package look good and the registry entries look pretty good, but what I did notice initially is that the AppID key entry under the HKEY_CLASSES_ROOT/AppID was not there, so I manually created it in the AppID table in installshield and in the Class Table set the AppID for the components that will be in the complus package. I then rebuilt the project and reinstalled it and the appid appeared correctly and the registry entries once again looked great and included the AppID and the "Complus Applications" directory that I set for the complus package directory. However, when I go to run the exe that calls my dlls, it gives me an "ActiveX can't create object" error.

I guess I'm wondering, in general, based on what I wrote above, have I been doing this correctly, or is there something I'm missing regarding the setup in installshield for a COM Server installation? I'm assuming all I have to do is include the components in the build, set up the registry for the components in the Registry table (along with the entry and reference to the AppID table) and then just have a script custom action that runs and creates the complus package. Am I missing anything else?
In addition, it seems to me that the only necessary registry entries for the components and com package are the AppID entry for the package, the ClsID, the Interface, and the Typelib entries for the components...I'm wondering if there is some other type of registry entry or functionality I'm missing that is specific to a com package...don't know. Just want to be sure I have the procedure correct.

Any help would be greatly appreciated.
Labels (1)
0 Kudos
(1) Reply
Christopher_Pai
Level 16

IS will handle COM server registration but it won't set up your Com+ applications and components; you have to write script to do this. Search the forums for user `Painter` ( Not Exact Match ) and words `ComAdmin` and you should find various threads with sample code.
0 Kudos