_plugin_registerexprfunctionex

This function registers an expression function defined by a plugin, so that users can use it in expressions. Unlike _plugin_registerexprfunction, this function can also register expression functions that process string argument types.

bool _plugin_registerexprfunctionex( int pluginHandle, //plugin handle const char* name, //name of expresison function const ValueType & returnType, //type of return value const ValueType* argTypes, //type of arguments size_t argc, //number of arguments CBPLUGINEXPRFUNCTIONEX cbFunction, //callback function void* userdata //user data );

参数

pluginHandle:调用插件的句柄。
name:Name of expresison function.
returnType:Type of return value. The definition of ValueType is
typedef enum { ValueTypeNumber, ValueTypeString, ValueTypeAny, // Cannot be used for values, only for argTypes (to accept any type) } ValueType;
argTypes:Array of types of arguments
argc:Number of arguments of expression function.
cbFunction:回调,其类型定义如下:
typedef struct { const char* ptr; // Should be allocated with BridgeAlloc bool isOwner; // When set to true BridgeFree will be called on ptr } StringValue; typedef struct { ValueType type; duint number; StringValue string; } ExpressionValue; typedef bool(*CBPLUGINEXPRFUNCTIONEX)(ExpressionValue* result, int argc, const ExpressionValue* argv, void* userdata);
userdata:A pointer value passed to the callback, may be used by plugin to pass additional information.

Return Values

Return true when the registration is successful, otherwise return false.