FutureWare Palm Conduit Installer Object | Palm Software Development

FutureWare Palm Conduit Installer Object | Palm Software Development Palm Conduit Installer Object!

Automating Palm Communications

FutureWare uses PayPal for customers worldwide

Try Before You Buy! Download FutureWare's Palm Conduit Installer Object For A No Cost, No Obligation Test Drive!  Test Drive It! 
Download a fully-functional copy for a test drive at no cost orobligation

For Windows NT•Win2K•XP•Vista•Windows7

 Buy It For US$ 29 
Source Code Included
Try-Before-You-Buy Guarantee

Automate Palm Conduit Installation For Delphi Projects

Palm Conduit Installer Object!  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 actuallylikeC/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.

Palm Conduit Installer Object!  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.

Palm Conduit Installer Object!  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