Re: Fujitsu support - need help - Netcobol for windows and licensed controls.
- From: Frederico Fonseca <real-email-in-msg-spam@xxxxxxxxx>
- Date: Tue, 13 Jun 2006 21:21:45 +0100
On Tue, 13 Jun 2006 13:15:53 -0600, Jeff Campbell <n8wxs@xxxxxxxx>
wrote:
Frederico Fonseca wrote:Incorrect. The message I mentioned here was just an example. On this
On Mon, 12 Jun 2006 22:04:14 +1200, "Pete Dashwood"
<dashwood@xxxxxxxxxxxxxx> wrote:
"Frederico Fonseca" <real-email-in-msg-spam@xxxxxxxxx> wrote in message
news:2f4q82t0n3vadc2epu2385uk4jfh52i2a4@xxxxxxxxxx
On Sun, 11 Jun 2006 23:26:48 -0600, Jeff Campbell <n8wxs@xxxxxxxx>
wrote:
Frederico Fonseca wrote:
Hi all,
I have a question that so far I have been unable to solve, and either
someone here has a solution for it, or I would like to have someone
with an active maintenance contract with them to pose this question to
them.
Situation
Power COBOL V7, 3rd party OCX control, properly licensed.
When run in test machine it gets a message box appears saying "file
License.dat is not found. License Agreement can not be completed"
If we copy the ".lic" file into the same folder as the supplied
activeX .OCX then it works fine, but this is obviously ilegal to do,
as it is basically distibuiting the development license.
The file names are different. Isn't that relevant? How does the "license.dat"
file get created? (And what does it contain?) The ".lic" file appears to be the
development license key, while the "License.dat" file seems to be the deployment
license key. Correct? My assumption would be that the install script for your
application must copy or create the "License.dat" file, at installation time,
in the same directory as the newly installed copy of the .OCX file.
particular control it open a message window with a "thanks for trying
our software" and with a timer (incremental). What happens when a
control is found unlincensed is up to the control designer. Some do
pretty things others just return with "not licensed".
Sorry if I wasnt more clear on this, but did not consider this to be
an important aspect of this problem.
IClassFactory and IClassFactory2 are classes implemented by the
I read the license they supply, then I spoke with them, then severalIt may not be as illegal as you think. The supplier may have no problem with
you doing this. Talk to them.
emails were exchanged with them regarding the technicalities, and ONLY
after all other venues were exhausted I did post in CLC asking for
help.
Incorrect for both Jeff and Pete.
Jeff is correct and there is nothing Fujitsu can do about your problem. ItFrom what I have found so far it seems that FJ is not implementing the
functionality of IClassfactory2 interface which is the method many
ActiveX controls use to determine if the control is being distributed
from a legal copy of the software, and I have been unable to find a
way to "fix" this from within POWERCobol.
is down to the third party supplier to provide a run time license file (or
not).
This is true because the IClassFactory2 methods are implemented by the
windows COM library, not PowerCOBOL. The .OCX you are using invokes these
methods, not PowerCOBOL.
IClassFactory is implemented within COM that part is correct, but it
is up to the container to allow for the available licensing controls
in order to allow controls to be added to it. Although the ActiveX
control does not NEED to use the IClassFactory it does need to
implement it (at least in C++). It is up to the container to see if it
is implemented and if required by the control then he (the container)
should use it.
I was incorrect above. IClassFactory and IClassFactory2 are *interfaces*
defined by COM. Their *implementations* are coded in the class object, ie,
your ActiveX component, not the COM library. The COM library will call the
implemented code when an instance of the ActiveX object is created at runtime.
ActiveX controls. Inherited from COM for sure, but still locally
implemented. See below.
You still do not understand how the IClassFactory2 works. I will try
I didn't, but others did. And note that a component is not the sameNo, it is only a CONVENTION and nobody writing COM controls HAS to implementThe .OCX you are using may not allow 'runtime' license deployment on aIClassFactory2 IS the method used to create objects that require a
'development' licensed machine. The .OCX developer should have information
on the licensing requirements.
license key/string to be supplied to the said object so they can
verify they are valid. Other methods include supplying a property on
the object, or supplying a ".lic" file that is only used for runtime
validation and not development.
that interface (I don't). I would contact the supplier and explain the
problem. If they require validation through that interface, they should
provide a method which implements it. If they don't, then it is fair to ask
them how the component is to be validated at run time.
They may require you to do it directly using the COM library. Whichever way
you look at it, it is hardly a Fujitsu problem.
PowerCOBOL is simply a container just like any other COM container. If you
placed this component on a server side page, would you complain to Microsoft
because ASP was unable to instantiate it? :-)
thing as an ActiveX Control.
Fujitsu cannot possibly know how every third party supplier is going toas I said this validation is a subset of the IClassFactory (which FJ
require run time validation.(If they require it at all...)
DOES implement), and it is a subset used to validate licensing. Once
it is implemented correctly by any container, it will work with ALL
third party controls used within that container.
Not possible. I might use a trapdoor algorithm to compute a license key,
while another developer might use one or more registry values to store a
precomputed license key. Another developer might use a file 8-) to store
the key. The control's IClassFactory2 code would have to be implementation
unique to handle these and any other possible license methods. No two
controls will necessarily do it the *same* way.
to explain this to you.
IClassFactory2 is an extension of IClassFactory.
This extension enables a class factory executing on a licensed machine
to provide a license key that can be used later to create an object
instance on an unlicensed machine. Such considerations are important
for objects like controls that are used to build applications on a
licensed machine. Subsequently, the application built must be able to
run on an unlicensed machine. The license key gives only that one
client application the right to instantiate objects through
IClassFactory2 when a full machine license does not exist.
They have the following methods.
IClassFactory
CreateInstance
Creates an uninitialized object.
LockServer
Locks object application open in memory.
IClassFactory2
GetLicInfo -
Fills a LICINFO structure with information on the licensing
capabilities of this class factory.
RequestLicKey
Creates and returns a license key that the caller can save and use
later in calls to IClassFactory2::CreateInstanceLic.
CreateInstanceLic
Creates an instance of the licensed object given a license key from
IClassFactory2::RequestLicKey.
To instantiate the component within your client application, first try
to instantiate the object directly with IClassFactory::CreateInstance.
If CreateInstance succeeds, the second machine is licensed for the
component and objects can be created at will. If CreateInstance fails
with the return code CLASS_E_NOTLICENSED, the only way to create the
object is to pass the run-time key to the
IClassFactory2::CreateInstanceLic method. CreateInstanceLic verifies
the key and creates the object if the key is valid.
In this way, an application built with components (such as controls)
can run on a machine that has no other license?only the client
application containing the run-time license is allowed to create the
component objects in question.
The IClassFactory2 interface supports flexibility in licensing
schemes. For example, the server implementor can encrypt license keys
in the component for added security. Server implementers can also
enable or disable levels of functionality in their objects by
providing different license keys for different functions. For example,
one key might allow a base level of functionality while another allows
basic and advanced functionality, and so on.
So this interface is only use to get the license information while on
the development machine (RequestLicKey). This is suplied in a
bitestring that the container MUST store if so required by the
component. The component can just implement the IClassFactory2 to say
that "no license is required", and as such the standard
IClassFactory::CreateInstance will work.
Or it may required a license, and if he (the Control) has choosen to
implement this with the IClassFactory2 method, then he will expect
this license (as retrieved by the RequestLicKey method) to be supplied
as part of the IClassFactory2::CreateInstanceLic method.
It is up to the Control to decide the content of that license string.
For example on the case of the control I am using it is a simple
readble string associated with the control name. Others, as mentioned
above, can supply an encrypted string.
There is a lot more information on the web about this implementation.
Please feel free to google for it (or www.microsoft.com)
No. Its is PowerCOBOL related, as they do not, apparently, implement
(In my experience many suppliers don't require it, and there is nothing toMy experience (although not with FJ COBOL) is MANY suppliers do
stop anyone re-usng their component once it is registered on a client
system. (Of course, the majority of clients are not developers and probably
don't have an Object Browser readily available to find out the methods and
properties...). Also, most clients would not even be aware the component was
there once they had installed the application.)
require a runtime license, and most of them do implement it using only
the mentioned class. The fact that most "clients" do not notice that
they have available a illegal license of a piece of software will not
prevent BSA (or whatever similar legal entities available on your
country) from processing your company should it be found in 100 of
your computers, as supplying the ".lic" without proper authorization
would amount to piracy.
I honestly believe your best option here is to communicate with theNot really. Best option would be for FJ to have this implemented
supplier.
Pete.
(which it seems they have not), and the second one would be for
someone that has gone through this problem to post the solution here
or by private email.
Note that I may now have found a solution but will not be testing this
until tomorrow (1 AM now, bed time).
If I am correct I will be happy to share the solution with anyone that
needs it.
And for clarification , V8 also has the same problem (just tried it).
So, it's not PowerCOBOL related. 8-) 8-)
the IClassFactory2 methoed of creating objects. Although it is not
mandatory, it is highly advisable, as not implementing it just limits
the number of third party controls that can be used with the product.
Regards
Frederico Fonseca
Frederico Fonseca
ema il: frederico_fonseca at syssoft-int.com
Jeff Campbell
n8wxs@xxxxxxxx
----== Posted via Newsfeeds.Com - Unlimited-Unrestricted-Secure Usenet News==----
http://www.newsfeeds.com The #1 Newsgroup Service in the World! 120,000+ Newsgroups
----= East and West-Coast Server Farms - Total Privacy via Encryption =----
Frederico Fonseca
ema il: frederico_fonseca at syssoft-int.com
.
- References:
- Fujitsu support - need help - Netcobol for windows and licensed controls.
- From: Frederico Fonseca
- Re: Fujitsu support - need help - Netcobol for windows and licensed controls.
- From: Jeff Campbell
- Re: Fujitsu support - need help - Netcobol for windows and licensed controls.
- From: Frederico Fonseca
- Re: Fujitsu support - need help - Netcobol for windows and licensed controls.
- From: Pete Dashwood
- Re: Fujitsu support - need help - Netcobol for windows and licensed controls.
- From: Frederico Fonseca
- Re: Fujitsu support - need help - Netcobol for windows and licensed controls.
- From: Jeff Campbell
- Fujitsu support - need help - Netcobol for windows and licensed controls.
- Prev by Date: Re: Fujitsu support - need help - Netcobol for windows and licensed controls.
- Next by Date: Re: Fujitsu support - need help - Netcobol for windows and licensed controls.
- Previous by thread: Re: Fujitsu support - need help - Netcobol for windows and licensed controls.
- Next by thread: Re: Fujitsu support - need help - Netcobol for windows and licensed controls.
- Index(es):
Relevant Pages
|
Loading