Reputation: 3048
I was thrown into a legacy system enhancement. It was VB6+ asp (the old-school asp) system. So basically, the system will do some database query and push the results into an activeX object (an OCX) so that the info shall be printed in barcode form.
I was asked to modify the OCX so that it does not print some logo, however, I need to maintain the original one for the existing printing purposes. So, I "Save As" the original one and managed to successfully modified it.
The system shall install the OCX into users PC. However I noticed that instead of running using two different OCX for two different printing purposes, the system uses only the latest OCX for both printings. The OCXs were named differently. The only thing that both of them share is the CLASS ID.
How can I determined the newly recompiled OCX's CLASS ID and is it possible for me to change it? How?
Upvotes: 1
Views: 1968
Reputation: 2913
Its been a LONG time since I've dealt with ActiveX controls (OCX), but maybe this KB can help: http://msdn.microsoft.com/en-us/library/941zhks9%28v=vs.71%29.aspx
Upvotes: 1
Reputation: 13267
OCXs do not have ClassIds. The controls within them do however.
To look at the values of the various GUIDs (there are others involved besides the ClassIds) one easy way is to view the typelib info via the OLE View tool that comes with Visual Studio 6.0, the Win2k Resource Kit, etc.
Upvotes: 2
Reputation: 10184
The CLASSID is COM's way of maintaining compatibility across revisions of an old control. You really don't want to be changing it. Keeping two versions on the same machine isn't advisable, either. You might be best served by creating a "new" version of the control that omits the banner, and let the compiler assign a new CLSID to the control, keeping the paths clean.
Upvotes: 2