Applies To: |
|
Summary: |
I am using an Active X control in my displays which works fine. The issue is whenever I make change to the Active X control and update the .OCX file another entry is created in the Active X controls list in Graphics Builder. It will end up several controls with the same name, and all with the same path. Only one of them actually works. How can I remove the obsolete entries? |
Solution: |
This problem is nothing to do with Citect.
It is a COM problem. If your ActiveX control is written in VB and
the binary-compatible is not used, each time you make an OCX, a new
Class ID will be generated and added to the registry. That is why
you have many ActiveX controls with the same name on the list.
Using the binary-compatible option will keep the Class ID used by
the previous version. It is noted that keeping the
binary-compatible, you should not remove any public properties or
methods otherwise the binary-compatible will be broken. Adding
public members to your ActiveX control will not break the
binary-compatibility.
If you want to remove the obsolete controls, you have to edit the registry manually. 1. Run "RegEdit". 2. Go to "HKEY_LOCAL_MACHINE\SOFTWARE\Classes. 3. Get this node focused. 4. Ctrl-F to find "your control name". This will find the control's ProgID. Remember the ClsID under this node and then delete this ProgID. 5. Use the class ID as searching reference. Delete the found classID. 6. Repeat steps 4-5 until all have been removed. 7. Re-build your control with the binary-compatible option Important note: The clean-up must be carried out with care. |
Keywords: |
Related Links
Attachments