define_external_functions.h

Go to the documentation of this file.
00001 /*  
00002  *      def_extern_functions.h - macros for reference extern declarations
00003  *                                  for MAXScript functions
00004  *
00005  *  This will typically be used along with protocol definition files in 
00006  *  the code wants to reference MAXScript core function objects.
00007  *
00008  *  see def_abstract_functions.h for more info.
00009  *
00010  *  
00011  *  Copyright � John Wainwright 1996
00012  *
00013  */
00014 
00015 /* def_generic macro for extern declarations */
00016 
00017 #ifdef def_generic
00018 #   undef def_generic
00019 #   undef def_node_generic
00020 #   undef def_mapped_generic
00021 #   undef def_visible_generic
00022 #   undef def_struct_generic
00023 #   undef def_generic_debug_ok
00024 #   undef def_node_generic_debug_ok
00025 #   undef def_mapped_generic_debug_ok
00026 #   undef def_visible_generic_debug_ok
00027 #   undef def_struct_generic_debug_ok
00028 #   undef use_generic
00029 #   undef def_primitive
00030 #   undef def_mapped_primitive
00031 #   undef def_lazy_primitive
00032 #   undef def_visible_lazy_primitive
00033 #   undef def_visible_primitive
00034 #   undef def_struct_primitive
00035 #   undef def_primitive_debug_ok
00036 #   undef def_mapped_primitive_debug_ok
00037 #   undef def_lazy_primitive_debug_ok
00038 #   undef def_visible_lazy_primitive_debug_ok
00039 #   undef def_visible_primitive_debug_ok
00040 #   undef def_struct_primitive_debug_ok
00041 #   undef def_property
00042 #   undef def_property_alias
00043 #   undef def_2_prop_path
00044 #   undef def_2_prop_path_alias
00045 #   undef def_nested_prop
00046 #   undef def_nested_prop_alias
00047 #endif
00048 
00049 #define def_generic(fn, name)   \
00050     extern Generic fn##_gf
00051 #define def_visible_generic(fn, name) def_generic(fn, name)
00052 #define def_struct_generic(fn, name) def_generic(fn, name)
00053 #define def_node_generic(fn, name) def_generic(fn, name)
00054 #define def_mapped_generic(fn, name) def_generic(fn, name)
00055 #define use_generic(fn, name) def_generic(fn, name)
00056 
00057 #define def_generic_debug_ok(fn, name) def_generic(fn, name)
00058 #define def_visible_generic_debug_ok(fn, name) def_generic(fn, name)
00059 #define def_struct_generic_debug_ok(fn, name) def_generic(fn, name)
00060 #define def_node_generic_debug_ok(fn, name) def_generic(fn, name)
00061 #define def_mapped_generic_debug_ok(fn, name) def_generic(fn, name)
00062 
00063 #define def_primitive(fn, name) \
00064     extern Primitive fn##_pf
00065 
00066 #define def_lazy_primitive(fn, name) def_primitive(fn, name)
00067 #define def_visible_lazy_primitive(fn, name) def_primitive(fn, name)
00068 #define def_visible_primitive(fn, name) def_primitive(fn, name)
00069 #define def_mapped_primitive(fn, name) def_primitive(fn, name)
00070 #define def_struct_primitive(fn, _struct, name) def_primitive(fn, name)
00071 
00072 #define def_primitive_debug_ok(fn, name) def_primitive(fn, name)
00073 #define def_lazy_primitive_debug_ok(fn, name) def_primitive(fn, name)
00074 #define def_visible_lazy_primitive_debug_ok(fn, name) def_primitive(fn, name)
00075 #define def_visible_primitive_debug_ok(fn, name) def_primitive(fn, name)
00076 #define def_mapped_primitive_debug_ok(fn, name) def_primitive(fn, name)
00077 #define def_struct_primitive_debug_ok(fn, _struct, name) def_primitive(fn, name)
00078 
00079 #undef def_name
00080 #define def_name(name)  extern ScripterExport Value* n_##name;  
00081     
00082 #undef def_marker
00083 #define def_marker(var, str) extern ScripterExport Name var;
00084