#ifndef _h_DBCalcEngine_
#define _h_DBCalcEngine_
#include "FMXClient.h"
extern "C++"
{
namespace fmx
{
class Text;
class FixPt;
class DateTime;
class BinaryData;
class Data;
class DataVect;
class ExprEnv;
class DataVect
{
public:
inline uint32 Size () const;
inline void Clear ();
inline bool IsEmpty () const;
inline void PushBack ( const Data &data );
inline Data *PopBack ();
inline const Data &At ( uint32 position ) const;
inline const Text &AtAsText ( uint32 position ) const;
inline const FixPt &AtAsNumber ( uint32 position ) const;
inline const DateTime &AtAsDate ( uint32 position ) const;
inline const DateTime &AtAsTime ( uint32 position ) const;
inline const DateTime &AtAsTimeStamp ( uint32 position ) const;
inline bool AtAsBoolean ( uint32 position ) const;
inline const BinaryData &AtAsBinaryData ( uint32 position ) const;
inline void operator delete ( void *obj );
private:
DataVect ();
DataVect ( const DataVect& other );
};
class RowVect
{
public:
inline uint32 Size () const;
inline bool IsEmpty () const;
inline const DataVect &At ( uint32 position ) const;
inline void operator delete ( void *obj );
private:
RowVect ();
RowVect ( const RowVect& other );
};
FMX_PROCPTR( errcode, ExtPluginType ) ( short functionId, const ExprEnv& env, const DataVect& parms, Data& result );
class ExprEnv
{
public:
enum
{
kMayEvaluateOnServer = 0x00000001,
kDisplayCalcFields = 0x00000100, kDisplayAutoEnter = 0x00000200, kDisplayValidation = 0x00000400, kDisplayCustomFunctions = 0x00000800, kDisplayPrivileges = 0x00001000, kDisplayInFuture1 = 0x00002000, kDisplayInFuture2 = 0x00004000, kDisplayGeneric = 0x00008000,
kDisplayInAllDialogs = 0x0000FF00,
kMacCompatible = 0x00000002,
kWinCompatible = 0x00000004,
kServerCompatible = 0x00000008,
kIOSCompatible = 0x00000010,
kCustomWebCompatible = 0x00000020,
kWebDirectCompatible = 0x00000040,
kAllDeviceCompatible = kMacCompatible | kWinCompatible | kServerCompatible | kIOSCompatible | kCustomWebCompatible | kWebDirectCompatible,
kFutureCompatible = kAllDeviceCompatible | 0x00FF0000,
kPluginErrResult1 = 1552,
kPluginErrResult2 = 1553,
kPluginErrResult3 = 1554,
kPluginErrResult4 = 1555,
kPluginErrResult5 = 1556,
kPluginErrResult6 = 1557,
kPluginErrResult7 = 1558,
kPluginErrResult8 = 1559,
kGet_ApplicationVersion = 1001,
kGet_CurrentDate = 1002,
kGet_LastError = 1003,
kGet_ActiveFieldName = 1004,
kGet_FileName = 1005,
kGet_FileSize = 1006,
kGet_FoundCount = 1007,
kGet_HostName = 1008,
kGet_LayoutCount = 1009,
kGet_LayoutName = 1010,
kGet_LayoutNumber = 1011,
kGet_SystemLanguage = 1012,
kGet_WindowMode = 1013,
kGet_MultiUserState = 1014,
kGet_PageNumber = 1015,
kGet_SystemPlatform = 1016,
kGet_ActivePortalRowNumber = 1017,
kGet_PrinterName = 1018,
kGet_TotalRecordCount = 1019,
kGet_RecordNumber = 1020,
kGet_ActiveRepetitionNumber = 1021,
kGet_RequestCount = 1022,
kGet_ScreenDepth = 1023,
kGet_ScreenHeight = 1024,
kGet_ScreenWidth = 1025,
kGet_ScriptName = 1026,
kGet_SortState = 1027,
kGet_SystemVersion = 1028,
kGet_CurrentTime = 1029,
kGet_UserCount = 1030,
kGet_UserName = 1031,
kGet_AccountName = 1032,
kGet_LastMessageChoice = 1033,
kGet_CurrentPrivilegeSetName = 1034,
kGet_ActiveModifierKeys = 1035,
kGet_NetworkProtocol = 1036,
kGet_RecordID = 1037,
kGet_RecordModificationCount = 1038,
kGet_ActiveFieldContents = 1039,
kGet_FilePath = 1040,
kGet_LastExternalErrorDetail = 1041,
kGet_LayoutAccess = 1042,
kGet_RecordAccess = 1043,
kGet_HighContrastState = 1044,
kGet_HighContrastColor = 1045,
kGet_StatusAreaState = 1046,
kGet_LayoutViewState = 1047,
kGet_WindowName = 1048,
kGet_WindowHeight = 1049,
kGet_WindowLeft = 1050,
kGet_WindowTop = 1051,
kGet_WindowVisible = 1052,
kGet_WindowWidth = 1053,
kGet_SystemNICAddress = 1054,
kGet_SystemIpAddress = 1055,
kGet_ActiveFieldTableName = 1056,
kGet_ActiveSelectionSize = 1057,
kGet_ActiveSelectionStart = 1058,
kGet_ApplicationLanguage = 1059,
kGet_CurrentHostTimestamp = 1060,
kGet_LayoutTableName = 1061,
kGet_ScriptParameter = 1062,
kGet_CurrentTimeStamp = 1063,
kGet_WindowDesktopHeight = 1064,
kGet_WindowDesktopWidth = 1065,
kGet_WindowContentHeight = 1066,
kGet_WindowContentWidth = 1067,
kGet_CalculationRepetitionNumber = 1068,
kGet_CurrentExtendedPrivileges = 1069,
kGet_AllowAbortState = 1070,
kGet_ErrorCaptureState = 1071,
kGet_DesktopPath = 1072,
kGet_DocumentsPath = 1073,
kGet_FileMakerPath = 1074,
kGet_HostIPAddress = 1075,
kGet_RequestOmitState = 1076,
kGet_PreferencesPath = 1077,
kGet_RecordOpenCount = 1078,
kGet_RecordOpenState = 1079,
kGet_ScriptResult = 1080,
kGet_SystemDrive = 1081,
kGet_TextRulerVisible = 1082,
kGet_AllowFormattingBarState = 1083,
kGet_UseSystemFormatsState = 1084,
kGet_WindowZoomLevel = 1085,
kGet_CustomMenuSetName = 1086,
kGet_ActiveLayoutObjectName = 1088,
kGet_TemporaryPath = 1089,
kGet_HostApplicationVersion = 1090,
kGet_TriggerModifierKeys = 1091,
kGet_TriggerKeystroke = 1092,
kGet_DocumentsPathListing = 1093,
kGet_AccountPrivilegeSet = 1094,
kGet_AccountExtendedPrivileges = 1095,
kGet_QuickFindText = 1096,
kGet_TriggerCurrentPanel = 1097,
kGet_TriggerTargetPanel = 1098,
kGet_WindowStyle = 1099,
kGet_InstalledFMPlugins = 1100,
kGet_UUID = 1101,
kGet_PersistentID = 1102,
kGet_ConnectionState = 1103,
kGet_CurrentTimeUTCMilliseconds = 1104,
kGet_Device = 1105,
kGet_WindowOrientation = 1106,
kGet_TriggerGestureInfo = 1107,
kGet_EncryptionState = 1108,
kGet_ScriptAnimation = 1109,
kGet_ModifiedFields = 1110,
kGet_NetworkType = 1111,
kGet_ConnectionAttributes = 1112,
kGet_ScreenScaleFactor = 1113,
kGet_ApplicationArchitecture = 1115,
kGet_TriggerExternalEvent = 1116,
kGet_TouchKeyboardState = 1117,
kGet_MenubarState = 1118,
kGet_RegionMonitorEvents = 1119,
kGet_AccountGroupName = 1120,
kGet_ActiveRecordNumber = 1121,
kGet_UUIDNumber = 1122,
kGet_OpenDataFileInfo = 1123,
kGet_AccountType = 1124,
kGet_PageCount = 1125,
kConvert_PosixPath = 1,
kConvert_WinPath = 2,
kConvert_URLPath = 3
};
inline errcode Evaluate ( const Text &expression, Data &result ) const;
inline errcode EvaluateGetFunction ( short functionValue, Data &result ) const;
inline errcode EvaluateConvertToFileMakerPath ( const Text &inPath, int32 inFormat, Text &outFMPath ) const;
inline errcode EvaluateConvertFromFileMakerPath ( const Text &inFMPath, int32 inFormat, Text &outPath ) const;
inline errcode ExecuteFileSQL ( const Text &expression, const Text &filename, const DataVect ¶meters, RowVect& result ) const;
inline void operator delete ( void *obj );
inline errcode ExecuteFileSQLTextResult ( const Text &expression, const Text &filename, const DataVect ¶meters,
Data &result, uint16 colSep, uint16 rowSep ) const;
inline ptrtype SessionID() const;
inline ptrtype FileID() const;
inline static errcode RegisterExternalFunction ( const QuadChar &pluginId, short functionId, const Text &functionName,
const Text &functionPrototype, short minArgs, short maxArgs, uint32 compatibleOnFlags, ExtPluginType funcPtr );
inline static errcode UnRegisterExternalFunction ( const QuadChar &pluginId, short functionId );
inline static errcode RegisterExternalFunctionEx ( const QuadChar &pluginId, short functionId, const Text &functionName, const Text &functionPrototype,
const Text &functionDescription, short minArgs, short maxArgs, uint32 compatibleOnFlags, ExtPluginType funcPtr );
inline static errcode RegisterScriptStep ( const QuadChar &pluginId, short scriptStepId, const Text &scriptStepName,
const Text &scriptStepDefinition, const Text &scriptStepDescription, uint32 compatibleOnFlags, ExtPluginType funcPtr );
inline static errcode UnRegisterScriptStep ( const QuadChar &pluginId, short scriptStepId );
private:
ExprEnv ();
ExprEnv ( const ExprEnv& other );
};
#if FMX_USE_AUTO_PTR
class DEPRECATED DataVectAutoPtr : public std::auto_ptr<DataVect>
{
typedef DataVectAutoPtr UpCaster;
public:
inline DataVectAutoPtr ();
};
class DEPRECATED RowVectAutoPtr : public std::auto_ptr<RowVect>
{
typedef RowVectAutoPtr UpCaster;
public:
inline RowVectAutoPtr ();
};
class DEPRECATED ExprEnvAutoPtr : public std::auto_ptr<ExprEnv>
{
typedef ExprEnvAutoPtr UpCaster;
public:
inline ExprEnvAutoPtr ();
};
#endif
#if FMX_USE_UNIQUE_PTR
class DataVectUniquePtr : public std::unique_ptr<DataVect>
{
typedef DataVectUniquePtr UpCaster;
public:
inline DataVectUniquePtr ();
};
class RowVectUniquePtr : public std::unique_ptr<RowVect>
{
typedef RowVectUniquePtr UpCaster;
public:
inline RowVectUniquePtr ();
};
class ExprEnvUniquePtr : public std::unique_ptr<ExprEnv>
{
typedef ExprEnvUniquePtr UpCaster;
public:
inline ExprEnvUniquePtr ();
};
#endif
}
}
extern "C"
{
fmx::DataVect FMX_API *FM_DataVect_Constructor1 ( fmx::_fmxcpt &_x ) throw ();
fmx::uint32 FMX_API FM_DataVect_Size ( const void *_self, fmx::_fmxcpt &_x ) throw ();
void FMX_API FM_DataVect_Clear ( void *_self, fmx::_fmxcpt &_x ) throw ();
bool FMX_API FM_DataVect_IsEmpty ( const void *_self, fmx::_fmxcpt &_x ) throw ();
void FMX_API FM_DataVect_PushBack ( void *_self, const fmx::Data &data, fmx::_fmxcpt &_x ) throw ();
fmx::Data FMX_API *FM_DataVect_PopBack ( void *_self, fmx::_fmxcpt &_x ) throw ();
const fmx::Data FMX_API *FM_DataVect_At ( const void *_self, fmx::uint32 position, fmx::_fmxcpt &_x ) throw ();
const fmx::Text FMX_API *FM_DataVect_AtAsText ( const void *_self, fmx::uint32 position, fmx::_fmxcpt &_x ) throw ();
const fmx::FixPt FMX_API *FM_DataVect_AtAsNumber ( const void *_self, fmx::uint32 position, fmx::_fmxcpt &_x ) throw ();
const fmx::DateTime FMX_API *FM_DataVect_AtAsDate ( const void *_self, fmx::uint32 position, fmx::_fmxcpt &_x ) throw ();
const fmx::DateTime FMX_API *FM_DataVect_AtAsTime ( const void *_self, fmx::uint32 position, fmx::_fmxcpt &_x ) throw ();
const fmx::DateTime FMX_API *FM_DataVect_AtAsTimeStamp ( const void *_self, fmx::uint32 position, fmx::_fmxcpt &_x ) throw ();
bool FMX_API FM_DataVect_AtAsBoolean ( const void *_self, fmx::uint32 position, fmx::_fmxcpt &_x ) throw ();
const fmx::BinaryData FMX_API *FM_DataVect_AtAsBinaryData ( const void *_self, fmx::uint32 position, fmx::_fmxcpt &_x ) throw ();
void FMX_API FM_DataVect_Delete ( void *_self, fmx::_fmxcpt &_x ) throw ();
fmx::RowVect FMX_API *FM_RowVect_Constructor1 ( fmx::_fmxcpt &_x ) throw ();
fmx::uint32 FMX_API FM_RowVect_Size ( const void *_self, fmx::_fmxcpt &_x ) throw ();
bool FMX_API FM_RowVect_IsEmpty ( const void *_self, fmx::_fmxcpt &_x ) throw ();
const fmx::DataVect FMX_API *FM_RowVect_At ( const void *_self, fmx::uint32 position, fmx::_fmxcpt &_x ) throw ();
void FMX_API FM_RowVect_Delete ( void *_self, fmx::_fmxcpt &_x ) throw ();
fmx::ExprEnv FMX_API *FM_ExprEnv_Constructor1 ( fmx::_fmxcpt &_x ) throw ();
fmx::errcode FMX_API FM_ExprEnv_Evaluate ( const void *_self, const fmx::Text &expression, fmx::Data &result, fmx::_fmxcpt &_x ) throw ();
fmx::errcode FMX_API FM_ExprEnv_EvaluateGetFunction ( const void *_self, short functionValue, fmx::Data &result, fmx::_fmxcpt &_x ) throw ();
fmx::errcode FMX_API FM_ExprEnv_EvaluateConvertToFileMakerPath ( const void *_self, const fmx::Text &inPath, fmx::int32 inFormat, fmx::Text &outFMPath, fmx::_fmxcpt &_x ) throw ();
fmx::errcode FMX_API FM_ExprEnv_EvaluateConvertFromFileMakerPath ( const void *_self, const fmx::Text &inFMPath, fmx::int32 inFormat, fmx::Text &outPath, fmx::_fmxcpt &_x ) throw ();
#if FMX_OBSOLETE_API
DEPRECATED fmx::errcode FMX_API FM_ExprEnv_ExecuteSQL ( const void *_self, const fmx::Text &expression, fmx::Data &result, fmx::uint16 colSep, fmx::uint16 rowSep, fmx::_fmxcpt &_x ) throw ();
#endif
fmx::errcode FMX_API FM_ExprEnv_ExecuteFileSQL ( const void *_self, const fmx::Text &expression, const fmx::Text &filename, const fmx::DataVect ¶meters, fmx::RowVect& result, fmx::_fmxcpt &_x ) throw ();
fmx::errcode FMX_API FM_ExprEnv_ExecuteFileSQLTextResult ( const void *_self, const fmx::Text &expression, const fmx::Text &filename, const fmx::DataVect ¶meters, fmx::Data &result, fmx::uint16 colSep, fmx::uint16 rowSep, fmx::_fmxcpt &_x ) throw ();
fmx::errcode FMX_API FM_ExprEnv_RegisterExternalFunction ( const fmx::QuadChar &pluginId, short functionId, const fmx::Text &functionName, const fmx::Text &functionPrototype, short minArgs, short maxArgs, fmx::uint32 compatibleOnFlags, fmx::ExtPluginType funcPtr, fmx::_fmxcpt &_x ) throw ();
fmx::errcode FMX_API FM_ExprEnv_RegisterExternalFunctionEx ( const fmx::QuadChar &pluginId, short functionId, const fmx::Text &functionName, const fmx::Text &functionPrototype, const fmx::Text &functionDescription, short minArgs, short maxArgs, fmx::uint32 compatibleOnFlags, fmx::ExtPluginType funcPtr, fmx::_fmxcpt &_x ) throw ();
fmx::errcode FMX_API FM_ExprEnv_UnRegisterExternalFunction ( const fmx::QuadChar &pluginId, short functionId, fmx::_fmxcpt &_x ) throw ();
fmx::ptrtype FMX_API FM_ExprEnv_SessionID( const void *_self, fmx::_fmxcpt &_x ) throw ();
fmx::ptrtype FMX_API FM_ExprEnv_FileID( const void *_self, fmx::_fmxcpt &_x ) throw ();
fmx::errcode FMX_API FM_ExprEnv_RegisterScriptStep ( const fmx::QuadChar &pluginId, short scriptStepId, const fmx::Text &scriptStepName, const fmx::Text &scriptStepDefinition, const fmx::Text &scriptStepDescription, fmx::uint32 compatibleOnFlags, fmx::ExtPluginType funcPtr, fmx::_fmxcpt &_x );
fmx::errcode FMX_API FM_ExprEnv_UnRegisterScriptStep ( const fmx::QuadChar &pluginId, short scriptStepId, fmx::_fmxcpt &_x );
void FMX_API FM_ExprEnv_Delete ( void *_self, fmx::_fmxcpt &_x ) throw ();
}
extern "C++"
{
namespace fmx
{
inline uint32 DataVect::Size () const
{
_fmxcpt _x;
uint32 _rtn = FM_DataVect_Size ( this, _x );
_x.Check ();
return _rtn;
}
inline void DataVect::Clear ()
{
_fmxcpt _x;
FM_DataVect_Clear ( this, _x );
_x.Check ();
}
inline bool DataVect::IsEmpty () const
{
_fmxcpt _x;
bool _rtn = FM_DataVect_IsEmpty ( this, _x );
_x.Check ();
return _rtn;
}
inline void DataVect::PushBack ( const Data &data )
{
_fmxcpt _x;
FM_DataVect_PushBack ( this, data, _x );
_x.Check ();
}
inline Data *DataVect::PopBack ()
{
_fmxcpt _x;
Data *_rtn = FM_DataVect_PopBack ( this, _x );
_x.Check ();
return _rtn;
}
inline const Data &DataVect::At ( uint32 position ) const
{
_fmxcpt _x;
const Data *_rtn = FM_DataVect_At ( this, position, _x );
_x.Check ();
return *_rtn;
}
inline const Text &DataVect::AtAsText ( uint32 position ) const
{
_fmxcpt _x;
const Text *_rtn = FM_DataVect_AtAsText ( this, position, _x );
_x.Check ();
return *_rtn;
}
inline const FixPt &DataVect::AtAsNumber ( uint32 position ) const
{
_fmxcpt _x;
const FixPt *_rtn = FM_DataVect_AtAsNumber ( this, position, _x );
_x.Check ();
return *_rtn;
}
inline const DateTime &DataVect::AtAsDate ( uint32 position ) const
{
_fmxcpt _x;
const DateTime *_rtn = FM_DataVect_AtAsDate ( this, position, _x );
_x.Check ();
return *_rtn;
}
inline const DateTime &DataVect::AtAsTime ( uint32 position ) const
{
_fmxcpt _x;
const DateTime *_rtn = FM_DataVect_AtAsTime ( this, position, _x );
_x.Check ();
return *_rtn;
}
inline const DateTime &DataVect::AtAsTimeStamp ( uint32 position ) const
{
_fmxcpt _x;
const DateTime *_rtn = FM_DataVect_AtAsTimeStamp ( this, position, _x );
_x.Check ();
return *_rtn;
}
inline bool DataVect::AtAsBoolean ( uint32 position ) const
{
_fmxcpt _x;
bool _rtn = FM_DataVect_AtAsBoolean ( this, position, _x );
_x.Check ();
return _rtn;
}
inline const BinaryData &DataVect::AtAsBinaryData ( uint32 position ) const
{
_fmxcpt _x;
const BinaryData *_rtn = FM_DataVect_AtAsBinaryData ( this, position, _x );
_x.Check ();
return *_rtn;
}
inline void DataVect::operator delete ( void *obj )
{
_fmxcpt _x;
FM_DataVect_Delete ( obj, _x );
_x.Check ();
}
#if FMX_USE_AUTO_PTR
inline DataVectAutoPtr::DataVectAutoPtr ()
{
_fmxcpt _x;
reset ( FM_DataVect_Constructor1 ( _x ) );
_x.Check ();
}
#endif
#if FMX_USE_UNIQUE_PTR
inline DataVectUniquePtr::DataVectUniquePtr ()
{
_fmxcpt _x;
reset ( FM_DataVect_Constructor1 ( _x ) );
_x.Check ();
}
#endif
inline uint32 RowVect::Size () const
{
_fmxcpt _x;
uint32 _rtn = FM_RowVect_Size ( this, _x );
_x.Check ();
return _rtn;
}
inline bool RowVect::IsEmpty () const
{
_fmxcpt _x;
bool _rtn = FM_RowVect_IsEmpty ( this, _x );
_x.Check ();
return _rtn;
}
inline const DataVect &RowVect::At ( uint32 position ) const
{
_fmxcpt _x;
const DataVect *_rtn = FM_RowVect_At ( this, position, _x );
_x.Check ();
return *_rtn;
}
inline void RowVect::operator delete ( void *obj )
{
_fmxcpt _x;
FM_RowVect_Delete ( obj, _x );
_x.Check ();
}
#if FMX_USE_AUTO_PTR
inline RowVectAutoPtr::RowVectAutoPtr ()
{
_fmxcpt _x;
reset ( FM_RowVect_Constructor1 ( _x ) );
_x.Check ();
}
#endif
#if FMX_USE_UNIQUE_PTR
inline RowVectUniquePtr::RowVectUniquePtr ()
{
_fmxcpt _x;
reset ( FM_RowVect_Constructor1 ( _x ) );
_x.Check ();
}
#endif
inline errcode ExprEnv::Evaluate ( const Text &expression, Data &result ) const
{
_fmxcpt _x;
errcode _rtn = FM_ExprEnv_Evaluate ( this, expression, result, _x );
_x.Check ();
return _rtn;
}
inline errcode ExprEnv::EvaluateGetFunction ( short functionValue, Data &result ) const
{
_fmxcpt _x;
errcode _rtn = FM_ExprEnv_EvaluateGetFunction ( this, functionValue, result, _x );
_x.Check ();
return _rtn;
}
inline errcode ExprEnv::EvaluateConvertToFileMakerPath ( const Text &inPath, int32 inFormat, Text &outFMPath ) const
{
_fmxcpt _x;
errcode _rtn = FM_ExprEnv_EvaluateConvertToFileMakerPath ( this, inPath, inFormat, outFMPath, _x );
_x.Check ();
return _rtn;
}
inline errcode ExprEnv::EvaluateConvertFromFileMakerPath ( const Text &inFMPath, int32 inFormat, Text &outPath ) const
{
_fmxcpt _x;
errcode _rtn = FM_ExprEnv_EvaluateConvertFromFileMakerPath ( this, inFMPath, inFormat, outPath, _x );
_x.Check ();
return _rtn;
}
inline errcode ExprEnv::ExecuteFileSQL ( const Text &expression, const Text &filename, const DataVect ¶meters, RowVect& result ) const
{
_fmxcpt _x;
errcode _rtn = FM_ExprEnv_ExecuteFileSQL ( this, expression, filename, parameters, result, _x );
_x.Check ();
return _rtn;
}
inline errcode ExprEnv::ExecuteFileSQLTextResult ( const Text &expression, const Text &filename, const DataVect ¶meters, Data &result, uint16 colSep, uint16 rowSep ) const
{
_fmxcpt _x;
errcode _rtn = FM_ExprEnv_ExecuteFileSQLTextResult ( this, expression, filename, parameters, result, colSep, rowSep, _x );
_x.Check ();
return _rtn;
}
inline errcode ExprEnv::RegisterExternalFunction ( const QuadChar &pluginId, short functionId, const Text &functionName, const Text &functionPrototype, short minArgs, short maxArgs, uint32 compatibleOnFlags, ExtPluginType funcPtr )
{
_fmxcpt _x;
errcode _rtn = FM_ExprEnv_RegisterExternalFunction ( pluginId, functionId, functionName, functionPrototype, minArgs, maxArgs, compatibleOnFlags, funcPtr, _x );
_x.Check ();
return _rtn;
}
inline errcode ExprEnv::RegisterExternalFunctionEx ( const QuadChar &pluginId, short functionId, const Text &functionName, const Text &functionPrototype, const Text &functionDescription, short minArgs, short maxArgs, uint32 compatibleOnFlags, ExtPluginType funcPtr )
{
_fmxcpt _x;
errcode _rtn = FM_ExprEnv_RegisterExternalFunctionEx ( pluginId, functionId, functionName, functionPrototype, functionDescription, minArgs, maxArgs, compatibleOnFlags, funcPtr, _x );
_x.Check ();
return _rtn;
}
inline errcode ExprEnv::UnRegisterExternalFunction ( const QuadChar &pluginId, short functionId )
{
_fmxcpt _x;
errcode _rtn = FM_ExprEnv_UnRegisterExternalFunction ( pluginId, functionId, _x );
_x.Check ();
return _rtn;
}
inline ptrtype ExprEnv::SessionID () const
{
_fmxcpt _x;
ptrtype _rtn = FM_ExprEnv_SessionID ( this, _x );
_x.Check ();
return _rtn;
}
inline ptrtype ExprEnv::FileID () const
{
_fmxcpt _x;
ptrtype _rtn = FM_ExprEnv_FileID ( this, _x );
_x.Check ();
return _rtn;
}
inline errcode ExprEnv::RegisterScriptStep ( const QuadChar &pluginId, short scriptStepId, const Text &scriptStepName, const Text &scriptStepDefinition, const Text &scriptStepDescription, uint32 compatibleOnFlags, ExtPluginType funcPtr )
{
_fmxcpt _x;
errcode _rtn = FM_ExprEnv_RegisterScriptStep ( pluginId, scriptStepId, scriptStepName, scriptStepDefinition, scriptStepDescription, compatibleOnFlags, funcPtr, _x );
_x.Check ();
return _rtn;
}
inline errcode ExprEnv::UnRegisterScriptStep ( const QuadChar &pluginId, short scriptStepId )
{
_fmxcpt _x;
errcode _rtn = FM_ExprEnv_UnRegisterScriptStep ( pluginId, scriptStepId, _x );
_x.Check ();
return _rtn;
}
inline void ExprEnv::operator delete ( void *obj )
{
_fmxcpt _x;
FM_ExprEnv_Delete ( obj, _x );
_x.Check ();
}
#if FMX_USE_AUTO_PTR
inline ExprEnvAutoPtr::ExprEnvAutoPtr ()
{
_fmxcpt _x;
reset ( FM_ExprEnv_Constructor1 ( _x ) );
_x.Check ();
}
#endif
#if FMX_USE_UNIQUE_PTR
inline ExprEnvUniquePtr::ExprEnvUniquePtr ()
{
_fmxcpt _x;
reset ( FM_ExprEnv_Constructor1 ( _x ) );
_x.Check ();
}
#endif
}
}
#endif