package 
{
	import com.adobe.csawlib.indesign.InDesign;
	import com.adobe.indesign.*;
	
	public class ApacheFXGInDesign
	{	
		public static function run():void 
		{
			var app:Application = InDesign.app;
			
			//your InDesign code here

		}
	}
}