www.pudn.com > C++_Flash.rar > Definitions.h


#if !defined(SWFDEFINITIONS_H) 
#define SWFDEFINITIONS_H 
 
 
#include  
#include  
#include  
#include  
 
 
#define	SWF_FILE_VERSION						0x03			// SWF version 
#define SWF_MOVIE_WIDHT							 200			// Default movie width 
#define SWF_MOVIE_HEIGHT						 200			// Default movie height 
#define SWF_FILLSTYLETYPE_SOLID					0x00			// Solid fill 
#define SWF_FILLSTYLETYPE_LINEARGRADIENT		0x10			// Linear gradient fill 
#define SWF_FILLSTYLETYPE_RADIALGRADIENT		0x12			// Radial gradient fill 
#define SWF_FILLSTYLETYPE_BITMAP_0				0x40			// Repeating bitmap fill 
#define SWF_FILLSTYLETYPE_BITMAP_1				0x41			// Clipped bitmap fill 
#define SWF_FILLSTYLETYPE_BITMAP_2				0x42			// Non-smoothed repeating bitmap fill 
#define SWF_FILLSTYLETYPE_BITMAP_3				0x43			// Non-smoothed clipped bitmap fill 
#define PI								   3.1415926			// PI value 
#define SWF_BUTTON_HIT_STATE					0x08			// Button hit-state flag 
#define SWF_BUTTON_DOWN_STATE					0x04			// Button down-state flag 
#define SWF_BUTTON_OVER_STATE					0x02			// Button over-state flag 
#define SWF_BUTTON_UP_STATE						0x01			// Button up-state flag 
#define ACTION_IDLE_TO_OVER_DOWN				0x80			// CondIdleToOverDown flag 
#define ACTION_OUT_DOWN_TO_IDLE					0x40			// CondOutDownToIdle flag 
#define ACTION_OUT_DOWN_TO_OVER_DOWN			0x20			// CondOutDownToOverDown flag 
#define ACTION_OVER_DOWN_TO_OUT_DOWN			0x10			// CondOverDownToOutDown flag 
#define ACTION_OVER_DOWN_TO_OVER_UP				0x08			// CondOverDownToOverUp flag 
#define ACTION_OVER_UP_TO_OVER_DOWN				0x04			// CondOverUpToOverDown flag 
#define ACTION_OVER_UP_TO_IDLE					0x02			// CondOverUpToIdle flag 
#define ACTION_IDLE_TO_OVER_UP					0x01			// CondIdleToOverUp flag 
#define ACTION_OVER_DOWN_TO_IDLE				0x01			// CondOverDownToIdle flag 
#define SWF_OBJECT_TYPE_SHAPE					0x00			// Shape object 
#define SWF_OBJECT_TYPE_MORPH_SHAPE				0x01			// Morphing shape object 
#define SWF_OBJECT_TYPE_BITMAP					0x02			// Bitmap object 
#define SWF_OBJECT_TYPE_BUTTON					0x03			// Button object 
#define SWF_OBJECT_TYPE_SPRITE					0x04			// Sprite object 
 
 
#pragma pack (1) 
typedef struct _RECT_F 
{ 
	float left; 
	float top; 
	float right; 
	float bottom; 
 
} RECT_F; 
 
typedef struct _POINT_F 
{ 
	float x; 
	float y; 
 
} POINT_F; 
 
typedef struct _SIZE_F 
{ 
	float cx; 
	float cy; 
 
} SIZE_F; 
 
typedef struct _SWF_RECT 
{ 
	BYTE Nbits; 
	SHORT Xmin; 
	SHORT Xmax; 
	SHORT Ymin; 
	SHORT Ymax; 
 
} SWF_RECT; 
 
typedef struct _MATRIX_F 
{ 
	float scaleX; 
	float scaleY; 
	float rotateSkew0; 
	float rotateSkew1; 
	float translateX; 
	float translateY; 
 
} MATRIX_F; 
 
typedef struct _SWF_MATRIX 
{ 
	UCHAR MatrixFlags; 
	UCHAR NScaleBits; 
	ULONG ScaleX; 
	ULONG ScaleY; 
	UCHAR NRotateBits; 
	ULONG RotateSkew0; 
	ULONG RotateSkew1; 
	UCHAR NTranslateBits; 
	LONG TranslateX; 
	LONG TranslateY; 
 
} SWF_MATRIX; 
 
typedef struct _SWF_FILE_HEADER 
{ 
	UCHAR Signature[3]; 
	UCHAR Version; 
	ULONG FileLength; 
	USHORT FrameRate; 
	USHORT FrameCount; 
 
} SWF_FILE_HEADER; 
 
typedef struct _SWF_RECORDHEADER_SHORT 
{ 
	USHORT TagCodeAndLength; 
 
} SWF_RECORDHEADER_SHORT; 
 
typedef struct _SWF_RECORDHEADER_LONG 
{ 
	USHORT TagCodeAndLength; 
	ULONG Length; 
 
} SWF_RECORDHEADER_LONG; 
 
typedef struct _SWF_RGB 
{ 
	UCHAR Red; 
	UCHAR Green; 
	UCHAR Blue; 
 
} SWF_RGB; 
 
typedef struct _SWF_RGBA 
{ 
	UCHAR Red; 
	UCHAR Green; 
	UCHAR Blue; 
	UCHAR Alpha; 
 
} SWF_RGBA; 
 
typedef struct _SWF_BGCOLOR 
{ 
	SWF_RECORDHEADER_SHORT Header; 
	SWF_RGB BackgroundColor; 
 
} SWF_BGCOLOR; 
 
typedef struct _SWF_GRADIENTRECORD 
{ 
	UCHAR Ratio; 
	SWF_RGBA Color; 
 
} SWF_GRADIENTRECORD; 
 
typedef struct _SWF_GRADIENT 
{ 
	UCHAR NumGradients; 
	SWF_GRADIENTRECORD* GradientRecords; 
 
} SWF_GRADIENT; 
 
typedef struct _SWF_FILLSTYLE 
{ 
	UCHAR FillStyleType; 
	SWF_RGBA Color; 
	MATRIX_F GradientMatrix; 
	SWF_GRADIENT Gradient; 
	USHORT BitmapID; 
	MATRIX_F BitmapMatrix; 
 
} SWF_FILLSTYLE; 
 
typedef struct _SWF_FILLSTYLEARRAY 
{ 
	UCHAR FillStyleCount; 
	USHORT FillStyleCountExtended; 
	SWF_FILLSTYLE* FillStyles; 
 
} SWF_FILLSTYLEARRAY; 
 
typedef struct _SWF_LINESTYLE 
{ 
	USHORT Width; 
	SWF_RGBA Color; 
 
} SWF_LINESTYLE; 
 
typedef struct _SWF_LINESTYLEARRAY 
{ 
	UCHAR LineStyleCount; 
	USHORT LineStyleCountExtended; 
	SWF_LINESTYLE* LineStyles; 
 
} SWF_LINESTYLEARRAY; 
 
typedef struct _SWF_MORPHGRADIENTRECORD 
{ 
	UCHAR StartRatio; 
	SWF_RGBA StartColor; 
	UCHAR EndRatio; 
	SWF_RGBA EndColor; 
 
} SWF_MORPHGRADIENTRECORD; 
 
typedef struct _SWF_MORPHGRADIENT 
{ 
	UCHAR NumGradients; 
	SWF_MORPHGRADIENTRECORD* GradientRecords; 
 
} SWF_MORPHGRADIENT; 
 
typedef struct _SWF_MORPHFILLSTYLE 
{ 
	UCHAR FillStyleType; 
	SWF_RGBA StartColor; 
	SWF_RGBA EndColor; 
	MATRIX_F StartGradientMatrix; 
	MATRIX_F EndGradientMatrix; 
	SWF_MORPHGRADIENT Gradient; 
	USHORT BitmapID; 
	MATRIX_F StartBitmapMatrix; 
	MATRIX_F EndBitmapMatrix; 
 
} SWF_MORPHFILLSTYLE; 
 
typedef struct _SWF_MORPHFILLSTYLEARRAY 
{ 
	UCHAR FillStyleCount; 
	USHORT FillStyleCountExtended; 
	SWF_MORPHFILLSTYLE* FillStyles; 
 
} SWF_MORPHFILLSTYLEARRAY; 
 
typedef struct _SWF_MORPHLINESTYLE 
{ 
	USHORT StartWidth; 
	USHORT EndWidth; 
	SWF_RGBA StartColor; 
	SWF_RGBA EndColor; 
 
} SWF_MORPHLINESTYLE; 
 
typedef struct _SWF_MORPHLINESTYLEARRAY 
{ 
	UCHAR LineStyleCount; 
	USHORT LineStyleCountExtended; 
	SWF_MORPHLINESTYLE* LineStyles; 
 
} SWF_MORPHLINESTYLEARRAY; 
 
typedef union _SWF_SHAPERECORD 
{ 
	struct _SWF_ENDSHAPERECORD 
	{ 
		UCHAR ShapeFlags; 
 
	} SWF_ENDSHAPERECORD; 
 
	struct _SWF_STYLECHANGERECORD 
	{ 
		UCHAR ShapeFlags; 
		UCHAR MoveBits; 
		LONG MoveDeltaX; 
		LONG MoveDeltaY; 
		USHORT FillStyle0; 
		USHORT FillStyle1; 
		USHORT LineStyle; 
		SWF_FILLSTYLEARRAY NewFillStyles; 
		SWF_LINESTYLEARRAY NewLineStyles; 
		UCHAR NumberOfNewFillAndLineIndexBits; 
 
	} SWF_STYLECHANGERECORD; 
 
	struct _SWF_STRAIGHTEDGERECORD 
	{ 
		UCHAR ShapeFlags; 
		UCHAR NumBits; 
		LONG DeltaX; 
		LONG DeltaY; 
 
	} SWF_STRAIGHTEDGERECORD; 
 
	struct _SWF_CURVEDEDGERECORD 
	{ 
		UCHAR ShapeFlags; 
		UCHAR NumBits; 
		LONG ControlDeltaX; 
		LONG ControlDeltaY; 
		LONG AnchorDeltaX; 
		LONG AnchorDeltaY; 
 
	} SWF_CURVEDEDGERECORD; 
 
} SWF_SHAPERECORD; 
 
typedef struct _SWF_SHAPE 
{ 
	UCHAR NumberOfFillAndLineIndexBits; 
	SWF_SHAPERECORD* ShapeRecords; 
 
} SWF_SHAPE; 
 
typedef struct _SWF_SHAPEWITHSTYLE 
{ 
	SWF_FILLSTYLEARRAY FillStyles; 
	SWF_LINESTYLEARRAY LineStyles; 
	UCHAR NumberOfFillAndLineIndexBits; 
	SWF_SHAPERECORD* ShapeRecords; 
 
} SWF_SHAPEWITHSTYLE; 
 
typedef struct _SWF_DEFINE_SHAPE_TAG 
{ 
	SWF_RECORDHEADER_LONG Header; 
	USHORT ShapeID; 
	SWF_SHAPEWITHSTYLE Shapes; 
 
} SWF_DEFINE_SHAPE_TAG; 
 
typedef struct _SWF_DEFINE_MORPHSHAPE_TAG 
{ 
	SWF_RECORDHEADER_LONG Header; 
	USHORT CharacterID; 
	RECT_F StartBounds; 
	RECT_F EndBounds; 
	ULONG Offset; 
	SWF_MORPHFILLSTYLEARRAY MorphFillStyles; 
	SWF_MORPHLINESTYLEARRAY MorphLineStyles; 
	SWF_SHAPE StartEdges; 
	SWF_SHAPE EndEdges; 
 
} SWF_DEFINE_MORPHSHAPE_TAG; 
 
typedef struct _SWF_PLACE_OBJECT_TAG 
{ 
	SWF_RECORDHEADER_LONG Header; 
	UCHAR Flags; 
	USHORT Depth; 
	USHORT CharacterID; 
 
} SWF_PLACE_OBJECT_TAG; 
 
typedef struct _SWF_REMOVE_OBJECT2_TAG 
{ 
	SWF_RECORDHEADER_LONG Header; 
	USHORT Depth; 
 
} SWF_REMOVE_OBJECT2_TAG; 
 
typedef struct _SWF_DEFINE_BITS_JPEG2_TAG 
{ 
	SWF_RECORDHEADER_LONG Header; 
	USHORT CharacterID; 
 
} SWF_DEFINE_BITS_JPEG2_TAG; 
 
typedef struct _SWF_CXFORM_WITH_ALPHA_TAG 
{ 
	UCHAR Flags; 
	USHORT RedMultTerm; 
	USHORT GreenMultTerm; 
	USHORT BlueMultTerm; 
	USHORT AlphaMultTerm; 
	USHORT RedAddTerm; 
	USHORT GreenAddTerm; 
	USHORT BlueAddTerm; 
	USHORT AlphaAddTerm; 
 
} SWF_CXFORM_WITH_ALPHA_TAG; 
 
typedef struct _SWF_COLOR_TRANSFORM 
{ 
	float RedMultTerm; 
	float GreenMultTerm; 
	float BlueMultTerm; 
	float AlphaMultTerm; 
	float RedAddTerm; 
	float GreenAddTerm; 
	float BlueAddTerm; 
	float AlphaAddTerm; 
 
} SWF_COLOR_TRANSFORM; 
 
typedef struct _SWF_ACTIONRECORD 
{ 
	UCHAR ActionCode; 
	USHORT Length; 
 
	union _ACTION_TYPE 
	{ 
		struct _ACTION_GOTO_FRAME 
		{ 
			USHORT FrameIndex; 
 
		} ACTION_GOTO_FRAME; 
 
		struct _ACTION_GET_URL 
		{ 
			UCHAR* UrlString; 
			UCHAR* TargetString; 
 
		} ACTION_GET_URL; 
 
		struct _ACTION_WAIT_FOR_FRAME 
		{ 
			USHORT Frame; 
			UCHAR SkipCount; 
 
		} ACTION_WAIT_FOR_FRAME; 
 
		struct _ACTION_SET_TARGET 
		{ 
			UCHAR* TargetName; 
 
		} ACTION_SET_TARGET; 
 
		struct _ACTION_GOTO_LABEL 
		{ 
			UCHAR* Label; 
 
		} ACTION_GOTO_LABEL; 
 
	} ACTION_TYPE; 
 
} SWF_ACTIONRECORD; 
 
typedef struct _SWF_DOACTION_TAG 
{ 
	SWF_RECORDHEADER_LONG Header; 
	UCHAR ActionEndFlag; 
 
} SWF_DOACTION_TAG; 
 
typedef struct _SWF_BUTTONCONDACTION_TAG 
{ 
	USHORT CondActionSize; 
	UCHAR Flags1; 
	UCHAR Flags2; 
	UCHAR* Actions; 
	int ActionsLength; 
 
} SWF_BUTTONCONDACTION_TAG; 
 
typedef struct _SWF_BUTTONRECORD 
{ 
	UCHAR Flags; 
	USHORT CharacterID; 
	USHORT PlaceDepth; 
	MATRIX_F PlaceMatrix; 
	SWF_COLOR_TRANSFORM ColorTransform; 
	bool bHasColorTransform; 
 
} SWF_BUTTONRECORD; 
 
typedef struct _SWF_DEFINE_BUTTON2_TAG 
{ 
	SWF_RECORDHEADER_LONG Header; 
	USHORT ButtonID; 
	UCHAR Flags; 
	USHORT ActionOffset; 
	SWF_BUTTONRECORD* Characters; 
	UCHAR CharacterEndFlag; 
 
} SWF_DEFINE_BUTTON2_TAG; 
 
typedef struct _SWF_DEFINE_SPRITE_TAG 
{ 
	SWF_RECORDHEADER_LONG Header; 
	USHORT SpriteID; 
	USHORT FrameCount; 
 
} SWF_DEFINE_SPRITE_TAG; 
#pragma pack() 
 
 
#endif // !defined(SWFDEFINITIONS_H)