SatForms Power Tip: Setting up the ActiveX conduit

----------------------------------------

 

The Problem

·        The SF ActiveX conduit is confusing and poorly documented.

The Solution

·        The following excellent summary is courtesy of Strom Domer.  This was originally posted on SF Talk and is reproduced here with his permission.

·        This example is for version 5.2.2a, the most current version at the time of this posting.  You may need to make appropriate changes for your version

 

I'm going to chime in here because the SF documentation is out of date on this and I, too, couldn't find anything that explicitly addresses this on this forum. Everyone wants to "avoid the hassles" and use the TopSync extension which is wonderfully conceived and written. There is no excuse for incomplete and out of date documentation, however, and it is possible to do all this yourself.

First thing to understand is these "redist" files need to be installed on your end-user's computer, I usually put these in the SYSTEM32 (or equivalent) directory:
SF52RDK.prc
RdkInst.exe
SFrmCn52.dll
SFrmUt52.dll
useredit.dll
mfc40.dll
msstkprp.dll

These files go in the "common files" directory, usually at
C:\Program Files\Common Files\Satellite Forms 5.2\Bin
..\SFrmAx52.ocx
..\sddi\Sddi_PalmDB.dll
..\sfddb\DdbDBF.dll

Note that you can put all of these files anywhere you want provided you make certain all the paths are correct in your desktop application and related. The DLL's and OCX should all be registered with regsvr32.exe (or set to self-register if you're using an installer with such capabilities such as WISE).

You also need to create 3 Registry entries:
HKEY_LOCAL_MACHINE\SOFTWARE\Pumatech, Inc.\Satellite Forms 5.2\5.2\Path = C:\Program Files\Common Files\Satellite Forms 5.2\
HKEY_LOCAL_MACHINE\SOFTWARE\Pumatech, Inc.\Satellite Forms 5.2\5.2\Version = 1280
HKEY_LOCAL_MACHINE\SOFTWARE\Pumatech, Inc.\Satellite Forms 5.2\CurrentVersion\Keyname = 5.2

Couple of notes about that.
The "Path" value must agree with your path if you move files around.
The Version value is 0x00000500 in hexidecimal, 1280 in decimal.

Now, for your install.ini file you'll want something like the following:
[Installer]
EngWinTitle=My App Installer
ConduitPath=C:\PATH\TO\SFrmCn52.dll

[PRC_Files]
PrcFile0=C:\PATH\TO\SF52RDK.prc
PrcFile1=C:\PATH\TO\ECRID0100#MY_APP.PRC
PrcFile2=C:\PATH\TO\My App.prc
PrcFile3=C:\PATH\TO\ECRID0100$MY_APP.PDB
PrcFile4=C:\PATH\TO\ECRID0100_TABLE1.PDB
PrcFile5=C:\PATH\TO\ECRID0100_TABLE2.PDB
PrcFile6=C:\PATH\TO\ECRID0100_TABLE3.PDB
... etc.

Note that the ECRID0100 prefix for each file will be different for your application. The prefix breaks down like this:
The "E" stands for Enterprise addition (that's what I use, I don't know if different prefixes are used for other editions).
"CRID" stands for CReator ID. That will be equivalent to whatever you set in the application's "Project Properties".
The "0100" is the major and minor version numbers concatenated together with leading zeros. The major and minor version are also entered in the application's "Project Properties".

You can now run RdkInst.exe. This first bit registers your application's conduit:
C:\PATH\TO\RdkInst.exe C:\PATH\TO\install.ini -crtreg CRID -name "My App" -restarths

Finally, to install your app:
C:\PATH\TO\RdkInst.exe C:\PATH\TO\install.ini -instprc

 

The information in this paper is accurate to the best of my ability.  If you note an error, please contact me so I can update the document.

 

Jon Blackman, MD, MS

www.pocketinformatics.com

 

Revised July 11, 2003