Training, DELPHI, IIS, DLL Faq's, C++, Installation Errors
Intelligent Software Professionals
Houston, Texas
Phone: 800-724-4305
Fax: 281-486-4741
WWW: http://www.isphouston.com/
Email: isp@isphouston.com
Rumor has it that Delphi is calling some Licensing APIs which are apparently not serviced by the OCX thus causing it (Delphi) to report a licensing failure.
You can also call the DLL version from Delphi. I personally have never attempted it, but it has been done. There are some Delphi integration pieces on the web site as well.
http://ourworld.compuserve.com/homepages/marktoml/ocx.htm
Can we use the Web enabled version of the CLIPS ActiveX for Windows on an IIS Server?
Not presently supported.
The DLL is NOT (I repeat NOT) a COM server.
The CLIPS.DLL has only one dependency and that is the MSVCRT.DLL (the C Runtime library). This needs to be version 6.0 or later. Sine this is normally installed with the operating system and upgraded with OS Service packs or other patches, you normally need not worry about it. It wouldn't hurt to check though and make certain you have the right value.
If you are making extensive use of OLE controls, you might want to also be sure the Windows 95 OLE patches are applied.
Some folks missed the release notes update on the latest build of the DLL (which is on the website where you download it). You need to be aware that you will need to regenerate any binary save files which were saved with a previous version of the DLL or with a generic version of CLIPS as the binary file format has changed.
I Tried the Clips OCX of student version for VC++6.0 examples but they do not work.
Rebuild the clipsactivexcontrol.cpp (and *.h) wrappers using the Visual C++ ClassWizard (remove the old ones from the project first). This problem can occur when the wrappers are generated on different machines (or even with slightly different versions of the compiler).
I believe that I'll need to do 'late binding' and in your examples the ocx control is just added to the form. How would I do something like;
Dim ExcelSheet As Object
Set ExcelSheet = CreateObject("Excel.Sheet")
For the clipsOcx
Dim MyClips as Object
Set MyClips = CreateObject("whatIsTheProgId" )
I think the syntax you are looking for is:
Dim CLIPS As Object
Set CLIPS = CreateObject("CLISPACTIVEXCONTROL.CLIPSActiveXCtrl.1")
Look in the registry under HKEY_CLASSES_ROOT and you will see the OCX (and related objects) starting with that key. It is a little bit more verbose than for the Excel example, since the OCX isn't (currently) and ActiveX/COM document server.
The NT error 182 (hex b6) is: "unable to run program X: Invalid Ordinal"
Now this is occuring because either regsvr32 is failing to load the COM automation DLLs or becuase the OCX is failing to load MFC42.DLL (version 6.00.x) or the OCX is failing to load MSVCRT.DLL (version 6.00.x). You can check the versions of these two to make certain that they were updated by the installer.
Check the size of COMCAT.DLL. It should be 16-24 kb or so, if you by chance have the bad (4 k or so) version that Microsoft has been bumdling with some of their installations, you need to update it (the OLE update patch, or one of the Dev. Studio 6 CDs). See MS KB articles Q223028, Q183370 et. al. If COMCAT is screwed up, there are likely to be other OLE core components messed up as well, so go for the update patch.