-
I've had this turn up before - can't use a control because you don't have the "appropriate license". I'm now getting the "License information for this component not found. You do not have an appropriate license to use this funcionality in the design environment." message for the MS Comm Control (MSCOMM32.OCX).
Can anyone:
a) Explain what all this nonsense is about.
b) Tell me how to fix this (so I won't have to ask this daft question again)
Thanks!!!!
Oh, by the way, I've done the Regsvr32 thing, with the /u switch first (to unregister the control) and then without (to register it again), but it didn't make the blindest bit of difference.
-
I'm willing to put money on this:
Your using either the Standard or Learning editions of visual basic right?
if yes, then you'll need to upgrade to at least Professional edition before you can use the comm control.
-
Checkout VBCli.exe
This should fix the licensing porblem.
-
For Each Activex Control they have a unique class ID.
It is in the form of
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
8 + 4 + 4 + 4 + 12 = 32 digits long.
where x can be any number from 0 to F (Hexa-decimal).
example:
2C45FDE5-2ABB-56ED-8ADB-00FF4789BE76
HOW TO KNOW THE CLASSID OF THE OCX CONTROL :
--------------------------------------------
There are many tools that show you the class id of ocx
controls and others. Just search for them.
My way of finding class-ID is somewhat weird.
[The class-ID of the control is most likely hard coded in
the control. By this I mean that using a good hex editor
if you open the ocx file and search in it, you may be able
to see the class id embedded. If you use hex editor you may
see two IDs embedded in any microsoft ocx controls.
The second will be the Class id of the ocx control.]
In the case of MSCOMM32.OCX , it's class ID is
4250E830-6AC2-11cf-8ADB-00AA00C00905
____________________________________________________________
Coming Back to the Point...
____________________________________________________________
The license Information for each activex control is placed
in the registry at
HKEY_CLASSES_ROOT\Licenses
and duplicated at
HKEY_LOCAL_MACHINE\Software\classes\Licenses
There the license code for each control appears against
their class-IDs. Only those controls that have license
code will be listed here!
The license code is of the form a string of length 36.
each individual character in the string may be anything
from a to z (lowercase).
When you use someone's program that uses this ocx, you don't
need this license to run it. The runtime dll manages this.
However to use this ocx to design your own app, you need to
have the 36 character long license code against it's class-ID
in the registry at the mentioned location.
-----------------------------------------------------------------
If you are using a version of VB that does not give the License
to this MSCOMM32.OCX , I am sorry I cannot give the License code
as it amounts to piracy.
Microsoft warning :
"Licensing: Copying the keys may be a violation of established
copyrights."
On the other hand if you have the professional or higher editions
of VB and it's just that your License Info got corrupted you can
set it right by using the program, 'Guru serge' mentioned.
------------------------------------------------------------------
Hope this should give you some insight on this issue.