----------------------------------------
Satellite Forms provides
much of its functionality by extensions.
While this has the advantages of keeping the application small, as you
only add the functionality you need, and fast, as the extensions are written in
C, it does mean that the extensions need to be distributed with the
application.
With SatForms version
4.1, the RDK engine's file type has been changed to 'appl' with a Creator ID of SMSE. The Creator ID of the PumaTech extensions
has also been changed to SMSE (previously these were SMSF). This is done so
that SF extensions will be grouped properly by Palm's launcher application and
will therefore be hidden in the Palm Menu /Delete and /Info sections. However, many third-party extensions use the
Creator ID SMSF. These extensions will
not be hidden by the RDK. Also, if your user installs an application with an
earlier version of your extension, your application may potentially be broken.
With SatForms versions
prior to 4.1, since the RDK does not have the file type of 'appl', each
extension would show separately in the Palm Menu /Delete and /Info
sections. In addition, your application
could be broken if the user installed an earlier version, as noted above.
If you use SF 4.1 and do
not use any custom extensions, you do not need to do anything. Your extensions will be automatically
hidden.
If you use an earlier
version of SF, or if you use any third party extensions with a Creator ID other
than SMSE, your extensions will not be automatically hidden. One solution is to change the Creator ID of
the third party extensions to SMSE to match the SF 4.1 RDK engine, and thus be
automatically hidden. A second, even
better, solution is to "attach" all extensions that your app requires
to your application by personalizing them with a unique name and Creator ID.
Advantages to this
solution include the following:
·
The extensions are
unique to your application, and will not be affected by the installation of
another developer's application (because the extension filenames are not the
same).
·
The extension is not
visible to the user, resulting in a cleaner and more professional-appearing
application (because the extension Creator ID matches your application and is
thus lumped into the bytes total for your app in the Info and Delete screens
rather than being listed separately).
·
The extension is
automatically removed when the user removes your application (because the
Creator ID matches your app).
Disadvantages to this
solution include the following:
·
Your applications with
different Creator IDs no longer share extensions, thus any duplicate extensions
will take up additional storage space.
Most extensions are quite small though.
·
There is increased work
of setup and maintenance, taking time and creating the possibility of
error. Your extensions no longer work
"out of the box". This
becomes especially noticeable as extensions and applications are updated.
·
If this method is not
followed precisely, you may break other applications. Specifically, you do not want to change the Creator ID of the
extension to match your app without changing its name too, unless you are
certain that this extension is not and will never be used by other SatForms
application installed on the Palm. If
your app was deleted, the extension would be deleted too, thus breaking any
other apps that relied on it. Fully
personalizing both the extension's CreatorID and name solves this potential
problem.
1. This example assumes
a Creator ID of CRID, an extension name of Utility and a PRC name of
SFE_Utility.prc.
2. Create a directory
called My Extensions (any name will do) and place it in the Program
Files\Satellite Forms \Extensions directory.
3. Copy SFE_Utility.prc,
paste it into the MyExtensions directory, and rename it CRID_Utility.prc.
4. Copy Utility.inf,
paste it into the MyExtensions directory, and rename it
"CRID_Utility.inf".
5. Open CRID_Utility.prc
with PalmFileUtil, included with SF 4.1, and do the following:**
a. Name:
change SFE_Utility to CRID_Utiltiy
b. Creator ID: change SMSF (or other Creator ID) to CRID
c. Check backup, if desired.
6. Open the INF file and
change the first two lines in [General] to read as follows:
a. ExtensionName=CRID_Utility
b. PrcName=CRID_Utility.prc
7. If the Utility
extension is currently in your project, you need to do this additional
step. In AppDesigner, add CRID_Utility
to your project, THEN remove Utility from your project. (Note: This has been tested for custom
plugins. Custom controls usually work
the same as long as you do not change the BaseName. If you change the BaseName, it may be necessary to replace each
custom control in your application.)
8. Recompile All, Save,
Deploy, Test.
·
If you are using a
custom control, you will also add a bmp file to My Extensions directory. This file is used by the AppDesigner and is
not changed.
·
Be careful if your
application requires other prc files.
For example, if you use SFBeamerPro, SFBeamReceiver.prc must not be
altered, or it will cease to function.
** Alternatively, you can use RsrcEdit on POSE
(the PalmOS Emulator) to do these steps, but this is a little more
difficult. You have to load the
extension on to POSE (use POSE rather than a real handheld), edit it using
RsrcEdit, then Export the modified extension back to your hard drive. You can download a shareware version of
RsrcEdit from http://www.individeo.net/RsrcEdit.html and you can get POSE free
of charge from http://www.palmos.com/dev/tech/tools/emulator/
Jon Blackman, MD, MS
www.pocketinformatics.com
David Thacker
www.palmdatapro.com
Revised 2001-09-19