#pragma once
#include <memory>
#include <windows.h>
#include "File.h"
typedef unsigned char UI8;
typedef unsigned short UI16;
enum TagType
{
/// <summary>Unknown tag</summary>
Unknown = -1,
/// <summary>End tag</summary>
End = 0,
/// <summary>ShowFrame tag</summary>
ShowFrame = 1,
/// <summary>DefineShape tag</summary>
DefineShape = 2,
/// <summary>PlaceObject tag</summary>
PlaceObject = 3,
/// <summary>RemoveObject tag</summary>
RemoveObject = 4,
/// <summary>DefineBits tag</summary>
DefineBits = 6,
/// <summary>DefineButton tag</summary>
DefineButton = 7,
/// <summary>JPEGTable tag</summary>
JpegTable = 8,
/// <summary>SetBackgroundColor tag</summary>
SetBackgroundColor = 9,
/// <summary>DefineFont tag</summary>
DefineFont = 10,
/// <summary>DefineText tag</summary>
DefineText = 11,
/// <summary>DoAction tag</summary>
DoAction = 12,
/// <summary>DefineFontInfo tag</summary>
DefineFontInfo = 13,
/// <summary>DefineSound tag</summary>
DefineSound = 14,
/// <summary>StartSound tag</summary>
StartSound = 15,
/// <summary>DefineButtonSound tag</summary>
DefineButtonSound = 17,
/// <summary>SoundStreamHead tag</summary>
SoundStreamHead = 18,
/// <summary>SoundStreamBlock tag</summary>
SoundStreamBlock = 19,
/// <summary>DefineBitsLossLess tag</summary>
DefineBitsLossLess = 20,
/// <summary>DefineBitsJPEG2 tag</summary>
DefineBitsJpeg2 = 21,
/// <summary>DefineShape2 tag</summary>
DefineShape2 = 22,
/// <summary>DefineButtonCxForm tag</summary>
DefineButtonCxForm = 23,
/// <summary>Protect tag</summary>
Protect = 24,
/// <summary>PlaceObject2 tag</summary>
PlaceObject2 = 26,
/// <summary>RemoveObject2 tag</summary>
RemoveObject2 = 28,
/// <summary>DefineShape3 tag</summary>
DefineShape3 = 32,
/// <summary>DefineText2 tag</summary>
DefineText2 = 33,
/// <summary>DefineButton2 tag</summary>
DefineButton2 = 34,
/// <summary>DefineBitsJPEG3 tag</su