Applies To:
  • CitectSCADA 5.xx

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? 

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".


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.