text: //-----------------------------------------------------------------------------------
  /*
  	ShitsuKanBlur for VS2010
  */
  //-----------------------------------------------------------------------------------
  
  #pragma once
  #ifndef FSENRTY_H
  #define FSENRTY_H
  
  #include "Fs_Target.h"
  
  #include "AEConfig.h"
  #include "entry.h"
  
  //#include "PrSDKAESupport.h"
  #include "AE_Effect.h"
  #include "AE_EffectCB.h"
  #include "AE_EffectCBSuites.h"
  #include "AE_Macros.h"
  #include "AEGP_SuiteHandler.h"
  #include "String_Utils.h"
  #include "Param_Utils.h"
  #include "Smart_Utils.h"
  
  #if defined(PF_AE100_PLUG_IN_VERSION)
  	#include "AEFX_SuiteHelper.h"
  	#define refconType void*
  #else
  	#include "PF_Suite_Helper.h"
  	#define refconType A_long
  #endif
  
  #ifdef AE_OS_WIN
  	#include <Windows.h>
  #endif
  
  //-----------------------------------------------------------------------------------
  static PF_Err 
  About (	
  	PF_InData		*in_data,
  	PF_OutData		*out_data,
  	PF_ParamDef		*params[],
  	PF_LayerDef		*output )
  {
  	PF_Err	err				= PF_Err_NONE;
  	CFsAE ae;
  	err = ae.About(in_data,out_data,params,output);
  	return err;
  }
  
  //-----------------------------------------------------------------------------------
  static PF_Err 
  GlobalSetup (
  	PF_InData		*in_data,
  	PF_OutData		*out_data,
  	PF_ParamDef		*params[],
  	PF_LayerDef		*output )
  {
  	PF_Err	err				= PF_Err_NONE;
  	CFsAE ae;
  	err = ae.GlobalSetup(in_data,out_data,params,output);
  	return err;
  }
  //-------------------------------------------------------------------------------------------------
  static PF_Err GlobalSetdown(
  	PF_InData	*in_data)
  {
  	PF_Err	err				= PF_Err_NONE;
  	CFsAE ae;
  	err = ae.GlobalSetdown(in_data);
  	return PF_Err_NONE;
  }
  
  //-------------------------------------------------------------------------------------------------
  static PF_Err SequenceSetup (
  	PF_InData		*in_data,
  	PF_OutData		*out_data,
  	PF_ParamDef		*params[],
  	PF_LayerDef		*output )
  {
  
  	return PF_Err_NONE;
  }
  //-------------------------------------------------------------------------------------------------
  static PF_Err SequenceSetdown (
  	PF_InData		*in_data,
  	PF_OutData		*out_data,
  	PF_ParamDef		*params[],
  	PF_LayerDef		*output )
  {
  	return PF_Err_NONE;
  }
  
  
  //-------------------------------------------------------------------------------------------------
  static PF_Err SequenceResetup (
  	PF_InData		*in_data,
  	PF_OutData		*out_data,
  	PF_ParamDef		*params[],
  	PF_LayerDef		*output )
  {
  	return PF_Err_NONE;
  }
  /*
  //-------------------------------------------------------------------------------------------------
  static PF_Err
  HandleChangedParam(
  	PF_InData					*in_data,
  	PF_OutData					*out_data,
  	PF_ParamDef					*params[],
  	PF_LayerDef					*outputP,
  	PF_UserChangedParamExtra	*extraP)
  {
  	PF_Err				err					= PF_Err_NONE;
  	return err;
  }
  */
  /*
  //-----------------------------------------------------------------------------------
  static PF_Err
  QueryDynamicFlags(	
  	PF_InData		*in_data,	
  	PF_OutData		*out_data,	
  	PF_ParamDef		*params[],	
  	void			*extra)	
  {
  	PF_Err 	err 	= PF_Err_NONE;
  	return err;
  }
  */
  //-----------------------------------------------------------------------------------
  static PF_Err 
  RespondtoAEGP ( 	
  	PF_InData		*in_data,
  	PF_OutData		*out_data,
  	PF_ParamDef		*params[],
  	PF_LayerDef		*output,
  	void*			extraP)
  {
  	PF_Err			err = PF_Err_NONE;
  	
  	AEGP_SuiteHandler suites(in_data->pica_basicP);
  	
  	suites.ANSICallbacksSuite1()->sprintf(	out_data->return_msg, 
  											"%s",	
  											reinterpret_cast<A_char*>(extraP));
  
  	return err;
  }
  //-----------------------------------------------------------------------------------
  DllExport	PF_Err 
  EntryPointFunc (
  	PF_Cmd			cmd,
  	PF_InData		*in_data,
  	PF_OutData		*out_data,
  	PF_ParamDef		*params[],
  	PF_LayerDef		*output,
  	void			*extraP)
  {
  	PF_Err		err = PF_Err_NONE;
  	
  	try
  	{
  		CFsAE ae;
  		switch (cmd) {
  			case PF_Cmd_ABOUT:
  				err = About(in_data,out_data,params,output);
  				break;
  			case PF_Cmd_GLOBAL_SETUP:
  				err = GlobalSetup(	in_data,out_data,params,output);
  				break;
  			case PF_Cmd_GLOBAL_SETDOWN:
  				err = GlobalSetdown(in_data);
  				break;
  			case PF_Cmd_PARAMS_SETUP:
  				err = ParamsSetup(	in_data,out_data,params,output);
  				break;
  			case PF_Cmd_SEQUENCE_SETUP:
  				err = SequenceSetup(in_data,out_data,params,output);
  				break;
  			case PF_Cmd_SEQUENCE_SETDOWN:
  				err = SequenceSetdown(in_data,out_data,params,output);
  				break;
  			case PF_Cmd_SEQUENCE_RESETUP:
  				err = SequenceResetup(in_data,out_data,params,output);
  				break;
  			case PF_Cmd_RENDER:
  					err = Render(in_data,out_data,params,output);
  					break;
  #if defined(SUPPORT_SMARTFX)
  			case PF_Cmd_SMART_PRE_RENDER:
  				err = PreRender(in_data,out_data,reinterpret_cast<PF_PreRenderExtra*>(extraP));
  				break;
  			case PF_Cmd_SMART_RENDER:
  				err = SmartRender(	in_data,out_data,reinterpret_cast<PF_SmartRenderExtra*>(extraP));
  				break;
  #endif
  			case PF_Cmd_COMPLETELY_GENERAL:
  				err = RespondtoAEGP(in_data,out_data,params,output,extraP);
  				break;
  			case PF_Cmd_DO_DIALOG:
  				//err = PopDialog(in_data,out_data,params,output);
  				break;		
  			case PF_Cmd_USER_CHANGED_PARAM:
  				err = HandleChangedParam(	in_data,
  											out_data,
  											params,
  											output, 
  											reinterpret_cast<PF_UserChangedParamExtra*>(extraP));
  				break;
  			case PF_Cmd_QUERY_DYNAMIC_FLAGS:
  				err = QueryDynamicFlags(in_data,
  										out_data,
  										params,
  										reinterpret_cast<PF_UserChangedParamExtra*>(extraP));
  				break;
  		}
  	}
  	catch(PF_Err &thrown_err){
  		err = thrown_err;
  	}
  	return err;
  }
  
  //-------------------------------------------------------------------------------------------------
  #endif