FMWrapper Framework

From FM Plugin Wikipedia
Jump to: navigation, search

The FMWrapper Framework is the C/C++ API supplied by FileMaker, Inc. to which you create and compile FileMaker plug-ins against. It is included with FileMaker Pro Advanced and cannot be redistributed in any form. The framework you compile plug-ins against is a stub framework consisting of 10 header files that make up the API.


FMWrapper Framework History

The FMWrapper Framework is only on its second major version, which came out with FileMaker Pro 8, and has only seen a few minor modifications since then.

  • Changes between FileMaker Pro 7 and 8:
    • GetFNAMData, AddFNAMData, GetSIZEData, and AddSIZEData functions were added to the BinaryData class. Ref: Binary Tips
    • ExecuteSQL function was added to the ExprEnv class. Ref: Calc Tips
    • GetFontID and GetFontInfo functions were added to the Data class. Ref: Data Tips
    • The kCurrentExtnVersion (the API Version) was updated to 51, and k80ExtnVersion was added. Ref: Extern Tips
    • The values for kFMXT_Developer and kFMXT_Pro were corrected (they were swapped in the 7 (50) API. Ref: Extern Tips
    • A FontScript member variable and associated enumerations were added to the CharacterStyle class. Ref: Text_Style Tips
  • Changes between FileMaker Pro 8 and 8.5:
    • The FMX_ExternCallStruct was modified slightly by moving the FMX_PACK define outside of the structure (seemingly for code cleanup purposes). Ref: Extern Tips
    • Chinese was added to the Locale::Type enumeration. Ref: Types Tips
  • Changes between FileMaker Pro 8.5 and 9:
    • Additional Types were added to the Locale::Type enumeration. Ref: Types Tips
  • Changes between FileMaker 9 and 10:
    • Additional Types were added to the Locale::Type enumeration. Ref: Types Tips


FMWrapper Framework Header Files

BinaryData
Contains the BinaryData class for working with Stored Container Field values (files, images, sounds, etc.) from FileMaker Pro. Ref: Binary Tips
CalcEngine
Contains the DataVect class and the ExprEnv class. The DataVect class is a vector used to pass the parameters (instances of the Data class) from your External Calculation Functions to your Plug-in's Callback functions. The ExprEnv class contains functions for registering your External Calculation Functions as well as functions for Evaluating FileMaker Calculations from your plug-in and using the Plug-in SQL Interface for querying FileMaker tables. Ref: Calc Tips
Client
Contains an exception handling structure that is used by the Framework glue code. This file does not contain anything useful for the FileMaker Pro Plug-in developer.
Data
Contains the Data class which encapsulates all the various data types passed to and from your plug-in. Ref: Data Tips
Date & Time
Contains the DateTime class for working with Date, Time, and Timestamp values from FileMaker Pro. Ref: Date and Time Tips
Extern
Contains the main/initial Callback Structure which is passed into your plug-in's entry point function. Ref: Extern Tips
FixPt
Contains the FixPt class for working with Number values from FileMaker Pro. Ref: FixPt Tips
Text
Contains the Text class for working with Text values from FileMaker Pro. Ref: Text Tips
TextStyle
Contains the CharacterStyle class and Color sub class for working with Styled Text values from FileMaker Pro. Ref: Text Style Tips
Types
Contains the QuadChar class and Locale class. The QuadChar class encapsulates the 4 byte Ids used to identify your plug-in functions and Binary Data stream types. The Local class is used to indicate the locale of Textual data. Ref: Types Tips