Developer’s Guide
Table Of Contents
- Contents
- Chapter 1 Introducing FileMaker Developer 5
- Chapter 2 Customizing your database solution
- About the custom solution examples
- Using the FileMaker Developer Tool
- Binding your databases into a runtime database solution
- Displaying databases in Kiosk mode
- Renaming your databases
- Removing design access to your databases
- Customizing the About, Help, and Scriptsmenus
- Adding the FileMakerPro extension to database filenames
- Saving your settings in the Developer Tool
- Chapter 3 Preparing files for a custom solution
- About the Relational Example
- General steps for preparing your solutionfiles
- Issues to consider before creating a runtime database solution
- Opening files in Kiosk mode
- Design tips for navigating in Kiosk mode
- Creating startup scripts
- Using button image samples
- Documenting your database solution
- Design tips for cross-platform solutions
- Creating a consistent appearance
- Simulating outline and shadow text styles
- Using common character sets
- Designing text layouts for cross-platform solutions
- Using a common color palette
- Using graphics in cross-platform solutions
- Using QuickTime movies in cross-platform solutions
- Showing the status bar in Windows
- Using separate scripts for printing
- Using the Status (CurrentPlatform) function
- Creating platform-specific scripts
- Protecting your runtime database solutionfiles
- Testing before and after creating yoursolution
- Converting and upgrading solution files
- Chapter 4 Distributing FileMakerPro runtime database solutions
- Chapter 5 Creating custom layout themes
- Chapter 6 Publishing your database on the Web
- Moving forward using open web standards
- Using the FileMakerPro Web Companion
- Displaying a custom home page
- Using a custom home page with Instant Web Publishing
- Monitoring your site
- Exporting data to a static HTML page
- Testing your site without a networkconnection
- Opening password-protected databasesremotely
- Using the Web Security Database
- Chapter 7 Using FileMakerPro XML to deliver your data
- About the XML examples
- General process for custom web publishing using XML
- Generating an XML document
- Using the FMPDSORESULT grammar
- Using the FileMakerPro Extended XMLgrammars
- About UTF-8 encoded data
- Generating FileMakerPro CGI requests for an XML document
- Using style sheets with your XMLdocument
- Comparing CSS, XSLT, and JavaScript
- Looking at the XML Inventory example
- Chapter 8 Using Java and JDBC to deliver your data
- About the JDBC examples
- About JDBC
- Using the FileMaker JDBC Driver
- SQL supported by the FileMaker JDBCDriver
- FileMakerPro support for Unicodecharacters
- About the FileMaker JDBC Driver interfaces and extensions
- Example 1: Looking at the FileMakerPro Explorer application
- Example 2: Creating the JBuilder Inventoryapplication
- Example 3: Creating the Visual Cafe Inventory application
- Using the FileMaker Java classes
- Chapter 9 Custom web publishing using CDML
- About the CDML examples
- General steps for custom web publishing using CDML
- About CDML format files
- Generating FileMakerPro CGI requests using CDML
- Using the CDML Tool and templates
- New and modified CDML tags
- About the CDML Reference database
- Creating error messages
- Using an encoding parameter with a CDML replacement tag
- Planning your web site
- Chapter 10 Writing external function plug-ins
- About the plug-in examples and templates
- Installing, enabling, and configuring FileMakerPro plug-ins
- Using external functions in a calculation
- Requirements for writing an external function plug-in
- FileMakerPro messages sent to theplugin
- Debugging your plug-in
- Avoiding potential MacOS resourceconflicts
- Providing documentation for your plug-in
- Naming and registering your plug-ins
- Appendix A Feature comparison of the runtime application and FileMakerPro
- Appendix B Valid names used in CGI requests for FileMaker XML data
- Generating a –find, –findall, or –findany request
- Generating a –view request
- Generating a –new request
- Generating an –edit request
- Generating a –delete request
- Generating a –dbnames request
- Generating a –layoutnames request
- Generating a –scriptnames request
- Generating a –dbopen request
- Generating a –dbclose request
- Specifying parameters for the request
- db (Database)
- lay (Layout)
- format (Format)
- recid (Record ID)
- modid (Modification ID)
- lop (Logical operator)
- op (Comparison operator)
- max (Maximum records)
- skip (Skip records)
- sortfield (Sort field)
- sortorder (Sort order)
- script (Script)
- script.prefind (Script before Find)
- script.presort (Script before Sort)
- styletype (Style type)
- stylehref (Style href)
- password (Database password)
- field name (Name of specific field)
- Appendix C FileMaker Pro values for error codes
- Index
10-10
Developer’s Guide
There should be no need for any custom DLLMain routine because
the instance Handle of the DLL will be passed each time the DLL is
called.
Main entry point for Mac OS environments
The Mac OS platform plug-in can contain any combination of
PowerPC and 680x0 based code. If the plug-in requires a PowerPC
processor to run, you must still write a small 680x0 code resource.
This code resource should cause the plug-in to refuse to load during
initialization after displaying an appropriate message.
680x0 computers: The 680x0 code exists as a resource of type FMXT
with an ID of 1024 and the entry point is at the first byte of that
resource. Because FileMaker Pro 4.0 runs on 680x0 machines, make
sure that at least the entry point and the initialization handler are not
compiled for 68020 or later computers if your plug-in is for
FileMaker Pro 4.0.
PowerPC computers: The PowerPC code exists as a shared library in
the data fork of the plug-in with a single exported named entry point.
The name of the entry point is
FMExternCallProc and the file system’s
file type for the plug-in must be
FMXT. (In Code Warrior Pro, set all
the fields of the PPC PEF preferences panel to 1024. The PEF's
fragment name is ignored.)
External function naming conventions
The function name prefix for all of the plug-in’s external functions
must be a unique value containing 4 or 5 characters and must not
begin with the characters “
FM” or “Web.” Three-character prefixes
are reserved by FileMaker, Inc.—for example, the Full Example
plug-in’s function name prefix is “Xpl.”
FileMaker, Inc. will manage the naming conventions for plug-in
name, filename, and function prefix. For this reason, you need to
register your plug-in.
In addition, FileMaker, Inc. has reserved certain naming conventions
for external functions—for example, the FileMaker Pro Web
Companion uses the naming convention
Web-XXXX, where XXXX is
the name of the specific Web Companion external function.
See “Naming and registering your plug-ins” on page 10-13 for more
information.
FileMaker Pro messages sent to
the plug-in
There are five possible calls that FileMaker Pro can request of your
plug-in. Messages sent by FileMaker Pro to your plug-in are
supplied in the
whichCall field of the parameter block,
FMExternCallStruct, defined in the FMExtern.h file.
1 kFMXT_Init — the Initialization message
1 kFMXT_Shutdown — the Shutdown message
1 kFMXT_Idle — the Idle message
1 kFMXT_DoAppPreferences — the Preferences message
1 kFMXT_External — the External message
The Initialization message
The Initialization message, kFMXT_Init, is sent to the plug-in
whenever it is enabled in FileMaker Pro. This may or may not
correspond with the startup of the FileMaker Pro application,
depending on whether the plug-in is enabled in the Application
Preferences dialog box.
There are three possible result values that the plug-in should return
in response to the Initialization message:
1 kBadExtnVersion should be returned if the version number passed is
less than the value of
kMinExtnVersion or greater than the value of
kMaxExtnVersion. This prevents the plug-in from running on an
incompatible version of the API it was compiled with.