#if !defined(__CONV_ACT_H__)
#define __CONV_ACT_H__
 
#include "..\AiBase\Specif\AiOption.h"
 
/**************************************/
#if !defined(CPA_EXPORT)
#if defined(CPA_WANTS_IMPORT)
#define CPA_EXPORT __declspec(dllimport)
#elif defined(CPA_WANTS_EXPORT)
#define CPA_EXPORT __declspec(dllexport)
#else
#define CPA_EXPORT
#endif /*CPA_WANTS_IMPORT || CPA_WANTS_EXPORT*/
#endif /*CPA_EXPORT*/
/**************************************/
#undef extern
#define EXTERN_AI_DLL extern
 
/************************************************************************************************************************/
/* Meta-Action for editor and/or debugger + readrule.c*/
EXTERN_AI_DLL CPA_EXPORT char *szGetMetaActionTypeInParamFromId(enum tdeMetaActionId_ eMetaActionId);
 
#if defined(ACTIVE_EDITOR)
	EXTERN_AI_DLL CPA_EXPORT char *szGetMetaActionTypeOutParamFromId(enum tdeMetaActionId_ eMetaActionId);
	EXTERN_AI_DLL CPA_EXPORT enum tdeMetaActionId_ fn_eFindMetaActionIdFromEditorName(char *szMetaAction);
	EXTERN_AI_DLL CPA_EXPORT char *szFindMetaActionEditorNameFromId(enum tdeMetaActionId_ eMetaActionId);
#endif /* ACTIVE_EDITOR*/
 
EXTERN_AI_DLL CPA_EXPORT char *szFindMetaActionScriptNameFromId(enum tdeMetaActionId_ eMetaActionId);
EXTERN_AI_DLL CPA_EXPORT enum tdeMetaActionId_ fn_eFindMetaActionIdFromScriptName(char *szMetaAction);
EXTERN_AI_DLL CPA_EXPORT enum tdeMetaActionId_ fn_eGetNbMetaAction(void);
#define M_IsMetaActionIdValid(eMetaActionId) ((eMetaActionId)<fn_eGetNbMetaAction())
 
#if defined(_AI_LIB_)
tdp_fn_p_stMetaActionInitFunctionPtr fn_p_fn_pGetMetaActionInitFunctionPtr(enum tdeMetaActionId_ eMetaActionId);
tdp_fn_ucMetaActionFunctionPtr fn_p_fn_pGetMetaActionFunctionPtr(enum tdeMetaActionId_ eMetaActionId);
#endif /* _AI_LIB_*/
 
#if !defined(OPTIMIZED_COMMAND)
        
	#if defined(ACTIVE_EDITOR)
		#define M_METAACTION_ENTRY(a,b,english,c,d,e,f) a,b,english,c,d,e,f
		void fn_vDefineMetaActionEntry(enum tdeMetaActionId_ eMetaActionId,char *szMetaActionEditorName,char *szMetaActionEditorName_En,char *szMetaActionScriptName,tdp_fn_p_stMetaActionInitFunctionPtr p_fn_p_stMetaActionInitFunction,tdp_fn_ucMetaActionFunctionPtr p_fn_ucMetaActionFunction,char *szMetaActionTypeParam);
	#elif defined(_AI_LIB_)
		#define M_METAACTION_ENTRY(a,b,english,c,d,e,f) a,c,d,e,f
		void fn_vDefineMetaActionEntry(enum tdeMetaActionId_ eMetaActionId,char *szMetaActionScriptName,tdp_fn_p_stMetaActionInitFunctionPtr p_fn_p_stMetaActionInitFunction,tdp_fn_ucMetaActionFunctionPtr p_fn_ucMetaActionFunction,char *szMetaActionTypeParam);
	#endif
 
	#if defined(__DEBUG_AI__)
		void fn_vInitMetaActionTable(tdp_fn_p_stMetaActionInitFunctionPtr fn_p_stDefaultActionInitFunctionPointer,tdp_fn_ucMetaActionFunctionPtr fn_ucDefaultActionFunctionPointer);
		void fn_vCheckMetaActionTable(tdp_fn_p_stMetaActionInitFunctionPtr fn_p_stDefaultActionInitFunctionPointer,tdp_fn_ucMetaActionFunctionPtr fn_ucDefaultActionFunctionPointer);
	#endif /* __DEBUG_AI__*/
#endif /* OPTIMIZED_COMMAND*/
 
/*******************************************************************************/
#undef EXTERN_AI_DLL
 
#endif /* __CONV_ACT_H__*/
