/build/static/layout/Breadcrumb_cap_w.png

.OCx failed to register

Hi

I am getting an error message,while running the .msi as " Failed to register the .ocx"

As per the Appdeploy Knowledgebase I removed the .ocx entries from the selfReg table but I want to know how safe is it?

Is there any other way to automate the self registartion of the components and not handle manually?

Please suggest.

0 Comments   [ + ] Show comments

Answers (30)

Posted by: cygan 14 years ago
Fifth Degree Brown Belt
1
register the ocx's that can be registered and the others execpt if they have any dependencies just ingore them as there is nothing else you can do
Posted by: cygan 14 years ago
Fifth Degree Brown Belt
0
as per microsoft best practises it is bad news registering dll's / ocx's via the selfreg table

you can use wisecomcapture to extract the reg entries from the dll and then create a new component and add the reg entries to that component.

or you can use a custom action to register the dll / ocx running regsvr32.exe /s
Posted by: Star 14 years ago
Orange Senior Belt
0
I would want to create the custom action on Orca as we dont have any other tool available but the problem is I have never worked on it,Could you please help me with the same?

As per the Orca Structure the columns it shows are below:

Action
Type
Source
Target

Please help me in populating the data?
Posted by: mekaywe 14 years ago
Brown Belt
0
Take wisecomcapture of the .ocx file and add the registry entries to that particular component.
Posted by: Star 14 years ago
Orange Senior Belt
0
I have never used it either!!! is it a freeware?

Please guide me through if you can?
Posted by: mekaywe 14 years ago
Brown Belt
0
Wat is the tool you are using for packaging.
Wisecomcapture is part of Wise Package Studio
Posted by: Star 14 years ago
Orange Senior Belt
0
We still have to purchase it but till then we were asked to either ignore the errors or if possible use Orca but we haven't used it so we are in a big fix :-(
Posted by: mekaywe 14 years ago
Brown Belt
0
For using Custom Action table using Orca,

Action - Name of CA
Type - This should contain a value, depending on how you want to execute the CA
Source - If you have any binary entry to be called in CA, please provide the same here.
Target - If CA is VBscript, copy paste the script in this location.
Posted by: mekaywe 14 years ago
Brown Belt
0
then you can probably go for regsvr32 to register your OCX file
Posted by: cygan 14 years ago
Fifth Degree Brown Belt
0
the tables you need are the custom action table and the installexecutesequence table

custom action table

action type source target

CAname 34 SystemFolder regsvr32.exe /s "<path to ocx>"



Installexecutesequence table



action condition sequence

CAname Not Installed seqnence number



you will need to sequence your CA after installfinalise action

ie if installfinalise action is 6600

then CAname will be 6650

hope you are running msi with the qb /qn switch
Posted by: Star 14 years ago
Orange Senior Belt
0
Cygan,

Thanks for the help, let me try to update the tables and see if it will work for us.
We are using /qn switch for the package.

One more question, how do we know what is the action sequence number we have to assign.Are these predefined?
Posted by: AngelD 14 years ago
Red Belt
0
As you don't seem to have any Wise packaging product then the best way would be to use another tool rather then use WiseComCapture as it is a tool that comes with Wise.

I recommend that you don't use a custom action but add the COM component registration info into the Registry table.
So to do this with ORCA you need to use another ORCA look alike table editor.
Downloading InstEd (www.instedit.com) and RegSpy (RegSpy2.zip from http://www.installsite.org/pages/en/tt_analyze.htm), they are both free.

Extract the COM component registration info into a .reg file using RegSpy.
Open the MSI or MSI+MST (depending on which you want to update) in InstEd and import the .reg file (http://www.instedit.com/importing.regfiles.html) created by RegSpy.
Posted by: cygan 14 years ago
Fifth Degree Brown Belt
0
yes the numbers are pre defined
look at what value your installfinalize action has
Posted by: Star 14 years ago
Orange Senior Belt
0
"Extract the COM component registration info into a .reg file using RegSpy."

Could you please explain how? as the RunSpy.exe doesnt seem to do anything?
Posted by: Star 14 years ago
Orange Senior Belt
0
ohkk..Could you please suggest any document for the same?

The Seq no. is the same what to said : 6600
Posted by: cygan 14 years ago
Fifth Degree Brown Belt
0
if your intallfinalize action sequence is 6600
then enter 6650 for your CA

cheers
Posted by: Star 14 years ago
Orange Senior Belt
0
if I have to register 4 .ocx files,how do I assign the squence number or it would remain the same for all the .ocx files?
Posted by: cygan 14 years ago
Fifth Degree Brown Belt
0
nope the sequence numbers will not be the same

6650
6675
6687
6681

you should be ok now

any more probs let us know
Posted by: Star 14 years ago
Orange Senior Belt
0
Would the Type remain the same as 34..I guess "Yess"
Posted by: cygan 14 years ago
Fifth Degree Brown Belt
0
yes type 34 and you CA names will be different
Posted by: AngelD 14 years ago
Red Belt
0
ORIGINAL: Star

"Extract the COM component registration info into a .reg file using RegSpy."

Could you please explain how? as the RunSpy.exe doesnt seem to do anything?

runspy.exe <path to .ocx>

place the .ocx file where it should be installed before running the command so the .reg file will point to the correct location
Posted by: Star 14 years ago
Orange Senior Belt
0
Cygan,

I tried to register the .ocx files both the way you suggested and manually but it not getting registered.
When trying to register manually it gives me an error as below" LoadLibrary("C:\Windows\System32\imgscan.ocx")failed-The specified module could not be found.
Posted by: Star 14 years ago
Orange Senior Belt
0
Hi AngelId

I tried your suggestion as well but its throwing an error instead:

This application has failed to start because OIAM400.dll was not found.Re-installing the application may fix this issue.
Posted by: AngelD 14 years ago
Red Belt
0
Either it cannot be registered or it has some dependencies that must be in-place before you can successfully register the .ocx.
If you load the .ocx in dependency walker it should give you which DLL/OCX it depend on.

Is this a vendor MSI or did you create it?
Posted by: Star 14 years ago
Orange Senior Belt
0
Its one of the .msi files our enterprise got created for their Internal use.
Posted by: cygan 14 years ago
Fifth Degree Brown Belt
0
right click on the ocx select properties and look for the ole self register attribute
if it is not there then you cannot register the ocx/dll
Posted by: Star 14 years ago
Orange Senior Belt
0
When I right click on the .ocx files and then properties , i dont see any attribute.

How do you want me to check?
Posted by: cygan 14 years ago
Fifth Degree Brown Belt
0
look in the version tab
Posted by: Star 14 years ago
Orange Senior Belt
0
I dont see it but checked on one of the .dll's which got registered it doesn't have it mentioned either.
Posted by: Star 14 years ago
Orange Senior Belt
0
okie....will do the same

Thanks for being patient all this while.
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
 
This website uses cookies. By continuing to use this site and/or clicking the "Accept" button you are providing consent Quest Software and its affiliates do NOT sell the Personal Data you provide to us either when you register on our websites or when you do business with us. For more information about our Privacy Policy and our data protection efforts, please visit GDPR-HQ