/*************************************************************************
 * WARNING! This file was automatically generated by cpp-to-c (2009/03/08)
 * Avoid editing it since it is likely going to be overwritten.
 *************************************************************************/

/* include/sswf/libsswf_c.h -- written by Alexis WILKE for Made to Order Software Corp. (c) 2006-2009 */

/*

Copyright (c) 2006-2009 Made to Order Software Corp.

Permission is hereby granted, free of charge, to any
person obtaining a copy of this software and
associated documentation files (the "Software"), to
deal in the Software without restriction, including
without limitation the rights to use, copy, modify,
merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom
the Software is furnished to do so, subject to the
following conditions:

The above copyright notice and this permission notice
shall be included in all copies or substantial
portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

*/

#include <stdlib.h>
#include <stdarg.h>
#if IRIX
#include <inttypes.h>
#endif
#include <sswf/libsswf-config.h>

#if defined(__cplusplus)
extern "C" {
#endif
/* Typedef's */
typedef signed long		sswf_ucs4_t;
typedef unsigned short		sswf_id_t;
typedef long			swf_type_t;
typedef unsigned short		sswf_frame_t;

#ifndef	M_PI
#define	M_PI		3.14159265358979323846
#endif

/* Objects */
struct SSWF_ErrorManager;
struct SSWF_ItemBase;
struct SSWF_Vectors;
struct SSWF_Data;
struct SSWF_SRectangle;
struct SSWF_Color;
struct SSWF_ColorTransform;
struct SSWF_Matrix;
struct SSWF_Envelope;
struct SSWF_SoundInfo;
struct SSWF_BlendMode;
struct SSWF_State;
struct SSWF_Event;
struct SSWF_Style;
struct SSWF_Edges;
struct SSWF_TagBase;
struct SSWF_TagHeader;
struct SSWF_Action;
struct SSWF_ActionBranch;
struct SSWF_ActionCallFrame;
struct SSWF_ActionDictionary;
struct SSWF_ActionFunction;
struct SSWF_ActionGoto;
struct SSWF_ActionLabel;
struct SSWF_ActionPushData;
struct SSWF_ActionSetTarget;
struct SSWF_ActionStoreRegister;
struct SSWF_ActionStrictMode;
struct SSWF_ActionTry;
struct SSWF_ActionURL;
struct SSWF_ActionWaitForFrame;
struct SSWF_ActionWith;
struct SSWF_TagDoAction;
struct SSWF_TagMetadata;
struct SSWF_TagPlace;
struct SSWF_TagRemove;
struct SSWF_TagSceneFrameData;
struct SSWF_TagScriptLimits;
struct SSWF_TagSetTabIndex;
struct SSWF_TagSetBackgroundColor;
struct SSWF_TagShowFrame;
struct SSWF_TagEnd;
struct SSWF_TagFrameLabel;
struct SSWF_TagExport;
struct SSWF_TagImport;
struct SSWF_TagProtect;
struct SSWF_TagProductInfo;
struct SSWF_TagInfo;
struct SSWF_TagStartSound;
struct SSWF_TagScalingGrid;
struct SSWF_TagBaseID;
struct SSWF_TagBinaryData;
struct SSWF_TagButton;
struct SSWF_TagCSMTextSettings;
struct SSWF_TagFont;
struct SSWF_TagEditText;
struct SSWF_TagImage;
struct SSWF_TagShape;
struct SSWF_TagSound;
struct SSWF_TagSprite;
struct SSWF_TagText;

/* Enumerations */
  /* ErrorManager */
enum sswf_error_code_t
{
	ERROR_CODE_NONE = 0,
	ERROR_CODE_ACTION_OVERFLOW,
	ERROR_CODE_ALPHA_MISMATCH,
	ERROR_CODE_BAD_STATE_FLAGS,
	ERROR_CODE_BUTTON_MISSING_STATE,
	ERROR_CODE_CANNOT_CHANGE_STYLE,
	ERROR_CODE_CHILDREN_NOT_SUPPORTED,
	ERROR_CODE_COMPRESSED_SOUND_8BITS,
	ERROR_CODE_EMPTY_POSITION_RANGE,
	ERROR_CODE_ENDED_ACTION_SCRIPT,
	ERROR_CODE_ENHANCED_LINE_REQUIRES_ALPHA,
	ERROR_CODE_ENVELOPE_EXISTS,
	ERROR_CODE_ENVELOPE_OVERFLOW,
	ERROR_CODE_FILE_NOT_FOUND,
	ERROR_CODE_FORMAT_LOCKED,
	ERROR_CODE_GLYPH_DEFINED_TWICE,
	ERROR_CODE_ICONV_ENCODER_NOT_AVAILABLE,
	ERROR_CODE_ICONV_FAILED,
	ERROR_CODE_IO,
	ERROR_CODE_INCOMPATIBLE_CHILD,
	ERROR_CODE_INCOMPATIBLE_MORPH,
	ERROR_CODE_INTERNAL_ERROR,
	ERROR_CODE_INVALID_DEPTH,
	ERROR_CODE_INVALID_EM_SQUARE,
	ERROR_CODE_INVALID_FILL_PARAMETER,
	ERROR_CODE_INVALID_FOCAL,
	ERROR_CODE_INVALID_GLYPH,
	ERROR_CODE_INVALID_IDENTIFIER,
	ERROR_CODE_INVALID_IMAGE,
	ERROR_CODE_INVALID_INTERPOLATION_MODE,
	ERROR_CODE_INVALID_LINE_INFO,
	ERROR_CODE_INVALID_MORPH_INDEX,
	ERROR_CODE_INVALID_OBJECT_EXPORTED,
	ERROR_CODE_INVALID_POSITION,
	ERROR_CODE_INVALID_SHAPE,
	ERROR_CODE_INVALID_SPREAD_MODE,
	ERROR_CODE_INVALID_STYLE,
	ERROR_CODE_INVALID_TEXT_SETUP,
	ERROR_CODE_JPEG,
	ERROR_CODE_LOOP_ZERO,
	ERROR_CODE_MISSING_FRAME_NAME,
	ERROR_CODE_MISSING_SHAPE,
	ERROR_CODE_MORPH_GRADIENT_LIMIT,
	ERROR_CODE_MORPH_REQUIRES_ALPHA,
	ERROR_CODE_NAME_TOO_LONG,
	ERROR_CODE_NEGATIVE_MITER,
	ERROR_CODE_NO_FOCAL_WITH_MORPH,
	ERROR_CODE_NO_HEADER,
	ERROR_CODE_NO_STATES,
	ERROR_CODE_NO_SUCH_GLYPH,
	ERROR_CODE_LABEL_NOT_FOUND,
	ERROR_CODE_LABEL_OVERFLOW,
	ERROR_CODE_MORPH_MISMATCH,
	ERROR_CODE_OBJECT_NOT_FOUND,
	ERROR_CODE_REGISTER_OVERFLOW,
	ERROR_CODE_SIZE_MISMATCH,
	ERROR_CODE_START_SOUND_NO_INFO,
	ERROR_CODE_TOO_MANY_STYLES,
	ERROR_CODE_TWO_OR_MORE_JPEGTABLES,
	ERROR_CODE_TWO_OR_MORE_METADATA,
	ERROR_CODE_UNEXPECTED_EVENT_FLAG,
	ERROR_CODE_UNKNOWN_FORMAT,
	ERROR_CODE_UNKNOWN_OBJECT_EXPORTED,
	ERROR_CODE_UNSUPPORTED_IMAGE_FORMAT,
	ERROR_CODE_UNSUPPORTED_SOUND_FORMAT,
	ERROR_CODE_VERSION_UNSATISFIED,
	ERROR_CODE_VOLUME_OUT_OF_RANGE,
	ERROR_CODE_max
};
  /* BlendMode */
enum sswf_blend_mode_t
{
	BLEND_MODE_UNDEFINED	= -1,
	BLEND_MODE_NORMAL	= 1,
	BLEND_MODE_LAYER	= 2,
	BLEND_MODE_MULTIPLY	= 3,
	BLEND_MODE_SCREEN	= 4,
	BLEND_MODE_LIGHTEN	= 5,
	BLEND_MODE_DARKEN	= 6,
	BLEND_MODE_DIFFERENCE	= 7,
	BLEND_MODE_ADD		= 8,
	BLEND_MODE_SUBTRACT	= 9,
	BLEND_MODE_INVERT	= 10,
	BLEND_MODE_ALPHA	= 11,
	BLEND_MODE_ERASE	= 12,
	BLEND_MODE_OVERLAY	= 13,
	BLEND_MODE_HARDLIGHT	= 14
};
  /* State */
enum sswf_state_flags_t
{
	STATE_FLAG_UP		= 0x01,
	STATE_FLAG_OVER		= 0x02,
	STATE_FLAG_DOWN		= 0x04,
	STATE_FLAG_HIT_TEST	= 0x08,
	STATE_ALL_FLAGS		= 0x0F
};
  /* Event */
enum sswf_event_flag_t
{
	EVENT_COND_MENU_LEAVE		= 0x80000000,
	EVENT_COND_MENU_ENTER		= 0x40000000,
	EVENT_CONSTRUCT			= 0x00040000,
	EVENT_KEY_PRESS			= 0x00020000,
	EVENT_POINTER_DRAG_LEAVE	= 0x00010000,
	EVENT_POINTER_DRAG_ENTER	= 0x00008000,
	EVENT_POINTER_LEAVE		= 0x00004000,
	EVENT_POINTER_ENTER		= 0x00002000,
	EVENT_POINTER_RELEASE_OUTSIDE	= 0x00001000,
	EVENT_POINTER_RELEASE_INSIDE	= 0x00000800,
	EVENT_POINTER_PUSH		= 0x00000400,
	EVENT_INITIALIZE		= 0x00000200,
	EVENT_DATA			= 0x00000100,
	EVENT_KEY_UP			= 0x00000080,
	EVENT_KEY_DOWN			= 0x00000040,
	EVENT_POINTER_UP		= 0x00000020,
	EVENT_POINTER_DOWN		= 0x00000010,
	EVENT_POINTER_MOVE		= 0x00000008,
	EVENT_UNLOAD			= 0x00000004,
	EVENT_ENTER_FRAME		= 0x00000002,
	EVENT_ONLOAD			= 0x00000001
};
enum sswf_condition_flag_t
{
	CONDITION_KEY_MASK			= 0xFE00,
	CONDITION_KEY_SHIFT			= 9,
	CONDITION_MENU_LEAVE			= 0x0100,
	CONDITION_MENU_ENTER			= 0x0080,
	CONDITION_POINTER_RELEASE_OUTSIDE	= 0x0040,
	CONDITION_POINTER_DRAG_ENTER		= 0x0020,
	CONDITION_POINTER_DRAG_LEAVE		= 0x0010,
	CONDITION_POINTER_RELEASE_INSIDE	= 0x0008,
	CONDITION_POINTER_PUSH			= 0x0004,
	CONDITION_POINTER_LEAVE			= 0x0002,
	CONDITION_POINTER_ENTER			= 0x0001
};
enum sswf_key_code_t
{
	KEY_CODE_NONE		= 0,
	KEY_CODE_LEFT_ARROW	= 1,
	KEY_CODE_RIGHT_ARROW	= 2,
	KEY_CODE_HOME		= 3,
	KEY_CODE_END		= 4,
	KEY_CODE_INSERT		= 5,
	KEY_CODE_DELETE		= 6,
	KEY_CODE_BACKSPACE	= 8,
	KEY_CODE_ENTER		= 13,
	KEY_CODE_UP_ARROW	= 14,
	KEY_CODE_DOWN_ARROW	= 15,
	KEY_CODE_PAGE_UP	= 16,
	KEY_CODE_PAGE_DOWN	= 17,
	KEY_CODE_TAB		= 18,
	KEY_CODE_ESCAPE		= 19,
	KEY_CODE_SPACE		= 20
};
  /* Style */
enum sswf_style_t
{
	STYLE_TYPE_UNKNOWN = 0,
	STYLE_TYPE_NO_LINE,
	STYLE_TYPE_NO_FILL,
	STYLE_TYPE_LINE,
	STYLE_TYPE_ENHANCED_LINE,
	STYLE_TYPE_SOLID,
	STYLE_TYPE_GRADIENT_LINEAR,
	STYLE_TYPE_GRADIENT_RADIAL,
	STYLE_TYPE_GRADIENT_FOCAL,
	STYLE_TYPE_BITMAP_TILLED,
	STYLE_TYPE_BITMAP_CLIPPED,
	STYLE_TYPE_BITMAP_HARDEDGE_TILLED,
	STYLE_TYPE_BITMAP_HARDEDGE_CLIPPED,
	STYLE_TYPE_MATRIX,
	STYLE_TYPE_max
};
enum sswf_cap_t
{
	STYLE_LINE_CAP_SAME	= -1,
	STYLE_LINE_CAP_ROUND	= 0,
	STYLE_LINE_CAP_NONE	= 1,
	STYLE_LINE_CAP_SQUARE	= 2
};
enum sswf_join_t
{
	STYLE_LINE_JOIN_UNKNOWN	= -1,
	STYLE_LINE_JOIN_ROUND	= 0,
	STYLE_LINE_JOIN_BEVEL	= 1,
	STYLE_LINE_JOIN_MITER	= 2
};
enum sswf_spread_t
{
	STYLE_GRADIENT_SPREAD_PAD	= 0,
	STYLE_GRADIENT_SPREAD_REFLECT	= 1,
	STYLE_GRADIENT_SPREAD_REPEAT	= 2
};
enum sswf_interpolation_t
{
	STYLE_GRADIENT_INTERPOLATION_NORMAL	= 0,
	STYLE_GRADIENT_INTERPOLATION_LINEAR	= 1
};
  /* Edges */
  /* TagBase */
enum sswf_swf_tag_t
{
	SWF_TAG_UNKNOWN				= -1,
	SWF_TAG_END				= 0,
	SWF_TAG_SHOW_FRAME			= 1,
	SWF_TAG_DEFINE_SHAPE			= 2,
	SWF_TAG_PLACE_OBJECT			= 4,
	SWF_TAG_REMOVE_OBJECT			= 5,
	SWF_TAG_DEFINE_BITS			= 6,
	SWF_TAG_DEFINE_BITS_JPEG		= 6,
	SWF_TAG_DEFINE_BUTTON			= 7,
	SWF_TAG_JPEG_TABLES			= 8,
	SWF_TAG_SET_BACKGROUND_COLOR		= 9,
	SWF_TAG_DEFINE_FONT			= 10,
	SWF_TAG_DEFINE_TEXT			= 11,
	SWF_TAG_DO_ACTION			= 12,
	SWF_TAG_DEFINE_FONT_INFO		= 13,
	SWF_TAG_DEFINE_SOUND			= 14,
	SWF_TAG_START_SOUND			= 15,
	SWF_TAG_STOP_SOUND			= 16,
	SWF_TAG_DEFINE_BUTTON_SOUND		= 17,
	SWF_TAG_SOUND_STREAM_HEAD		= 18,
	SWF_TAG_SOUND_STREAM_BLOCK		= 19,
	SWF_TAG_DEFINE_BITS_LOSSLESS		= 20,
	SWF_TAG_DEFINE_BITS_JPEG2		= 21,
	SWF_TAG_DEFINE_SHAPE2			= 22,
	SWF_TAG_DEFINE_BUTTON_COLOR_TRANSFORM	= 23,
	SWF_TAG_PROTECT				= 24,
	SWF_TAG_PLACE_OBJECT2			= 26,
	SWF_TAG_REMOVE_OBJECT2			= 28,
	SWF_TAG_DEFINE_SHAPE3			= 32,
	SWF_TAG_DEFINE_TEXT2			= 33,
	SWF_TAG_DEFINE_BUTTON2			= 34,
	SWF_TAG_DEFINE_BITS_JPEG3		= 35,
	SWF_TAG_DEFINE_BITS_LOSSLESS2		= 36,
	SWF_TAG_DEFINE_SPRITE			= 39,
	SWF_TAG_PRODUCT_INFO			= 41,
	SWF_TAG_FRAME_LABEL			= 43,
	SWF_TAG_DEFINE_BEHAVIOR			= 44,
	SWF_TAG_SOUND_STREAM_HEAD2		= 45,
	SWF_TAG_DEFINE_MORPH_SHAPE		= 46,
	SWF_TAG_DEFINE_FONT2			= 48,
	SWF_TAG_DEFINE_INFO			= 49,
	SWF_TAG_TEXT_FIELD			= 37,
	SWF_TAG_DEFINE_FUNCTION			= 53,
	SWF_TAG_PLACE_FUNCTION			= 54,
	SWF_TAG_GENERATE_TAG_OBJECT		= 55,
	SWF_TAG_EXPORT				= 56,
	SWF_TAG_IMPORT				= 57,
	SWF_TAG_PROTECT_DEBUG			= 58,
	SWF_TAG_DO_INIT_ACTION			= 59,
	SWF_TAG_DEFINE_VIDEO_STREAM		= 60,
	SWF_TAG_VIDEO_FRAME			= 61,
	SWF_TAG_DEFINE_FONT_INFO2		= 62,
	SWF_TAG_DEBUG_ID			= 63,
	SWF_TAG_PROTECT_DEBUG2			= 64,
	SWF_TAG_SCRIPT_LIMITS			= 65,
	SWF_TAG_SET_TAB_INDEX			= 66,
	SWF_TAG_FILE_ATTRIBUTES			= 69,
	SWF_TAG_PLACE_OBJECT3			= 70,
	SWF_TAG_IMPORT2				= 71,
	SWF_TAG_DEFINE_FONT_ALIGN_ZONES		= 73,
	SWF_TAG_CSM_TEXT_SETTINGS		= 74,
	SWF_TAG_DEFINE_FONT3			= 75,
	SWF_TAG_METADATA			= 77,
	SWF_TAG_DEFINE_SCALING_GRID		= 78,
	SWF_TAG_DEFINE_SHAPE4			= 83,
	SWF_TAG_DEFINE_MORPH_SHAPE2		= 84,
	SWF_TAG_ACTIONSCRIPT2			= 72,
	SWF_TAG_ACTIONSCRIPT2_INSTANTIATE	= 76,
	SWF_TAG_ACTIONSCRIPT2_DEFINE		= 82,
	SWF_TAG_SCENE_FRAME_DATA		= 86,
	SWF_TAG_DEFINE_BINARY_DATA		= 87,
	SWF_TAG_DEFINE_FONT_NAME		= 88,
	SWF_TAG_max
};
  /* Action */
enum sswf_action_t
{
	ACTION_UNKNOWN			= -1,
	ACTION_LABEL			= -2,
	ACTION_min			= 0x00,
	ACTION_END			= 0x00,
	ACTION_NEXT_FRAME		= 0x04,
	ACTION_PREVIOUS_FRAME		= 0x05,
	ACTION_PLAY			= 0x06,
	ACTION_STOP			= 0x07,
	ACTION_TOGGLE_QUALITY		= 0x08,
	ACTION_STOP_SOUND		= 0x09,
	ACTION_ADD			= 0x0A,
	ACTION_SUBTRACT			= 0x0B,
	ACTION_MULTIPLY			= 0x0C,
	ACTION_DIVIDE			= 0x0D,
	ACTION_EQUAL			= 0x0E,
	ACTION_LESS_THAN		= 0x0F,
	ACTION_LOGICAL_AND		= 0x10,
	ACTION_LOGICAL_OR		= 0x11,
	ACTION_LOGICAL_NOT		= 0x12,
	ACTION_STRING_EQUAL		= 0x13,
	ACTION_STRING_LENGTH		= 0x14,
	ACTION_SUB_STRING		= 0x15,
	ACTION_POP			= 0x17,
	ACTION_INTEGRAL_PART		= 0x18,
	ACTION_GET_VARIABLE		= 0x1C,
	ACTION_SET_VARIABLE		= 0x1D,
	ACTION_SET_TARGET2		= 0x20,
	ACTION_CONCATENATE		= 0x21,
	ACTION_GET_PROPERTY		= 0x22,
	ACTION_SET_PROPERTY		= 0x23,
	ACTION_DUPLICATE_SPRITE		= 0x24,
	ACTION_REMOVE_SPRITE		= 0x25,
	ACTION_TRACE			= 0x26,
	ACTION_START_DRAG		= 0x27,
	ACTION_STOP_DRAG		= 0x28,
	ACTION_STRING_LESS_THAN		= 0x29,
	ACTION_THROW			= 0x2A,
	ACTION_CAST_OBJECT		= 0x2B,
	ACTION_IMPLEMENTS		= 0x2C,
	ACTION_FSCOMMAND2		= 0x2D,
	ACTION_RANDOM			= 0x30,
	ACTION_MBSTRING_LENGTH		= 0x31,
	ACTION_ORD			= 0x32,
	ACTION_CHR			= 0x33,
	ACTION_GET_TIMER		= 0x34,
	ACTION_SUB_MBSTRING		= 0x35,
	ACTION_MBORD			= 0x36,
	ACTION_MBCHR			= 0x37,
	ACTION_DELETE			= 0x3A,
	ACTION_SET_LOCAL_VAR		= 0x3C,
	ACTION_SET_LOCAL_VARIABLE	= 0x3C,
	ACTION_CALL_FUNCTION		= 0x3D,
	ACTION_RETURN			= 0x3E,
	ACTION_MODULO			= 0x3F,
	ACTION_NEW			= 0x40,
	ACTION_DECLARE_LOCAL_VAR	= 0x41,
	ACTION_DECLARE_LOCAL_VARIABLE	= 0x41,
	ACTION_DECLARE_ARRAY		= 0x42,
	ACTION_DECLARE_OBJECT		= 0x43,
	ACTION_TYPE_OF			= 0x44,
	ACTION_GET_TARGET		= 0x45,
	ACTION_ENUMERATE		= 0x46,
	ACTION_ADD_TYPED		= 0x47,
	ACTION_LESS_THAN_TYPED		= 0x48,
	ACTION_EQUAL_TYPED		= 0x49,
	ACTION_NUMBER			= 0x4A,
	ACTION_STRING			= 0x4B,
	ACTION_DUPLICATE		= 0x4C,
	ACTION_SWAP			= 0x4D,
	ACTION_GET_MEMBER		= 0x4E,
	ACTION_SET_MEMBER		= 0x4F,
	ACTION_INCREMENT		= 0x50,
	ACTION_DECREMENT		= 0x51,
	ACTION_CALL_METHOD		= 0x52,
	ACTION_NEW_METHOD		= 0x53,
	ACTION_INSTANCE_OF		= 0x54,
	ACTION_ENUMERATE_OBJECT		= 0x55,
	ACTION_AND			= 0x60,
	ACTION_OR			= 0x61,
	ACTION_XOR			= 0x62,
	ACTION_SHIFT_LEFT		= 0x63,
	ACTION_SHIFT_RIGHT		= 0x64,
	ACTION_SHIFT_RIGHT_UNSIGNED	= 0x65,
	ACTION_STRICT_EQUAL		= 0x66,
	ACTION_GREATER_THAN_TYPED	= 0x67,
	ACTION_STRING_GREATER_THAN	= 0x68,
	ACTION_EXTENDS			= 0x69,
	ACTION_GOTO_FRAME		= 0x81,
	ACTION_URL			= 0x83,
	ACTION_STORE_REGISTER		= 0x87,
	ACTION_DECLARE_DICTIONARY	= 0x88,
	ACTION_STRICT_MODE		= 0x89,
	ACTION_WAIT_FOR_FRAME		= 0x8A,
	ACTION_SET_TARGET		= 0x8B,
	ACTION_GOTO_LABEL		= 0x8C,
	ACTION_WAIT_FOR_FRAME2		= 0x8D,
	ACTION_DECLARE_FUNCTION2	= 0x8E,
	ACTION_TRY			= 0x8F,
	ACTION_WITH			= 0x94,
	ACTION_PUSH_DATA		= 0x96,
	ACTION_BRANCH_ALWAYS		= 0x99,
	ACTION_URL2			= 0x9A,
	ACTION_DECLARE_FUNCTION		= 0x9B,
	ACTION_BRANCH_IF_TRUE		= 0x9D,
	ACTION_CALL_FRAME		= 0x9E,
	ACTION_GOTO_EXPRESSION		= 0x9F,
	ACTION_max			= 0xFF
};
  /* ActionFunction */
enum sswf_action_function_t
{
	ACTION_FUNCTION_LOAD_THIS		= 0x0001,
	ACTION_FUNCTION_SUPPRESS_THIS		= 0x0002,
	ACTION_FUNCTION_LOAD_ARGUMENTS		= 0x0004,
	ACTION_FUNCTION_SUPPRESS_ARGUMENTS	= 0x0008,
	ACTION_FUNCTION_LOAD_SUPER		= 0x0010,
	ACTION_FUNCTION_SUPPRESS_SUPER		= 0x0020,
	ACTION_FUNCTION_LOAD_ROOT		= 0x0040,
	ACTION_FUNCTION_LOAD_PARENT		= 0x0080,
	ACTION_FUNCTION_LOAD_GLOBAL		= 0x0100
};
enum sswf_as_set_prop_flags_t
{
	PROP_FLAG_IS_HIDDEN	= 1,
	PROP_FLAG_CAN_DELETE	= 2,
	PROP_FLAG_CAN_OVERWRITE	= 4
};
  /* ActionURL */
enum sswf_url_method_t
{
	URL_METHOD_UNDEFINED	= -1,
	URL_METHOD_NOVARIABLE	= 0,
	URL_METHOD_NOVARIABLES	= URL_METHOD_NOVARIABLE,
	URL_METHOD_GET		= 1,
	URL_METHOD_POST		= 2
};
  /* TagCSMTextSettings */
enum sswf_csm_text_renderer_t
{
	CSM_TEXT_RENDERER_NORMAL	= 0,
	CSM_TEXT_RENDERER_FLASH		= 1
};
enum sswf_csm_text_gridfit_t
{
	CSM_TEXT_GRIDFIT_NO_GRID	= 0,
	CSM_TEXT_GRIDFIT_PIXEL		= 1,
	CSM_TEXT_GRIDFIT_SUBPIXEL	= 2
};
  /* TagFont */
enum sswf_font_type_t
{
	FONT_TYPE_BEST = 0,
	FONT_TYPE_ASCII,
	FONT_TYPE_UNICODE,
	FONT_TYPE_SHIFTJIS
};
enum sswf_font_language_t
{
	FONT_LANGUAGE_UNKNOWN			= -1,
	FONT_LANGUAGE_LOCALE			= 0,
	FONT_LANGUAGE_LATIN			= 1,
	FONT_LANGUAGE_JAPANESE			= 2,
	FONT_LANGUAGE_KOREAN			= 3,
	FONT_LANGUAGE_SIMPLIFIED_CHINESE	= 4,
	FONT_LANGUAGE_TRADITIONAL_CHINESE	= 5,
	FONT_LANGUAGE_max			= 6
};
enum sswf_font_thickness_t
{
	FONT_THICKNESS_UNKNOWN	= -1,
	FONT_THICKNESS_THIN	= 0,
	FONT_THICKNESS_MEDIUM	= 1,
	FONT_THICKNESS_THICK	= 2,
	FONT_THICKNESS_max	= 3
};
enum sswf_font_em_size_t
{
	FONT_EM_SMALL	= 0,
	FONT_EM_LARGE	= 1
};
  /* TagEditText */
enum sswf_edit_text_alignment_t
{
	EDIT_TEXT_ALIGNMENT_LEFT	= 0,
	EDIT_TEXT_ALIGNMENT_RIGHT	= 1,
	EDIT_TEXT_ALIGNMENT_CENTER	= 2,
	EDIT_TEXT_ALIGNMENT_JUSTIFY	= 3
};
  /* TagImage */
enum sswf_image_format_t
{
	IMAGE_FORMAT_UNKNOWN = 0,
	IMAGE_FORMAT_LOSSLESS_BEST,
	IMAGE_FORMAT_LOSSLESS_8,
	IMAGE_FORMAT_LOSSLESS_16,
	IMAGE_FORMAT_LOSSLESS_32,
	IMAGE_FORMAT_JPEG,
	IMAGE_FORMAT_max
};
  /* TagShape */
enum sswf_morph_t
{
	MORPH_MODE_SHAPE0	= 0,
	MORPH_MODE_SHAPE1	= 1,
	MORPH_MODE_BOTH_SHAPES	= 2
};
enum sswf_fill_t
{
	SHAPE_FILL_EVEN	= 0,
	SHAPE_FILL_ODD	= 1
};
  /* TagSound */
enum sswf_sound_format_t
{
	SOUND_FORMAT_UNKNOWN		= -1,
	SOUND_FORMAT_RAW		= 0,
	SOUND_FORMAT_ADPCM		= 1,
	SOUND_FORMAT_MP3		= 2,
	SOUND_FORMAT_UNCOMPRESSED	= 3,
	SOUND_FORMAT_NELLYMOSER		= 6
};
enum sswf_sound_endian_t
{
	SOUND_ENDIAN_LITTLE = 0,
	SOUND_ENDIAN_BIG,
	SOUND_ENDIAN_SAME,
	SOUND_ENDIAN_DONTUSE,
	SOUND_ENDIAN_UNKNOWN
};

/* Structures */
struct sswf_event_names_t
{
	enum sswf_event_flag_t	f_flag;
	const char *	f_name;
};
struct sswf_key_names_t
{
	enum sswf_key_code_t	f_code;
	const char *	f_name;
};
struct sswf_font_info_t
{
	sswf_ucs4_t	f_glyph;
	unsigned short	f_saved_index;
	unsigned long	f_index;
	unsigned long	f_position;
	long		f_advance;
	int		f_is_empty;
};
struct sswf_image_t
{
	int		f_alpha;
	long		f_width;
	long		f_height;
	unsigned char *	f_data;
};

/* Functions */
  /* Object: ErrorManager */
extern void sswf_error_manager_destroy(struct SSWF_ErrorManager *error_manager);
extern struct SSWF_ErrorManager *sswf_error_manager_create();
extern void sswf_error_manager_reset(struct SSWF_ErrorManager *error_manager);
extern int sswf_error_manager_count(struct SSWF_ErrorManager *error_manager);
extern enum sswf_error_code_t sswf_error_manager_keep_first(enum sswf_error_code_t a, enum sswf_error_code_t b);
extern enum sswf_error_code_t sswf_error_manager_on_error(struct SSWF_ErrorManager *error_manager, enum sswf_error_code_t errcode, const char * message, va_list ap);
  /* Object: Vectors */
extern void sswf_vectors_destroy(struct SSWF_Vectors *vectors);
extern struct SSWF_Vectors *sswf_vectors_create1();
extern struct SSWF_Vectors *sswf_vectors_create2(const struct SSWF_Vectors * vector);
extern struct SSWF_ItemBase * sswf_vectors_get(struct SSWF_Vectors *vectors, int index);
extern void sswf_vectors_set(struct SSWF_Vectors *vectors, int index, struct SSWF_ItemBase * vector);
extern void sswf_vectors_insert(struct SSWF_Vectors *vectors, int index, struct SSWF_ItemBase * vector);
extern void sswf_vectors_set_size(struct SSWF_Vectors *vectors, int size);
extern int sswf_vectors_count(struct SSWF_Vectors *vectors);
extern void sswf_vectors_empty(struct SSWF_Vectors *vectors);
  /* Object: Data */
extern void sswf_data_destroy(struct SSWF_Data *data);
extern struct SSWF_Data *sswf_data_create();
extern void sswf_data_empty(struct SSWF_Data *data);
extern void sswf_data_align(struct SSWF_Data *data);
extern void sswf_data_overwrite(struct SSWF_Data *data, size_t offset, const void * ptr, size_t size);
extern void sswf_data_overwrite_byte(struct SSWF_Data *data, size_t offset, char c);
extern void sswf_data_overwrite_short(struct SSWF_Data *data, size_t offset, short s);
extern void sswf_data_overwrite_long(struct SSWF_Data *data, size_t offset, long l);
extern void sswf_data_write(struct SSWF_Data *data, const void * ptr, size_t size);
extern void sswf_data_write_bits(struct SSWF_Data *data, long value, size_t bits);
extern void sswf_data_put_byte(struct SSWF_Data *data, char c);
extern void sswf_data_put_short(struct SSWF_Data *data, short s);
extern void sswf_data_put_long(struct SSWF_Data *data, long l);
extern void sswf_data_put_dlong(struct SSWF_Data *data, int64_t ll);
extern void sswf_data_put_short_float(struct SSWF_Data *data, float f);
extern void sswf_data_put_long_float(struct SSWF_Data *data, float f);
extern void sswf_data_put_double_float(struct SSWF_Data *data, double f);
extern void sswf_data_put_string(struct SSWF_Data *data, const char * string);
extern void sswf_data_append(struct SSWF_Data *data, const struct SSWF_Data * append);
extern void sswf_data_read(struct SSWF_Data *data, void ** ptr, size_t * size);
extern unsigned long sswf_data_byte_size(struct SSWF_Data *data);
extern unsigned long sswf_data_get_size(struct SSWF_Data *data);
extern void sswf_data_set_size(struct SSWF_Data *data, unsigned long size);
  /* Object: SRectangle */
extern void sswf_srectangle_destroy(struct SSWF_SRectangle *srectangle);
extern struct SSWF_SRectangle *sswf_srectangle_create();
extern void sswf_srectangle_reset(struct SSWF_SRectangle *srectangle);
extern void sswf_srectangle_set(struct SSWF_SRectangle *srectangle, long xmin, long xmax, long ymin, long ymax);
extern void sswf_srectangle_set_reorder(struct SSWF_SRectangle *srectangle, long xmin, long xmax, long ymin, long ymax);
extern long sswf_srectangle_xmin(struct SSWF_SRectangle *srectangle);
extern long sswf_srectangle_xmax(struct SSWF_SRectangle *srectangle);
extern long sswf_srectangle_ymin(struct SSWF_SRectangle *srectangle);
extern long sswf_srectangle_ymax(struct SSWF_SRectangle *srectangle);
extern int sswf_srectangle_is_empty(struct SSWF_SRectangle *srectangle);
extern void sswf_srectangle_save(struct SSWF_SRectangle *srectangle, struct SSWF_Data * data);
  /* Object: Color */
extern void sswf_color_destroy(struct SSWF_Color *color);
extern struct SSWF_Color *sswf_color_create();
extern void sswf_color_reset(struct SSWF_Color *color);
extern void sswf_color_set(struct SSWF_Color *color, unsigned char red, unsigned char green, unsigned char blue, unsigned char alpha);
extern unsigned char sswf_color_red(struct SSWF_Color *color);
extern unsigned char sswf_color_green(struct SSWF_Color *color);
extern unsigned char sswf_color_blue(struct SSWF_Color *color);
extern unsigned char sswf_color_alpha(struct SSWF_Color *color);
extern void sswf_color_save(struct SSWF_Color *color, struct SSWF_Data * data, int save_alpha);
extern int sswf_color_is_solid(struct SSWF_Color *color);
extern int sswf_color_is_invisible(struct SSWF_Color *color);
  /* Object: ColorTransform */
extern void sswf_color_transform_destroy(struct SSWF_ColorTransform *color_transform);
extern struct SSWF_ColorTransform *sswf_color_transform_create();
extern void sswf_color_transform_reset(struct SSWF_ColorTransform *color_transform);
extern void sswf_color_transform_set_add(struct SSWF_ColorTransform *color_transform, double red, double green, double blue, double alpha);
extern void sswf_color_transform_set_mult(struct SSWF_ColorTransform *color_transform, double red, double green, double blue, double alpha);
extern double sswf_color_transform_add_red(struct SSWF_ColorTransform *color_transform);
extern double sswf_color_transform_add_green(struct SSWF_ColorTransform *color_transform);
extern double sswf_color_transform_add_blue(struct SSWF_ColorTransform *color_transform);
extern double sswf_color_transform_add_alpha(struct SSWF_ColorTransform *color_transform);
extern double sswf_color_transform_mult_red(struct SSWF_ColorTransform *color_transform);
extern double sswf_color_transform_mult_green(struct SSWF_ColorTransform *color_transform);
extern double sswf_color_transform_mult_blue(struct SSWF_ColorTransform *color_transform);
extern double sswf_color_transform_mult_alpha(struct SSWF_ColorTransform *color_transform);
extern void sswf_color_transform_save(struct SSWF_ColorTransform *color_transform, struct SSWF_Data * data, int save_alpha);
extern int sswf_color_transform_is_null(struct SSWF_ColorTransform *color_transform, int with_alpha);
extern int sswf_color_transform_is_solid_compatible(struct SSWF_ColorTransform *color_transform);
  /* Object: Matrix */
extern void sswf_matrix_destroy(struct SSWF_Matrix *matrix);
extern struct SSWF_Matrix *sswf_matrix_create();
extern void sswf_matrix_reset(struct SSWF_Matrix *matrix);
extern void sswf_matrix_set_scale1(struct SSWF_Matrix *matrix, double x, double y);
extern void sswf_matrix_set_scale2(struct SSWF_Matrix *matrix, double scale);
extern void sswf_matrix_set_rotate(struct SSWF_Matrix *matrix, double rotate);
extern void sswf_matrix_set_skew(struct SSWF_Matrix *matrix, double skew0, double skew1);
extern void sswf_matrix_set_translate(struct SSWF_Matrix *matrix, long x, long y);
extern void sswf_matrix_save(struct SSWF_Matrix *matrix, struct SSWF_Data * data);
extern int sswf_matrix_is_null(struct SSWF_Matrix *matrix);
  /* Object: Envelope */
extern struct SSWF_ItemBase *sswf_envelope_cast_item_base(struct SSWF_Envelope *envelope);
extern void sswf_envelope_destroy(struct SSWF_Envelope *envelope);
extern struct SSWF_Envelope *sswf_envelope_create1(unsigned long p, unsigned short l, unsigned short r);
extern struct SSWF_Envelope *sswf_envelope_create2(const struct SSWF_Envelope * envelope);
extern unsigned long sswf_envelope_position(struct SSWF_Envelope *envelope);
extern unsigned short sswf_envelope_left(struct SSWF_Envelope *envelope);
extern unsigned short sswf_envelope_right(struct SSWF_Envelope *envelope);
extern void sswf_envelope_save(struct SSWF_Envelope *envelope, struct SSWF_Data * data);
  /* Object: SoundInfo */
extern void sswf_sound_info_destroy(struct SSWF_SoundInfo *sound_info);
extern struct SSWF_SoundInfo *sswf_sound_info_create(struct SSWF_ErrorManager * error_manager);
extern void sswf_sound_info_set_sound_id(struct SSWF_SoundInfo *sound_info, sswf_id_t id);
extern void sswf_sound_info_stop_sound(struct SSWF_SoundInfo *sound_info, int stop);
extern void sswf_sound_info_no_multiple(struct SSWF_SoundInfo *sound_info, int no_multiple);
extern void sswf_sound_info_set_range(struct SSWF_SoundInfo *sound_info, unsigned long start, unsigned long end);
extern void sswf_sound_info_set_loop(struct SSWF_SoundInfo *sound_info, unsigned short loop);
extern void sswf_sound_info_add_envelope(struct SSWF_SoundInfo *sound_info, const struct SSWF_Envelope * envelope);
extern enum sswf_error_code_t sswf_sound_info_pre_save(struct SSWF_SoundInfo *sound_info);
extern void sswf_sound_info_save(struct SSWF_SoundInfo *sound_info, struct SSWF_Data * data);
  /* Object: BlendMode */
extern void sswf_blend_mode_destroy(struct SSWF_BlendMode *blend_mode);
extern struct SSWF_BlendMode *sswf_blend_mode_create();
extern int sswf_blend_mode_has_blend_mode(struct SSWF_BlendMode *blend_mode);
extern void sswf_blend_mode_set_blend_mode(struct SSWF_BlendMode *blend_mode, enum sswf_blend_mode_t blend_mode_value);
extern int sswf_blend_mode_set_blend_mode_by_name(struct SSWF_BlendMode *blend_mode, const char * blend_mode_name);
extern enum sswf_blend_mode_t sswf_blend_mode_get_blend_mode(struct SSWF_BlendMode *blend_mode);
extern void sswf_blend_mode_save(struct SSWF_BlendMode *blend_mode, struct SSWF_Data * data);
  /* Object: State */
extern struct SSWF_ItemBase *sswf_state_cast_item_base(struct SSWF_State *state);
extern void sswf_state_destroy(struct SSWF_State *state);
extern struct SSWF_State *sswf_state_create(struct SSWF_ErrorManager * error_manager);
extern void sswf_state_reset(struct SSWF_State *state);
extern void sswf_state_set_object_id(struct SSWF_State *state, sswf_id_t id);
extern int sswf_state_set_flags(struct SSWF_State *state, unsigned char flags);
extern void sswf_state_set_layer(struct SSWF_State *state, unsigned short layer);
extern void sswf_state_set_matrix(struct SSWF_State *state, const struct SSWF_Matrix * matrix);
extern void sswf_state_set_color_transform(struct SSWF_State *state, const struct SSWF_ColorTransform * color_transform);
extern int sswf_state_has_color_transform(struct SSWF_State *state);
extern void sswf_state_set_blend_mode(struct SSWF_State *state, const struct SSWF_BlendMode * blend_mode);
extern enum sswf_error_code_t sswf_state_save(struct SSWF_State *state, struct SSWF_Data * data, int color_transform);
extern unsigned char sswf_state_get_flags(struct SSWF_State *state);
  /* Object: Event */
extern struct SSWF_ItemBase *sswf_event_cast_item_base(struct SSWF_Event *event);
extern void sswf_event_destroy(struct SSWF_Event *event);
extern struct SSWF_Event *sswf_event_create();
extern void sswf_event_reset(struct SSWF_Event *event);
extern void sswf_event_set_events(struct SSWF_Event *event, unsigned long events);
extern void sswf_event_set_key(struct SSWF_Event *event, unsigned char key);
extern unsigned long sswf_event_events(struct SSWF_Event *event);
extern unsigned long sswf_event_conditions(struct SSWF_Event *event);
extern unsigned char sswf_event_key(struct SSWF_Event *event);
extern struct SSWF_Vectors * sswf_event_actions(struct SSWF_Event *event);
extern unsigned long sswf_event_string_to_events(const char * s);
extern unsigned char sswf_event_string_to_key_code(const char * s);
  /* Object: Style */
extern struct SSWF_ItemBase *sswf_style_cast_item_base(struct SSWF_Style *style);
extern void sswf_style_destroy(struct SSWF_Style *style);
extern struct SSWF_Style *sswf_style_create(struct SSWF_ErrorManager * error_manager);
extern void sswf_style_reset(struct SSWF_Style *style);
extern enum sswf_style_t sswf_style_type(struct SSWF_Style *style);
extern signed char sswf_style_gradients(struct SSWF_Style *style);
extern int sswf_style_has_morph(struct SSWF_Style *style);
extern int sswf_style_has_alpha(struct SSWF_Style *style);
extern int sswf_style_has_hard_edges(struct SSWF_Style *style);
extern int sswf_style_set_type(struct SSWF_Style *style, enum sswf_style_t style_type);
extern int sswf_style_set_line(struct SSWF_Style *style, int index, unsigned short width, const struct SSWF_Color * color);
extern int sswf_style_set_line_caps(struct SSWF_Style *style, enum sswf_cap_t start, enum sswf_cap_t end);
extern int sswf_style_set_line_join(struct SSWF_Style *style, enum sswf_join_t join, float miter_limit_factor);
extern int sswf_style_set_line_scale(struct SSWF_Style *style, int horiz, int vert);
extern int sswf_style_set_line_pixel_hinting(struct SSWF_Style *style, int pixel_hinting);
extern int sswf_style_set_line_no_close(struct SSWF_Style *style, int no_close);
extern int sswf_style_set_line_fill_style(struct SSWF_Style *style, const struct SSWF_Style * fill_style);
extern int sswf_style_set_color(struct SSWF_Style *style, int index, const struct SSWF_Color * color);
extern int sswf_style_set_gradient(struct SSWF_Style *style, int index, int pos, const struct SSWF_Color * color);
extern int sswf_style_set_gradient_modes(struct SSWF_Style *style, enum sswf_spread_t spread, enum sswf_interpolation_t interpolation);
extern int sswf_style_set_gradient_focal(struct SSWF_Style *style, float focal);
extern int sswf_style_set_matrix(struct SSWF_Style *style, int index, const struct SSWF_Matrix * matrix);
extern int sswf_style_set_bitmap(struct SSWF_Style *style, sswf_id_t id_ref);
extern int sswf_style_set_clipping(struct SSWF_Style *style);
extern enum sswf_error_code_t sswf_style_save(struct SSWF_Style *style, struct SSWF_Data * data, int save_alpha, int save_morph);
  /* Object: Edges */
extern struct SSWF_ItemBase *sswf_edges_cast_item_base(struct SSWF_Edges *edges);
extern void sswf_edges_destroy(struct SSWF_Edges *edges);
extern struct SSWF_Edges *sswf_edges_create();
extern void sswf_edges_set1(struct SSWF_Edges *edges, long x, long y);
extern void sswf_edges_set2(struct SSWF_Edges *edges, long x, long y, long ctrl_x, long ctrl_y);
extern void sswf_edges_set3(struct SSWF_Edges *edges, int index, long x, long y, long ctrl_x, long ctrl_y);
extern void sswf_edges_save(struct SSWF_Edges *edges, struct SSWF_Data * data, long * x, long * y);
  /* Object: TagBase */
extern void sswf_tag_base_destroy(struct SSWF_TagBase *tag_base);
extern enum sswf_error_code_t sswf_tag_base_save_string(struct SSWF_TagBase *tag_base, struct SSWF_Data * data, const char * string);
extern int sswf_tag_base_save_tag(struct SSWF_Data * data, enum sswf_swf_tag_t tag, size_t size);
extern long sswf_tag_base_sibit_size(long value);
extern long sswf_tag_base_uibit_size(unsigned long value);
extern long sswf_tag_base_double2_signed16(double value);
extern long sswf_tag_base_double2_signed(double value);
extern double sswf_tag_base_signed2_double(long value);
extern void sswf_tag_base_minimum_version(struct SSWF_TagBase *tag_base, unsigned char version);
extern unsigned char sswf_tag_base_version(struct SSWF_TagBase *tag_base);
extern const char * sswf_tag_base_name(struct SSWF_TagBase *tag_base);
extern const char * sswf_tag_base_label(struct SSWF_TagBase *tag_base);
extern void sswf_tag_base_reset_frames(struct SSWF_TagBase *tag_base);
extern void sswf_tag_base_show_frame(struct SSWF_TagBase *tag_base);
extern sswf_frame_t sswf_tag_base_frame_count(struct SSWF_TagBase *tag_base);
extern sswf_frame_t sswf_tag_base_which_frame(struct SSWF_TagBase *tag_base);
extern void sswf_tag_base_set_label(struct SSWF_TagBase *tag_base, const char * label);
extern struct SSWF_TagBase * sswf_tag_base_find_labelled_tag(struct SSWF_TagBase *tag_base, const char * label);
extern struct SSWF_TagBase * sswf_tag_base_find_tag_with_id(struct SSWF_TagBase *tag_base, sswf_id_t id, int search_import);
extern struct SSWF_TagBase * sswf_tag_base_children(struct SSWF_TagBase *tag_base);
extern struct SSWF_TagBase * sswf_tag_base_next(struct SSWF_TagBase *tag_base);
extern struct SSWF_TagBase * sswf_tag_base_previous(struct SSWF_TagBase *tag_base);
extern struct SSWF_TagBase * sswf_tag_base_parent(struct SSWF_TagBase *tag_base);
extern struct SSWF_TagHeader * sswf_tag_base_header(struct SSWF_TagBase *tag_base);
extern enum sswf_error_code_t sswf_tag_base_on_error(struct SSWF_TagBase *tag_base, enum sswf_error_code_t errcode, const char * message, va_list ap);
  /* Object: TagHeader */
extern struct SSWF_TagBase *sswf_tag_header_cast_tag_base(struct SSWF_TagHeader *tag_header);
extern struct SSWF_ErrorManager *sswf_tag_header_cast_error_manager(struct SSWF_TagHeader *tag_header);
extern void sswf_tag_header_destroy(struct SSWF_TagHeader *tag_header);
extern struct SSWF_TagHeader *sswf_tag_header_create();
extern enum sswf_error_code_t sswf_tag_header_save(struct SSWF_TagHeader *tag_header, struct SSWF_Data * data);
extern enum sswf_error_code_t sswf_tag_header_save_encoded_string(struct SSWF_TagHeader *tag_header, struct SSWF_Data * data, const char * string);
extern swf_type_t sswf_tag_header_type_flags(struct SSWF_TagHeader *tag_header);
extern enum sswf_error_code_t sswf_tag_header_on_error(struct SSWF_TagHeader *tag_header, enum sswf_error_code_t errcode, const char * message, va_list ap);
extern sswf_id_t sswf_tag_header_next_id(struct SSWF_TagHeader *tag_header);
extern void sswf_tag_header_remove_id(struct SSWF_TagHeader *tag_header, sswf_id_t id);
extern unsigned char sswf_tag_header_version(struct SSWF_TagHeader *tag_header);
extern void sswf_tag_header_set_version(struct SSWF_TagHeader *tag_header, unsigned char version);
extern void sswf_tag_header_set_minimum_version(struct SSWF_TagHeader *tag_header, unsigned char version);
extern void sswf_tag_header_set_maximum_version(struct SSWF_TagHeader *tag_header, unsigned char version);
extern void sswf_tag_header_set_compress(struct SSWF_TagHeader *tag_header, int compress);
extern void sswf_tag_header_set_auto_order(struct SSWF_TagHeader *tag_header, int auto_order);
extern void sswf_tag_header_set_use_network(struct SSWF_TagHeader *tag_header, int use_network);
extern void sswf_tag_header_set_frame(struct SSWF_TagHeader *tag_header, const struct SSWF_SRectangle * rect);
extern const struct SSWF_SRectangle * sswf_tag_header_frame(struct SSWF_TagHeader *tag_header);
extern void sswf_tag_header_set_output_encoding(struct SSWF_TagHeader *tag_header, const char * encoding);
extern void sswf_tag_header_set_rate(struct SSWF_TagHeader *tag_header, float rate);
extern float sswf_tag_header_rate(struct SSWF_TagHeader *tag_header);
  /* Object: Action */
extern struct SSWF_ItemBase *sswf_action_cast_item_base(struct SSWF_Action *action);
extern void sswf_action_destroy(struct SSWF_Action *action);
extern struct SSWF_Action *sswf_action_create(struct SSWF_TagBase * tag, enum sswf_action_t action);
extern struct SSWF_Action * sswf_action_duplicate(struct SSWF_Action *action);
extern unsigned long sswf_action_offset(struct SSWF_Action *action);
extern unsigned char sswf_action_version(struct SSWF_Action *action);
extern enum sswf_error_code_t sswf_action_save(struct SSWF_Action *action, struct SSWF_Data * data);
extern struct SSWF_Vectors * sswf_action_sub_list(struct SSWF_Action *action);
extern enum sswf_error_code_t sswf_action_save_list(struct SSWF_Action *action, const struct SSWF_Vectors * list, struct SSWF_Data * data, const struct SSWF_Vectors * extra);
extern int sswf_action_minimum_list_version(const struct SSWF_Vectors * list);
extern int sswf_action_get_maximum_register(const struct SSWF_Vectors * list);
extern struct SSWF_ActionLabel * sswf_action_find_label(const struct SSWF_Vectors * list, const char * label);
  /* Object: ActionBranch */
extern struct SSWF_Action *sswf_action_branch_cast_action(struct SSWF_ActionBranch *action_branch);
extern struct SSWF_ItemBase *sswf_action_branch_cast_item_base(struct SSWF_ActionBranch *action_branch);
extern void sswf_action_branch_destroy(struct SSWF_ActionBranch *action_branch);
extern struct SSWF_ActionBranch *sswf_action_branch_create(struct SSWF_TagBase * tag, enum sswf_action_t action);
extern void sswf_action_branch_set_label(struct SSWF_ActionBranch *action_branch, const char * label);
  /* Object: ActionCallFrame */
extern struct SSWF_Action *sswf_action_call_frame_cast_action(struct SSWF_ActionCallFrame *action_call_frame);
extern struct SSWF_ItemBase *sswf_action_call_frame_cast_item_base(struct SSWF_ActionCallFrame *action_call_frame);
extern void sswf_action_call_frame_destroy(struct SSWF_ActionCallFrame *action_call_frame);
extern struct SSWF_ActionCallFrame *sswf_action_call_frame_create(struct SSWF_TagBase * tag);
  /* Object: ActionDictionary */
extern struct SSWF_Action *sswf_action_dictionary_cast_action(struct SSWF_ActionDictionary *action_dictionary);
extern struct SSWF_ItemBase *sswf_action_dictionary_cast_item_base(struct SSWF_ActionDictionary *action_dictionary);
extern void sswf_action_dictionary_destroy(struct SSWF_ActionDictionary *action_dictionary);
extern struct SSWF_ActionDictionary *sswf_action_dictionary_create(struct SSWF_TagBase * tag);
extern void sswf_action_dictionary_add_string(struct SSWF_ActionDictionary *action_dictionary, const char * string);
  /* Object: ActionFunction */
extern struct SSWF_Action *sswf_action_function_cast_action(struct SSWF_ActionFunction *action_function);
extern struct SSWF_ItemBase *sswf_action_function_cast_item_base(struct SSWF_ActionFunction *action_function);
extern void sswf_action_function_destroy(struct SSWF_ActionFunction *action_function);
extern struct SSWF_ActionFunction *sswf_action_function_create(struct SSWF_TagBase * tag, enum sswf_action_t action);
extern void sswf_action_function_set_name(struct SSWF_ActionFunction *action_function, const char * name);
extern void sswf_action_function_set_registers_count(struct SSWF_ActionFunction *action_function, unsigned int count);
extern void sswf_action_function_add_parameter(struct SSWF_ActionFunction *action_function, const char * name, int register_number);
extern void sswf_action_function_add_action(struct SSWF_ActionFunction *action_function, struct SSWF_Action * action);
extern struct SSWF_Vectors * sswf_action_function_sub_list(struct SSWF_ActionFunction *action_function);
  /* Object: ActionGoto */
extern struct SSWF_Action *sswf_action_goto_cast_action(struct SSWF_ActionGoto *action_goto);
extern struct SSWF_ItemBase *sswf_action_goto_cast_item_base(struct SSWF_ActionGoto *action_goto);
extern void sswf_action_goto_destroy(struct SSWF_ActionGoto *action_goto);
extern struct SSWF_ActionGoto *sswf_action_goto_create(struct SSWF_TagBase * tag, enum sswf_action_t action);
extern void sswf_action_goto_set_frame_name(struct SSWF_ActionGoto *action_goto, const char * frame_name);
extern void sswf_action_goto_set_play(struct SSWF_ActionGoto *action_goto, int play);
  /* Object: ActionLabel */
extern struct SSWF_Action *sswf_action_label_cast_action(struct SSWF_ActionLabel *action_label);
extern struct SSWF_ItemBase *sswf_action_label_cast_item_base(struct SSWF_ActionLabel *action_label);
extern void sswf_action_label_destroy(struct SSWF_ActionLabel *action_label);
extern struct SSWF_ActionLabel *sswf_action_label_create(struct SSWF_TagBase * tag);
extern void sswf_action_label_set_label(struct SSWF_ActionLabel *action_label, const char * label);
extern const char * sswf_action_label_get_label(struct SSWF_ActionLabel *action_label);
  /* Object: ActionPushData */
extern struct SSWF_Action *sswf_action_push_data_cast_action(struct SSWF_ActionPushData *action_push_data);
extern struct SSWF_ItemBase *sswf_action_push_data_cast_item_base(struct SSWF_ActionPushData *action_push_data);
extern void sswf_action_push_data_destroy(struct SSWF_ActionPushData *action_push_data);
extern struct SSWF_ActionPushData *sswf_action_push_data_create(struct SSWF_TagBase * tag);
extern void sswf_action_push_data_add_empty_string(struct SSWF_ActionPushData *action_push_data);
extern void sswf_action_push_data_add_string(struct SSWF_ActionPushData *action_push_data, const char * string);
extern void sswf_action_push_data_add_true(struct SSWF_ActionPushData *action_push_data);
extern void sswf_action_push_data_add_false(struct SSWF_ActionPushData *action_push_data);
extern void sswf_action_push_data_add_boolean(struct SSWF_ActionPushData *action_push_data, int value);
extern void sswf_action_push_data_add_integer(struct SSWF_ActionPushData *action_push_data, long value);
extern void sswf_action_push_data_add_float(struct SSWF_ActionPushData *action_push_data, float value);
extern void sswf_action_push_data_add_double(struct SSWF_ActionPushData *action_push_data, double value);
extern void sswf_action_push_data_add_null(struct SSWF_ActionPushData *action_push_data);
extern void sswf_action_push_data_add_lookup(struct SSWF_ActionPushData *action_push_data, unsigned short index);
extern void sswf_action_push_data_add_register(struct SSWF_ActionPushData *action_push_data, unsigned char reg_index);
extern void sswf_action_push_data_add_undefined(struct SSWF_ActionPushData *action_push_data);
  /* Object: ActionSetTarget */
extern struct SSWF_Action *sswf_action_set_target_cast_action(struct SSWF_ActionSetTarget *action_set_target);
extern struct SSWF_ItemBase *sswf_action_set_target_cast_item_base(struct SSWF_ActionSetTarget *action_set_target);
extern void sswf_action_set_target_destroy(struct SSWF_ActionSetTarget *action_set_target);
extern struct SSWF_ActionSetTarget *sswf_action_set_target_create(struct SSWF_TagBase * tag);
extern void sswf_action_set_target_set_target(struct SSWF_ActionSetTarget *action_set_target, const char * target);
  /* Object: ActionStoreRegister */
extern struct SSWF_Action *sswf_action_store_register_cast_action(struct SSWF_ActionStoreRegister *action_store_register);
extern struct SSWF_ItemBase *sswf_action_store_register_cast_item_base(struct SSWF_ActionStoreRegister *action_store_register);
extern void sswf_action_store_register_destroy(struct SSWF_ActionStoreRegister *action_store_register);
extern struct SSWF_ActionStoreRegister *sswf_action_store_register_create(struct SSWF_TagBase * tag);
extern void sswf_action_store_register_set_register(struct SSWF_ActionStoreRegister *action_store_register, unsigned char reg);
  /* Object: ActionStrictMode */
extern struct SSWF_Action *sswf_action_strict_mode_cast_action(struct SSWF_ActionStrictMode *action_strict_mode);
extern struct SSWF_ItemBase *sswf_action_strict_mode_cast_item_base(struct SSWF_ActionStrictMode *action_strict_mode);
extern void sswf_action_strict_mode_destroy(struct SSWF_ActionStrictMode *action_strict_mode);
extern struct SSWF_ActionStrictMode *sswf_action_strict_mode_create(struct SSWF_TagBase * tag);
extern void sswf_action_strict_mode_set_strict(struct SSWF_ActionStrictMode *action_strict_mode, int strict);
  /* Object: ActionTry */
extern struct SSWF_Action *sswf_action_try_cast_action(struct SSWF_ActionTry *action_try);
extern struct SSWF_ItemBase *sswf_action_try_cast_item_base(struct SSWF_ActionTry *action_try);
extern void sswf_action_try_destroy(struct SSWF_ActionTry *action_try);
extern struct SSWF_ActionTry *sswf_action_try_create(struct SSWF_TagBase * tag);
extern void sswf_action_try_add_try_action(struct SSWF_ActionTry *action_try, struct SSWF_Action * action);
extern void sswf_action_try_add_catch_action(struct SSWF_ActionTry *action_try, struct SSWF_Action * action);
extern void sswf_action_try_add_finally_action(struct SSWF_ActionTry *action_try, struct SSWF_Action * action);
extern void sswf_action_try_set_identifier1(struct SSWF_ActionTry *action_try, int register_number);
extern void sswf_action_try_set_identifier2(struct SSWF_ActionTry *action_try, const char * variable_name);
extern struct SSWF_Vectors * sswf_action_try_sub_list_try(struct SSWF_ActionTry *action_try);
extern struct SSWF_Vectors * sswf_action_try_sub_list_catch(struct SSWF_ActionTry *action_try);
extern struct SSWF_Vectors * sswf_action_try_sub_list_finally(struct SSWF_ActionTry *action_try);
  /* Object: ActionURL */
extern struct SSWF_Action *sswf_action_url_cast_action(struct SSWF_ActionURL *action_url);
extern struct SSWF_ItemBase *sswf_action_url_cast_item_base(struct SSWF_ActionURL *action_url);
extern void sswf_action_url_destroy(struct SSWF_ActionURL *action_url);
extern struct SSWF_ActionURL *sswf_action_url_create(struct SSWF_TagBase * tag, enum sswf_action_t action);
extern void sswf_action_url_set_url(struct SSWF_ActionURL *action_url, const char * url, const char * target);
extern void sswf_action_url_set_method(struct SSWF_ActionURL *action_url, enum sswf_url_method_t method);
  /* Object: ActionWaitForFrame */
extern struct SSWF_Action *sswf_action_wait_for_frame_cast_action(struct SSWF_ActionWaitForFrame *action_wait_for_frame);
extern struct SSWF_ItemBase *sswf_action_wait_for_frame_cast_item_base(struct SSWF_ActionWaitForFrame *action_wait_for_frame);
extern void sswf_action_wait_for_frame_destroy(struct SSWF_ActionWaitForFrame *action_wait_for_frame);
extern struct SSWF_ActionWaitForFrame *sswf_action_wait_for_frame_create(struct SSWF_TagBase * tag, enum sswf_action_t action);
extern void sswf_action_wait_for_frame_set_frame_name(struct SSWF_ActionWaitForFrame *action_wait_for_frame, const char * name);
extern void sswf_action_wait_for_frame_add_action(struct SSWF_ActionWaitForFrame *action_wait_for_frame, struct SSWF_Action * action);
extern struct SSWF_Vectors * sswf_action_wait_for_frame_sub_list(struct SSWF_ActionWaitForFrame *action_wait_for_frame);
  /* Object: ActionWith */
extern struct SSWF_Action *sswf_action_with_cast_action(struct SSWF_ActionWith *action_with);
extern struct SSWF_ItemBase *sswf_action_with_cast_item_base(struct SSWF_ActionWith *action_with);
extern void sswf_action_with_destroy(struct SSWF_ActionWith *action_with);
extern struct SSWF_ActionWith *sswf_action_with_create(struct SSWF_TagBase * tag);
extern void sswf_action_with_add_action(struct SSWF_ActionWith *action_with, struct SSWF_Action * action);
extern struct SSWF_Vectors * sswf_action_with_sub_list(struct SSWF_ActionWith *action_with);
  /* Object: TagDoAction */
extern struct SSWF_TagBase *sswf_tag_do_action_cast_tag_base(struct SSWF_TagDoAction *tag_do_action);
extern void sswf_tag_do_action_destroy(struct SSWF_TagDoAction *tag_do_action);
extern struct SSWF_TagDoAction *sswf_tag_do_action_create(struct SSWF_TagBase * parent);
extern enum sswf_error_code_t sswf_tag_do_action_save(struct SSWF_TagDoAction *tag_do_action, struct SSWF_Data * data);
extern swf_type_t sswf_tag_do_action_type_flags(struct SSWF_TagDoAction *tag_do_action);
extern void sswf_tag_do_action_set_action(struct SSWF_TagDoAction *tag_do_action, const struct SSWF_Action * action);
extern void sswf_tag_do_action_set_sprite(struct SSWF_TagDoAction *tag_do_action, sswf_id_t sprite);
extern struct SSWF_Vectors * sswf_tag_do_action_actions(struct SSWF_TagDoAction *tag_do_action);
  /* Object: TagMetadata */
extern struct SSWF_TagBase *sswf_tag_metadata_cast_tag_base(struct SSWF_TagMetadata *tag_metadata);
extern void sswf_tag_metadata_destroy(struct SSWF_TagMetadata *tag_metadata);
extern struct SSWF_TagMetadata *sswf_tag_metadata_create(struct SSWF_TagBase * parent);
extern enum sswf_error_code_t sswf_tag_metadata_save(struct SSWF_TagMetadata *tag_metadata, struct SSWF_Data * data);
extern swf_type_t sswf_tag_metadata_type_flags(struct SSWF_TagMetadata *tag_metadata);
extern void sswf_tag_metadata_set_filename(struct SSWF_TagMetadata *tag_metadata, const char * filename);
extern void sswf_tag_metadata_set_metadata(struct SSWF_TagMetadata *tag_metadata, const char * xml);
extern void sswf_tag_metadata_set_title(struct SSWF_TagMetadata *tag_metadata, const char * title);
extern void sswf_tag_metadata_set_description(struct SSWF_TagMetadata *tag_metadata, const char * description);
extern void sswf_tag_metadata_set_author(struct SSWF_TagMetadata *tag_metadata, const char * description);
extern void sswf_tag_metadata_set_publisher(struct SSWF_TagMetadata *tag_metadata, const char * publisher);
extern void sswf_tag_metadata_set_copyright(struct SSWF_TagMetadata *tag_metadata, const char * copyright);
extern void sswf_tag_metadata_set_url(struct SSWF_TagMetadata *tag_metadata, const char * url);
  /* Object: TagPlace */
extern struct SSWF_TagBase *sswf_tag_place_cast_tag_base(struct SSWF_TagPlace *tag_place);
extern void sswf_tag_place_destroy(struct SSWF_TagPlace *tag_place);
extern struct SSWF_TagPlace *sswf_tag_place_create(struct SSWF_TagBase * parent);
extern enum sswf_error_code_t sswf_tag_place_save(struct SSWF_TagPlace *tag_place, struct SSWF_Data * data);
extern swf_type_t sswf_tag_place_type_flags(struct SSWF_TagPlace *tag_place);
extern void sswf_tag_place_set_object_id(struct SSWF_TagPlace *tag_place, sswf_id_t id);
extern void sswf_tag_place_set_depth(struct SSWF_TagPlace *tag_place, int depth);
extern void sswf_tag_place_set_clip(struct SSWF_TagPlace *tag_place, int depth);
extern void sswf_tag_place_set_matrix(struct SSWF_TagPlace *tag_place, const struct SSWF_Matrix * matrix);
extern void sswf_tag_place_set_color_transform(struct SSWF_TagPlace *tag_place, const struct SSWF_ColorTransform * color_transform);
extern void sswf_tag_place_set_name(struct SSWF_TagPlace *tag_place, const char * name);
extern void sswf_tag_place_set_morph_position(struct SSWF_TagPlace *tag_place, int position);
extern void sswf_tag_place_set_blend_mode(struct SSWF_TagPlace *tag_place, const struct SSWF_BlendMode * blend_mode);
extern void sswf_tag_place_set_bitmap_caching(struct SSWF_TagPlace *tag_place, int bitmap_caching);
extern void sswf_tag_place_replace(struct SSWF_TagPlace *tag_place);
extern void sswf_tag_place_place(struct SSWF_TagPlace *tag_place);
extern int sswf_tag_place_add_event(struct SSWF_TagPlace *tag_place, struct SSWF_Event * event);
  /* Object: TagRemove */
extern struct SSWF_TagBase *sswf_tag_remove_cast_tag_base(struct SSWF_TagRemove *tag_remove);
extern void sswf_tag_remove_destroy(struct SSWF_TagRemove *tag_remove);
extern struct SSWF_TagRemove *sswf_tag_remove_create(struct SSWF_TagBase * parent);
extern enum sswf_error_code_t sswf_tag_remove_save(struct SSWF_TagRemove *tag_remove, struct SSWF_Data * data);
extern swf_type_t sswf_tag_remove_type_flags(struct SSWF_TagRemove *tag_remove);
extern void sswf_tag_remove_set_depth(struct SSWF_TagRemove *tag_remove, int depth);
extern void sswf_tag_remove_set_object_id(struct SSWF_TagRemove *tag_remove, sswf_id_t id);
  /* Object: TagSceneFrameData */
extern struct SSWF_TagBase *sswf_tag_scene_frame_data_cast_tag_base(struct SSWF_TagSceneFrameData *tag_scene_frame_data);
extern void sswf_tag_scene_frame_data_destroy(struct SSWF_TagSceneFrameData *tag_scene_frame_data);
extern struct SSWF_TagSceneFrameData *sswf_tag_scene_frame_data_create(struct SSWF_TagBase * parent);
extern enum sswf_error_code_t sswf_tag_scene_frame_data_save(struct SSWF_TagSceneFrameData *tag_scene_frame_data, struct SSWF_Data * data);
extern swf_type_t sswf_tag_scene_frame_data_type_flags(struct SSWF_TagSceneFrameData *tag_scene_frame_data);
extern int sswf_tag_scene_frame_data_set_file_data(struct SSWF_TagSceneFrameData *tag_scene_frame_data, const char * filename);
extern void sswf_tag_scene_frame_data_set_scene_frame_data(struct SSWF_TagSceneFrameData *tag_scene_frame_data, const char * data, size_t size);
  /* Object: TagScriptLimits */
extern struct SSWF_TagBase *sswf_tag_script_limits_cast_tag_base(struct SSWF_TagScriptLimits *tag_script_limits);
extern void sswf_tag_script_limits_destroy(struct SSWF_TagScriptLimits *tag_script_limits);
extern struct SSWF_TagScriptLimits *sswf_tag_script_limits_create(struct SSWF_TagBase * parent);
extern enum sswf_error_code_t sswf_tag_script_limits_save(struct SSWF_TagScriptLimits *tag_script_limits, struct SSWF_Data * data);
extern swf_type_t sswf_tag_script_limits_type_flags(struct SSWF_TagScriptLimits *tag_script_limits);
extern void sswf_tag_script_limits_set_max_recursion_depth(struct SSWF_TagScriptLimits *tag_script_limits, int depth);
extern void sswf_tag_script_limits_set_timeout_seconds(struct SSWF_TagScriptLimits *tag_script_limits, int timeout);
extern int sswf_tag_script_limits_get_max_recursion_depth(struct SSWF_TagScriptLimits *tag_script_limits);
extern int sswf_tag_script_limits_get_timeout_seconds(struct SSWF_TagScriptLimits *tag_script_limits);
  /* Object: TagSetTabIndex */
extern struct SSWF_TagBase *sswf_tag_set_tab_index_cast_tag_base(struct SSWF_TagSetTabIndex *tag_set_tab_index);
extern void sswf_tag_set_tab_index_destroy(struct SSWF_TagSetTabIndex *tag_set_tab_index);
extern struct SSWF_TagSetTabIndex *sswf_tag_set_tab_index_create(struct SSWF_TagBase * parent);
extern enum sswf_error_code_t sswf_tag_set_tab_index_save(struct SSWF_TagSetTabIndex *tag_set_tab_index, struct SSWF_Data * data);
extern swf_type_t sswf_tag_set_tab_index_type_flags(struct SSWF_TagSetTabIndex *tag_set_tab_index);
extern void sswf_tag_set_tab_index_set_depth(struct SSWF_TagSetTabIndex *tag_set_tab_index, int depth);
extern void sswf_tag_set_tab_index_set_index(struct SSWF_TagSetTabIndex *tag_set_tab_index, int timeout);
extern int sswf_tag_set_tab_index_get_depth(struct SSWF_TagSetTabIndex *tag_set_tab_index);
extern int sswf_tag_set_tab_index_get_index(struct SSWF_TagSetTabIndex *tag_set_tab_index);
  /* Object: TagSetBackgroundColor */
extern struct SSWF_TagBase *sswf_tag_set_background_color_cast_tag_base(struct SSWF_TagSetBackgroundColor *tag_set_background_color);
extern void sswf_tag_set_background_color_destroy(struct SSWF_TagSetBackgroundColor *tag_set_background_color);
extern struct SSWF_TagSetBackgroundColor *sswf_tag_set_background_color_create(struct SSWF_TagBase * parent);
extern enum sswf_error_code_t sswf_tag_set_background_color_save(struct SSWF_TagSetBackgroundColor *tag_set_background_color, struct SSWF_Data * data);
extern swf_type_t sswf_tag_set_background_color_type_flags(struct SSWF_TagSetBackgroundColor *tag_set_background_color);
extern void sswf_tag_set_background_color_set_color(struct SSWF_TagSetBackgroundColor *tag_set_background_color, struct SSWF_Color * color);
extern struct SSWF_Color * sswf_tag_set_background_color_get_color(struct SSWF_TagSetBackgroundColor *tag_set_background_color);
  /* Object: TagShowFrame */
extern struct SSWF_TagBase *sswf_tag_show_frame_cast_tag_base(struct SSWF_TagShowFrame *tag_show_frame);
extern void sswf_tag_show_frame_destroy(struct SSWF_TagShowFrame *tag_show_frame);
extern struct SSWF_TagShowFrame *sswf_tag_show_frame_create(struct SSWF_TagBase * parent);
extern enum sswf_error_code_t sswf_tag_show_frame_save(struct SSWF_TagShowFrame *tag_show_frame, struct SSWF_Data * data);
extern swf_type_t sswf_tag_show_frame_type_flags(struct SSWF_TagShowFrame *tag_show_frame);
  /* Object: TagEnd */
extern struct SSWF_TagBase *sswf_tag_end_cast_tag_base(struct SSWF_TagEnd *tag_end);
extern void sswf_tag_end_destroy(struct SSWF_TagEnd *tag_end);
extern struct SSWF_TagEnd *sswf_tag_end_create(struct SSWF_TagBase * parent);
extern enum sswf_error_code_t sswf_tag_end_save(struct SSWF_TagEnd *tag_end, struct SSWF_Data * data);
extern swf_type_t sswf_tag_end_type_flags(struct SSWF_TagEnd *tag_end);
  /* Object: TagFrameLabel */
extern struct SSWF_TagBase *sswf_tag_frame_label_cast_tag_base(struct SSWF_TagFrameLabel *tag_frame_label);
extern void sswf_tag_frame_label_destroy(struct SSWF_TagFrameLabel *tag_frame_label);
extern struct SSWF_TagFrameLabel *sswf_tag_frame_label_create(struct SSWF_TagBase * parent);
extern enum sswf_error_code_t sswf_tag_frame_label_save(struct SSWF_TagFrameLabel *tag_frame_label, struct SSWF_Data * data);
extern swf_type_t sswf_tag_frame_label_type_flags(struct SSWF_TagFrameLabel *tag_frame_label);
extern void sswf_tag_frame_label_set_frame_label(struct SSWF_TagFrameLabel *tag_frame_label, const char * label);
  /* Object: TagExport */
extern struct SSWF_TagBase *sswf_tag_export_cast_tag_base(struct SSWF_TagExport *tag_export);
extern void sswf_tag_export_destroy(struct SSWF_TagExport *tag_export);
extern struct SSWF_TagExport *sswf_tag_export_create(struct SSWF_TagBase * parent);
extern enum sswf_error_code_t sswf_tag_export_save(struct SSWF_TagExport *tag_export, struct SSWF_Data * data);
extern swf_type_t sswf_tag_export_type_flags(struct SSWF_TagExport *tag_export);
extern void sswf_tag_export_set_object(struct SSWF_TagExport *tag_export, sswf_id_t id, const char * name, const char * used_glyphs);
  /* Object: TagImport */
extern struct SSWF_TagBase *sswf_tag_import_cast_tag_base(struct SSWF_TagImport *tag_import);
extern void sswf_tag_import_destroy(struct SSWF_TagImport *tag_import);
extern struct SSWF_TagImport *sswf_tag_import_create(struct SSWF_TagBase * parent);
extern enum sswf_error_code_t sswf_tag_import_save(struct SSWF_TagImport *tag_import, struct SSWF_Data * data);
extern swf_type_t sswf_tag_import_type_flags(struct SSWF_TagImport *tag_import);
extern const char * sswf_tag_import_has_id(struct SSWF_TagImport *tag_import, sswf_id_t id);
extern sswf_id_t sswf_tag_import_has_name(struct SSWF_TagImport *tag_import, const char * name);
extern void sswf_tag_import_set_url(struct SSWF_TagImport *tag_import, const char * url);
extern void sswf_tag_import_set_filename(struct SSWF_TagImport *tag_import, const char * filename);
extern void sswf_tag_import_add_name(struct SSWF_TagImport *tag_import, const char * name, const char * type);
  /* Object: TagProtect */
extern struct SSWF_TagBase *sswf_tag_protect_cast_tag_base(struct SSWF_TagProtect *tag_protect);
extern void sswf_tag_protect_destroy(struct SSWF_TagProtect *tag_protect);
extern struct SSWF_TagProtect *sswf_tag_protect_create(struct SSWF_TagBase * parent);
extern enum sswf_error_code_t sswf_tag_protect_save(struct SSWF_TagProtect *tag_protect, struct SSWF_Data * data);
extern swf_type_t sswf_tag_protect_type_flags(struct SSWF_TagProtect *tag_protect);
extern void sswf_tag_protect_set_password(struct SSWF_TagProtect *tag_protect, const char * password);
extern void sswf_tag_protect_set_encoded_password(struct SSWF_TagProtect *tag_protect, const char * password);
  /* Object: TagProductInfo */
extern struct SSWF_TagBase *sswf_tag_product_info_cast_tag_base(struct SSWF_TagProductInfo *tag_product_info);
extern void sswf_tag_product_info_destroy(struct SSWF_TagProductInfo *tag_product_info);
extern struct SSWF_TagProductInfo *sswf_tag_product_info_create(struct SSWF_TagBase * parent);
extern enum sswf_error_code_t sswf_tag_product_info_save(struct SSWF_TagProductInfo *tag_product_info, struct SSWF_Data * data);
extern swf_type_t sswf_tag_product_info_type_flags(struct SSWF_TagProductInfo *tag_product_info);
extern void sswf_tag_product_info_set_product(struct SSWF_TagProductInfo *tag_product_info, long product_id);
extern void sswf_tag_product_info_set_edition(struct SSWF_TagProductInfo *tag_product_info, long edition);
extern void sswf_tag_product_info_set_version(struct SSWF_TagProductInfo *tag_product_info, int major, int minor);
extern void sswf_tag_product_info_set_build(struct SSWF_TagProductInfo *tag_product_info, int64_t build_number);
extern void sswf_tag_product_info_set_compile_date(struct SSWF_TagProductInfo *tag_product_info, int64_t date);
  /* Object: TagInfo */
extern struct SSWF_TagBase *sswf_tag_info_cast_tag_base(struct SSWF_TagInfo *tag_info);
extern void sswf_tag_info_destroy(struct SSWF_TagInfo *tag_info);
extern struct SSWF_TagInfo *sswf_tag_info_create(struct SSWF_TagBase * parent);
extern enum sswf_error_code_t sswf_tag_info_save(struct SSWF_TagInfo *tag_info, struct SSWF_Data * data);
extern swf_type_t sswf_tag_info_type_flags(struct SSWF_TagInfo *tag_info);
extern void sswf_tag_info_set_info(struct SSWF_TagInfo *tag_info, const char * info);
extern void sswf_tag_info_set_version(struct SSWF_TagInfo *tag_info, long version);
  /* Object: TagStartSound */
extern struct SSWF_TagBase *sswf_tag_start_sound_cast_tag_base(struct SSWF_TagStartSound *tag_start_sound);
extern void sswf_tag_start_sound_destroy(struct SSWF_TagStartSound *tag_start_sound);
extern struct SSWF_TagStartSound *sswf_tag_start_sound_create(struct SSWF_TagBase * parent);
extern enum sswf_error_code_t sswf_tag_start_sound_save(struct SSWF_TagStartSound *tag_start_sound, struct SSWF_Data * data);
extern swf_type_t sswf_tag_start_sound_type_flags(struct SSWF_TagStartSound *tag_start_sound);
extern void sswf_tag_start_sound_set_info(struct SSWF_TagStartSound *tag_start_sound, struct SSWF_SoundInfo * sound_info);
  /* Object: TagScalingGrid */
extern void sswf_tag_scaling_grid_destroy(struct SSWF_TagScalingGrid *tag_scaling_grid);
extern enum sswf_error_code_t sswf_tag_scaling_grid_grid_save(struct SSWF_TagScalingGrid *tag_scaling_grid, struct SSWF_Data * data, sswf_id_t id);
extern enum sswf_error_code_t sswf_tag_scaling_grid_grid_pre_save(struct SSWF_TagScalingGrid *tag_scaling_grid);
extern const struct SSWF_SRectangle * sswf_tag_scaling_grid_grid(struct SSWF_TagScalingGrid *tag_scaling_grid);
extern void sswf_tag_scaling_grid_set_grid(struct SSWF_TagScalingGrid *tag_scaling_grid, const struct SSWF_SRectangle * rect);
  /* Object: TagBaseID */
extern struct SSWF_TagBase *sswf_tag_base_id_cast_tag_base(struct SSWF_TagBaseID *tag_base_id);
extern void sswf_tag_base_id_destroy(struct SSWF_TagBaseID *tag_base_id);
extern sswf_id_t sswf_tag_base_id_identification(struct SSWF_TagBaseID *tag_base_id);
extern void sswf_tag_base_id_no_identification(struct SSWF_TagBaseID *tag_base_id);
extern int sswf_tag_base_id_has_identification(struct SSWF_TagBaseID *tag_base_id);
extern int sswf_tag_base_id_save_id(struct SSWF_TagBaseID *tag_base_id, struct SSWF_Data * data);
  /* Object: TagBinaryData */
extern struct SSWF_TagBaseID *sswf_tag_binary_data_cast_tag_base_id(struct SSWF_TagBinaryData *tag_binary_data);
extern struct SSWF_TagBase *sswf_tag_binary_data_cast_tag_base(struct SSWF_TagBinaryData *tag_binary_data);
extern void sswf_tag_binary_data_destroy(struct SSWF_TagBinaryData *tag_binary_data);
extern struct SSWF_TagBinaryData *sswf_tag_binary_data_create(struct SSWF_TagBase * parent);
extern enum sswf_error_code_t sswf_tag_binary_data_save(struct SSWF_TagBinaryData *tag_binary_data, struct SSWF_Data * data);
extern swf_type_t sswf_tag_binary_data_type_flags(struct SSWF_TagBinaryData *tag_binary_data);
extern void sswf_tag_binary_data_get_data(struct SSWF_TagBinaryData *tag_binary_data, const char ** data, size_t * size);
extern void sswf_tag_binary_data_set_data(struct SSWF_TagBinaryData *tag_binary_data, const char * data, size_t size);
  /* Object: TagButton */
extern struct SSWF_TagBaseID *sswf_tag_button_cast_tag_base_id(struct SSWF_TagButton *tag_button);
extern struct SSWF_TagBase *sswf_tag_button_cast_tag_base(struct SSWF_TagButton *tag_button);
extern struct SSWF_TagScalingGrid *sswf_tag_button_cast_tag_scaling_grid(struct SSWF_TagButton *tag_button);
extern void sswf_tag_button_destroy(struct SSWF_TagButton *tag_button);
extern struct SSWF_TagButton *sswf_tag_button_create(struct SSWF_TagBase * parent);
extern enum sswf_error_code_t sswf_tag_button_save(struct SSWF_TagButton *tag_button, struct SSWF_Data * data);
extern swf_type_t sswf_tag_button_type_flags(struct SSWF_TagButton *tag_button);
extern int sswf_tag_button_set_state(struct SSWF_TagButton *tag_button, const struct SSWF_State * state);
extern void sswf_tag_button_set_action(struct SSWF_TagButton *tag_button, const struct SSWF_Action * action);
extern void sswf_tag_button_set_menu(struct SSWF_TagButton *tag_button, int menu);
extern struct SSWF_Vectors * sswf_tag_button_actions(struct SSWF_TagButton *tag_button);
extern int sswf_tag_button_add_event(struct SSWF_TagButton *tag_button, struct SSWF_Event * event);
  /* Object: TagCSMTextSettings */
extern void sswf_tag_csmtext_settings_destroy(struct SSWF_TagCSMTextSettings *tag_csmtext_settings);
extern struct SSWF_TagCSMTextSettings *sswf_tag_csmtext_settings_create();
extern int sswf_tag_csmtext_settings_is_csmtext_settings_defined(struct SSWF_TagCSMTextSettings *tag_csmtext_settings);
extern void sswf_tag_csmtext_settings_set_renderer(struct SSWF_TagCSMTextSettings *tag_csmtext_settings, enum sswf_csm_text_renderer_t csm_text_renderer);
extern void sswf_tag_csmtext_settings_set_grid_fit(struct SSWF_TagCSMTextSettings *tag_csmtext_settings, enum sswf_csm_text_gridfit_t csm_text_gridfit);
extern void sswf_tag_csmtext_settings_set_thickness(struct SSWF_TagCSMTextSettings *tag_csmtext_settings, float thickness);
extern void sswf_tag_csmtext_settings_set_sharpness(struct SSWF_TagCSMTextSettings *tag_csmtext_settings, float sharpness);
  /* Object: TagFont */
extern struct SSWF_TagBaseID *sswf_tag_font_cast_tag_base_id(struct SSWF_TagFont *tag_font);
extern struct SSWF_TagBase *sswf_tag_font_cast_tag_base(struct SSWF_TagFont *tag_font);
extern void sswf_tag_font_destroy(struct SSWF_TagFont *tag_font);
extern struct SSWF_TagFont *sswf_tag_font_create(struct SSWF_TagBase * parent);
extern enum sswf_error_code_t sswf_tag_font_save(struct SSWF_TagFont *tag_font, struct SSWF_Data * data);
extern swf_type_t sswf_tag_font_type_flags(struct SSWF_TagFont *tag_font);
extern enum sswf_error_code_t sswf_tag_font_glyph_info(struct SSWF_TagFont *tag_font, struct sswf_font_info_t * info);
extern int sswf_tag_font_has_glyph(struct SSWF_TagFont *tag_font);
extern int sswf_tag_font_find_glyph(struct SSWF_TagFont *tag_font, struct sswf_font_info_t * info, int mark_empty_in_use);
extern const char * sswf_tag_font_font_name(struct SSWF_TagFont *tag_font);
extern long sswf_tag_font_default_ascent(struct SSWF_TagFont *tag_font);
extern long sswf_tag_font_default_descent(struct SSWF_TagFont *tag_font);
extern long sswf_tag_font_default_leading_height(struct SSWF_TagFont *tag_font);
extern enum sswf_font_language_t sswf_tag_font_string_to_language(const char * language);
extern const char * sswf_tag_font_language_to_string(enum sswf_font_language_t language);
extern enum sswf_error_code_t sswf_tag_font_add_glyph(struct SSWF_TagFont *tag_font, sswf_ucs4_t name, const struct SSWF_TagBase * ref, long advance);
extern void sswf_tag_font_set_name(struct SSWF_TagFont *tag_font, const char * font_name);
extern void sswf_tag_font_set_display_name(struct SSWF_TagFont *tag_font, const char * display_name);
extern void sswf_tag_font_set_copyright(struct SSWF_TagFont *tag_font, const char * copyright);
extern void sswf_tag_font_set_layout(struct SSWF_TagFont *tag_font, long ascent, long descent, long leading_height);
extern void sswf_tag_font_set_default_advance(struct SSWF_TagFont *tag_font, long advance);
extern void sswf_tag_font_set_space_advance(struct SSWF_TagFont *tag_font, long advance);
extern void sswf_tag_font_set_type(struct SSWF_TagFont *tag_font, enum sswf_font_type_t type);
extern void sswf_tag_font_set_language(struct SSWF_TagFont *tag_font, enum sswf_font_language_t language);
extern void sswf_tag_font_set_bold(struct SSWF_TagFont *tag_font, int bold);
extern void sswf_tag_font_set_italic(struct SSWF_TagFont *tag_font, int italic);
extern void sswf_tag_font_set_small_text(struct SSWF_TagFont *tag_font, int small_text);
extern void sswf_tag_font_set_thickness(struct SSWF_TagFont *tag_font, enum sswf_font_thickness_t thickness);
extern void sswf_tag_font_set_emsize(struct SSWF_TagFont *tag_font, enum sswf_font_em_size_t font_em_size);
extern void sswf_tag_font_set_wide(struct SSWF_TagFont *tag_font, int wide);
extern enum sswf_error_code_t sswf_tag_font_set_used_glyphs1(struct SSWF_TagFont *tag_font, const char * used_glyphs, int mark_empty_in_use);
extern enum sswf_error_code_t sswf_tag_font_set_used_glyphs2(struct SSWF_TagFont *tag_font, const sswf_ucs4_t * used_glyphs, int mark_empty_in_use);
extern void sswf_tag_font_set_used_by_edit_text(struct SSWF_TagFont *tag_font, int used);
extern void sswf_tag_font_add_kern(struct SSWF_TagFont *tag_font, sswf_ucs4_t code0, sswf_ucs4_t code1, long advance);
  /* Object: TagEditText */
extern struct SSWF_TagBaseID *sswf_tag_edit_text_cast_tag_base_id(struct SSWF_TagEditText *tag_edit_text);
extern struct SSWF_TagBase *sswf_tag_edit_text_cast_tag_base(struct SSWF_TagEditText *tag_edit_text);
extern struct SSWF_TagCSMTextSettings *sswf_tag_edit_text_cast_tag_csmtext_settings(struct SSWF_TagEditText *tag_edit_text);
extern void sswf_tag_edit_text_destroy(struct SSWF_TagEditText *tag_edit_text);
extern struct SSWF_TagEditText *sswf_tag_edit_text_create(struct SSWF_TagBase * parent);
extern enum sswf_error_code_t sswf_tag_edit_text_save(struct SSWF_TagEditText *tag_edit_text, struct SSWF_Data * data);
extern swf_type_t sswf_tag_edit_text_type_flags(struct SSWF_TagEditText *tag_edit_text);
extern void sswf_tag_edit_text_set_text(struct SSWF_TagEditText *tag_edit_text, const char * text);
extern void sswf_tag_edit_text_set_variable_name(struct SSWF_TagEditText *tag_edit_text, const char * name);
extern void sswf_tag_edit_text_set_font(struct SSWF_TagEditText *tag_edit_text, const struct SSWF_TagFont * font, long height);
extern void sswf_tag_edit_text_set_margins(struct SSWF_TagEditText *tag_edit_text, long left, long right);
extern void sswf_tag_edit_text_set_bounds(struct SSWF_TagEditText *tag_edit_text, const struct SSWF_SRectangle * bounds);
extern void sswf_tag_edit_text_set_align(struct SSWF_TagEditText *tag_edit_text, enum sswf_edit_text_alignment_t align);
extern void sswf_tag_edit_text_set_indent(struct SSWF_TagEditText *tag_edit_text, long indent);
extern void sswf_tag_edit_text_set_leading(struct SSWF_TagEditText *tag_edit_text, long leading);
extern void sswf_tag_edit_text_set_color(struct SSWF_TagEditText *tag_edit_text, struct SSWF_Color * color);
extern void sswf_tag_edit_text_set_max_length(struct SSWF_TagEditText *tag_edit_text, long length);
extern void sswf_tag_edit_text_set_word_wrap(struct SSWF_TagEditText *tag_edit_text, int status);
extern void sswf_tag_edit_text_set_multiline(struct SSWF_TagEditText *tag_edit_text, int status);
extern void sswf_tag_edit_text_set_password(struct SSWF_TagEditText *tag_edit_text, int status);
extern void sswf_tag_edit_text_set_read_only(struct SSWF_TagEditText *tag_edit_text, int status);
extern void sswf_tag_edit_text_set_no_select(struct SSWF_TagEditText *tag_edit_text, int status);
extern void sswf_tag_edit_text_set_border(struct SSWF_TagEditText *tag_edit_text, int status);
extern void sswf_tag_edit_text_set_outline(struct SSWF_TagEditText *tag_edit_text, int status);
extern void sswf_tag_edit_text_set_html(struct SSWF_TagEditText *tag_edit_text, int status);
extern void sswf_tag_edit_text_set_auto_size(struct SSWF_TagEditText *tag_edit_text, int status);
extern void sswf_tag_edit_text_set_used_glyphs(struct SSWF_TagEditText *tag_edit_text, const char * lists);
extern void sswf_tag_edit_text_add_used_string(struct SSWF_TagEditText *tag_edit_text, const char * string);
  /* Object: TagImage */
extern struct SSWF_TagBaseID *sswf_tag_image_cast_tag_base_id(struct SSWF_TagImage *tag_image);
extern struct SSWF_TagBase *sswf_tag_image_cast_tag_base(struct SSWF_TagImage *tag_image);
extern void sswf_tag_image_destroy(struct SSWF_TagImage *tag_image);
extern struct SSWF_TagImage *sswf_tag_image_create(struct SSWF_TagBase * parent);
extern enum sswf_error_code_t sswf_tag_image_save(struct SSWF_TagImage *tag_image, struct SSWF_Data * data);
extern swf_type_t sswf_tag_image_type_flags(struct SSWF_TagImage *tag_image);
extern void sswf_tag_image_get_image_data(struct SSWF_TagImage *tag_image, struct sswf_image_t * image_data);
extern void sswf_tag_image_set_format(struct SSWF_TagImage *tag_image, enum sswf_image_format_t format);
extern void sswf_tag_image_set_quality(struct SSWF_TagImage *tag_image, int quality);
extern enum sswf_error_code_t sswf_tag_image_set_filename(struct SSWF_TagImage *tag_image, const char * image, const char * mask);
extern void sswf_tag_image_set_image(struct SSWF_TagImage *tag_image, long width, long height, unsigned char * data, int alpha, long count, unsigned char * colormap);
extern enum sswf_error_code_t sswf_tag_image_load_tga(struct SSWF_TagImage *tag_image, const char * filename, struct sswf_image_t * im);
extern enum sswf_error_code_t sswf_tag_image_load_jpeg(struct SSWF_TagImage *tag_image, const char * filename, struct sswf_image_t * im);
extern enum sswf_error_code_t sswf_tag_image_save_jpeg(struct SSWF_TagImage *tag_image, struct SSWF_Data * encoding, struct SSWF_Data * image);
extern enum sswf_error_code_t sswf_tag_image_set_alpha(struct SSWF_TagImage *tag_image, struct sswf_image_t * im, const struct sswf_image_t * mask);
  /* Object: TagShape */
extern struct SSWF_TagBaseID *sswf_tag_shape_cast_tag_base_id(struct SSWF_TagShape *tag_shape);
extern struct SSWF_TagBase *sswf_tag_shape_cast_tag_base(struct SSWF_TagShape *tag_shape);
extern void sswf_tag_shape_destroy(struct SSWF_TagShape *tag_shape);
extern struct SSWF_TagShape *sswf_tag_shape_create(struct SSWF_TagBase * parent);
extern enum sswf_error_code_t sswf_tag_shape_save(struct SSWF_TagShape *tag_shape, struct SSWF_Data * data);
extern swf_type_t sswf_tag_shape_type_flags(struct SSWF_TagShape *tag_shape);
extern enum sswf_error_code_t sswf_tag_shape_save_without_styles(struct SSWF_TagShape *tag_shape, struct SSWF_Data * data);
extern void sswf_tag_shape_save_align_zone(struct SSWF_TagShape *tag_shape, struct SSWF_Data * data);
extern int sswf_tag_shape_has_align_zone(struct SSWF_TagShape *tag_shape);
extern int sswf_tag_shape_has_bounds(struct SSWF_TagShape *tag_shape);
extern const struct SSWF_SRectangle * sswf_tag_shape_bounds(struct SSWF_TagShape *tag_shape, int index);
extern int sswf_tag_shape_is_glyph(struct SSWF_TagShape *tag_shape);
extern int sswf_tag_shape_is_empty(struct SSWF_TagShape *tag_shape);
extern enum sswf_error_code_t sswf_tag_shape_add_move(struct SSWF_TagShape *tag_shape, enum sswf_morph_t morph_mode, long x, long y);
extern enum sswf_error_code_t sswf_tag_shape_add_edge1(struct SSWF_TagShape *tag_shape, enum sswf_morph_t morph_mode, long x, long y);
extern enum sswf_error_code_t sswf_tag_shape_add_edge2(struct SSWF_TagShape *tag_shape, enum sswf_morph_t morph_mode, long x, long y, long ctrl_x, long ctrl_y);
extern void sswf_tag_shape_new_styles(struct SSWF_TagShape *tag_shape);
extern enum sswf_error_code_t sswf_tag_shape_add_style(struct SSWF_TagShape *tag_shape, const struct SSWF_Style * style, enum sswf_fill_t fill);
extern void sswf_tag_shape_set_align_zone(struct SSWF_TagShape *tag_shape, const struct SSWF_SRectangle * zone);
extern enum sswf_error_code_t sswf_tag_shape_set_bounds(struct SSWF_TagShape *tag_shape, int index, const struct SSWF_SRectangle * rect, int show);
extern enum sswf_error_code_t sswf_tag_shape_set_strokes_bounds(struct SSWF_TagShape *tag_shape, int index, const struct SSWF_SRectangle * rect);
extern void sswf_tag_shape_show_bounds(struct SSWF_TagShape *tag_shape, int show);
extern void sswf_tag_shape_show_origin(struct SSWF_TagShape *tag_shape, int show);
extern void sswf_tag_shape_set_non_scaling_strokes(struct SSWF_TagShape *tag_shape, int has_non_scaling_strokes);
extern void sswf_tag_shape_set_scaling_strokes(struct SSWF_TagShape *tag_shape, int has_scaling_strokes);
extern void sswf_tag_shape_glyph(struct SSWF_TagShape *tag_shape);
extern int sswf_tag_shape_has_show_bounds(struct SSWF_TagShape *tag_shape);
  /* Object: TagSound */
extern struct SSWF_TagBaseID *sswf_tag_sound_cast_tag_base_id(struct SSWF_TagSound *tag_sound);
extern struct SSWF_TagBase *sswf_tag_sound_cast_tag_base(struct SSWF_TagSound *tag_sound);
extern void sswf_tag_sound_destroy(struct SSWF_TagSound *tag_sound);
extern struct SSWF_TagSound *sswf_tag_sound_create(struct SSWF_TagBase * parent);
extern enum sswf_error_code_t sswf_tag_sound_save(struct SSWF_TagSound *tag_sound, struct SSWF_Data * data);
extern swf_type_t sswf_tag_sound_type_flags(struct SSWF_TagSound *tag_sound);
extern size_t sswf_tag_sound_get_samples_count(struct SSWF_TagSound *tag_sound);
extern enum sswf_error_code_t sswf_tag_sound_set_filename(struct SSWF_TagSound *tag_sound, const char * filename);
extern void sswf_tag_sound_set_format(struct SSWF_TagSound *tag_sound, enum sswf_sound_format_t format);
extern int sswf_tag_sound_set_data(struct SSWF_TagSound *tag_sound, const void * data, size_t size, enum sswf_sound_endian_t endian, int width, unsigned int rate, int stereo);
extern void sswf_tag_sound_set_mono(struct SSWF_TagSound *tag_sound);
extern void sswf_tag_sound_set8_bits(struct SSWF_TagSound *tag_sound);
  /* Object: TagSprite */
extern struct SSWF_TagBaseID *sswf_tag_sprite_cast_tag_base_id(struct SSWF_TagSprite *tag_sprite);
extern struct SSWF_TagBase *sswf_tag_sprite_cast_tag_base(struct SSWF_TagSprite *tag_sprite);
extern struct SSWF_TagScalingGrid *sswf_tag_sprite_cast_tag_scaling_grid(struct SSWF_TagSprite *tag_sprite);
extern void sswf_tag_sprite_destroy(struct SSWF_TagSprite *tag_sprite);
extern struct SSWF_TagSprite *sswf_tag_sprite_create(struct SSWF_TagBase * parent);
extern enum sswf_error_code_t sswf_tag_sprite_save(struct SSWF_TagSprite *tag_sprite, struct SSWF_Data * data);
extern swf_type_t sswf_tag_sprite_type_flags(struct SSWF_TagSprite *tag_sprite);
  /* Object: TagText */
extern struct SSWF_TagBaseID *sswf_tag_text_cast_tag_base_id(struct SSWF_TagText *tag_text);
extern struct SSWF_TagBase *sswf_tag_text_cast_tag_base(struct SSWF_TagText *tag_text);
extern struct SSWF_TagCSMTextSettings *sswf_tag_text_cast_tag_csmtext_settings(struct SSWF_TagText *tag_text);
extern void sswf_tag_text_destroy(struct SSWF_TagText *tag_text);
extern struct SSWF_TagText *sswf_tag_text_create(struct SSWF_TagBase * parent);
extern enum sswf_error_code_t sswf_tag_text_save(struct SSWF_TagText *tag_text, struct SSWF_Data * data);
extern swf_type_t sswf_tag_text_type_flags(struct SSWF_TagText *tag_text);
extern void sswf_tag_text_set_matrix(struct SSWF_TagText *tag_text, const struct SSWF_Matrix * matrix);
extern void sswf_tag_text_set_bounds(struct SSWF_TagText *tag_text, const struct SSWF_SRectangle * bounds);
extern enum sswf_error_code_t sswf_tag_text_add_text(struct SSWF_TagText *tag_text, const char * string, long advance);
extern void sswf_tag_text_add_font(struct SSWF_TagText *tag_text, const struct SSWF_TagFont * font, long height);
extern void sswf_tag_text_add_offsets(struct SSWF_TagText *tag_text, long x, long y);
extern void sswf_tag_text_add_color(struct SSWF_TagText *tag_text, struct SSWF_Color * color);

typedef enum sswf_error_code_t (*sswf_error_manager_on_error_callback)(enum sswf_error_code_t errcode, const char *msg);
extern void sswf_error_manager_set_callback(struct SSWF_ErrorManager *error_manager, sswf_error_manager_on_error_callback callback);
#if defined(__cplusplus)
}; // extern "C"
#endif
