Test Drive It!
Download a fully-functional copy for a test drive at no cost orobligation
For Windows NTWin2KXPVistaWindows7
Buy It For US$ 29
Source Code Included
Try-Before-You-Buy Guarantee
Automate Palm Conduit Installation For Delphi Projects

Delphi developers have always been able to quickly build Windows applications.
But if you have to add Palm capability, then things get really complicated
really quickly. Whether you actually
likeC/C++ and use CodeWarrier,
or Pocket Technologies'
PocketStudio
Pascal variant to develop the Palm application, or you roll your own conduit
DLL with COM/PalmAPI calls in Delphi or use Jim Cooper's spiffy
TurboSync
VCL component, you still need a painless way to automatically install the conduit
and the Palm application and register it with Palm's PalmDesktop utility
without requiring any customer action.

After looking at all the conduit installers out there, we reluctantly decided
to build our own, and we think that you'll like it too: quick to integrate,
immediately clear how to use, simple, and solid. Needless to say,
we've included it in all of our Palm-enabledapplications, and now
we're offering it to the Delphi development community.

The trial version works the same as the full registered version, the only
difference being that Delphi has to be installed in the work station that
uses it. Both versions come with documentation and code samples from
our actual implementation and usage in our products. The full version
includes the object's Delphi source.
Supporting Documentation Preview
REQUIREMENTS
The Palm files to be installed (prc, and optionally pdb and rsc filetypes),
the main desktop application's conduit dll, any optional notifier dll,
and a local copy of the Palm CondMgr.dll must be available, typically placed
in a subfolder below the main desktop application's executable folder,
usually named 'PalmSupport'. The Palm HotSync manager must also be
running in order for the registration and installation to occur. Additionally,
a unique upper-case four-character CreatorID must be available, which
should be registered with Palm at their developer's web site.
PROPERTIES
sConduitName: string READ
Valid only after a successful ConduitPresent() function call, contains the full
path and filename to the registered conduit dll.
sErrorMessage: string READ
Set on function calls. If empty then no error was encountered, otherwise contains
the error's description.
iErrorNumber: byte READ
Set on every function call, 0 (zero) if no error was encountered. If non-zero,
then the sErrorMessage property will contain the error's description.
bPalmPresent: boolean READ
Set to TRUE in the Create() constructor if the actual Palm conduit manager, installation
and hot sync dlls were found, and the HotSync manager is running,
otherwise set to FALSE. Should be tested for TRUE after the object
is created before proceeding with other installation functions, all
of which will fail if this is FALSE.
iUsers: integer READ
The number of registered users in the PalmDesktop, usually only one; set
during the Create() constructor processing. If there is more than
one user, then a user selection dialog will appear when the InstallPalmProgram()
or InstallPalmPrograms() functions are called.
METHODS
Create(zsPathToCondMgr: string)
Object constructor. The zsPathToCondMgr argument is the path (not including the
filename) to a copy of the Palm CondMgr.dll file, which should be
included in the distribution. The bPalmPresent boolean property should
be tested before using any functions to insure that they can correctly
process.
function ConduitPresent(zsCreatorID: string): boolean
Set TRUE if a conduit is registered with the hot sync manager.
function InstallConduit(zsConduitFileName, zsCreatorID, zsFile,zsFolder,zsInfo:
string; ziPriority: word; zsRemote, zsTitle,zsUser: string):boolean
Set TRUE if the conduit dll is successfully registered, FALSE otherwise. The REQUIRED
arguments are defined as follows:
zsConduitFileName
Thefull path and filename of the conduit dll to be registeredwith thePalm hot
sync manager, which is case sensitive.
zsCreatorID
A uniqueupper-case four-character CreatorID must be available,which should
be registered with Palm at their developer's web site.
ziPriority
A number ranging from 0 (highest) to 4 (lowest), typicallyset to2. Used by the hot
sync manager to prioritize, within a prioritygroup,the calling of conduit dlls during
a hot sync operation, after any notifier dlls are called.
zsTitle
A description of theconduit, displayedin the CondCfg.exe Palm tool program
(included as part of the ConduitDeveloper's's Kit, available at the Palm
developer's web site).
The other arguments are OPTIONAL. If theyare not used then their argument
entries should be an empty string.These are defined as follows:
zsFile
Optional, used by the registeredconduit, the filename ofthe file that the
conduit syncs with. Generallynot useful; the conduit should know
this already.
zsFolder
Optional, used by the registered conduit, the name of the subfolder inside
the Palm user's folder where the conduit stores processed or reference
data. Generally not useful; the conduit should know this already.
zsInfo
Informationpurposes only, displayed in the CondCfg.exePalm tool, not currently
used by the hot sync manager.
zsRemote
The name of the database fileinside the Palm device (a pdb filetype). Generally
not useful; theconduit should know this already.
zsUser
Information purposes only,displayed in the CondCfg.exePalm tool, not currently
used by the hot sync manager.
function InstallNotifier(zsNotifierPath: string): boolean
Registers a notifier dll. The zsNotifierPath argument is the fullpath and
filename of the notifier dll, which is case sensitive.Set TRUE if the
notifier dll has been registered, FALSE otherwise.There can be
more than one notifier for a given application, but their execution sequence
cannot be guaranteed.
function InstallPalmProgram(zsProgramPath: string): boolean
Installs a single Palm program prc file. The zsProgramPath is the fullpath
and filename of the Palm program, and is case sensitive. If there
is more than Palm one user, then a user selection dialog will appear.
Set TRUE if the Palm program is successfully installed in the Palm
user's Install folder.
function InstallPalmPrograms(zslProgramList: TStringList): boolean
Installs a group of Palm data files (prc, pdb and rsc file types), whose full
path and filenames are contained in the zslProgramList TStringList argument,
which are case sensitive. If there is more than Palm one user, then
a user selection dialog will appear. SetTRUE if the Palm program
files are successfully installed in the Palm user's Install folder.
function NotifierPresent(zsNotifierPath: string): boolean
Set TRUE if the notifier dll is registered with the hot sync manager, FALSE otherwise.
The zsNotifierPath argument contains the full path and filename of
the notifier dll and is case sensitive.
function UnInstallConduit(zsCreatorID: string): boolean
Set TRUE if the if the registered conduit is successfully removed from the
hot sync manager, FALSE otherwise.
function UnInstallNotifier(zsNotifierPath: string): boolean
Set TRUE if the if the registered notifier dll is successfully removed from
the hot sync manager, FALSE otherwise.
EXAMPLE:
implementation
uses
uoFW_PalmCondInstlrObj,
-
const
CREATOR_ID='PCIO';
CONDUIT_PRIORITY = 2;
CONDUIT_PATH = 'c:\path\to\myconduit.dll';
NOTIFIER_PATH='c:\path\to\mynotifier.dll';
-
procedure TMain.FormShow(Sender:TObject);
begin
-
InstallPalmConduit;
-
end;
-
procedure TMain.InstallPalmConduit;
var
bOK:boolean;
oPalmCondInstlr : TFW_PalmCondInstlrObj;
begin
oPalmCondInstlr:=TFW_PalmCondInstlrObj.Create('PathTo_CondMgr.dll');
try
if oPalmCondInstlr.bPalmPresent then
begin
if (not oPalmCondInstlr.ConduitPresent(CONDUIT_PATH)) then
begin
bOK := oPalmCondInstlr.InstallConduit(CONDUIT_PATH,
CREATOR_ID,
'',
'',
'InfoAboutConduit',
CONDUIT_PRIORITY,
'',
'ShortDescription',
'');
(****
If a notifier is required:
if bOK then bOK := oPalmCondInstlr.InstallNotifier(NOTIFIER_PATH);
****)
if bOK then bOK := oPalmCondInstlr.InstallPalmProgram('c:\path\to\palm_program.prc');
if bOK then MessageDlg('The Palm program will be installed on thenextHotSync!',
mtInformation, [mbOK], 0);
end;
end;
finally
oPalmCondInstlr.Free;oPalmCondInstlr:= nil;
end;
end;
Have any
questions
on FutureWare'sPalm Conduit Installer Object?
Whether by email or phone, we'd be happy to answer them for you.
FutureWare: Doing Windows, filling Pockets, and reading Palms,
Making Software That Works! For Health, Home And Office
www.futurewaredc.com 775.346.8185 skype: FutureWareSCG
We Succeed When You Do. Since 1984