シェイプレコードには次の 4 つの種類があります。
| フィールド | 型 | コメント |
| TypeFlag | UB[1] | エッジレコードではないので常に 0 |
| EndOfShape | UB[5] | シェイプの終端フラグ。常に 0 |
| フィールド | 型 | コメント |
| TypeFlag | UB[1] | エッジレコードではないので常に 0 |
| StateNewStyles | UB[1] |
新しいスタイルフラグ DefineShape2 と DefineShape3 でしか使わない |
| StateLineStyle | UB[1] | 線スタイル変更フラグ |
| StateFillStyle1 | UB[1] | 塗りスタイル 1 変更フラグ |
| StateFillStyle0 | UB[1] | 塗りスタイル 0 変更フラグ |
| StateMoveTo | UB[1] | 移動フラグ |
| MoveBits | If StateMoveTo, UB[5] | 移動用フィールドで使うビット数 |
| MoveDeltaX | If StateMoveTo, SB[MoveBits] | X の移動量 |
| MoveDeltaY | If StateMoveTo, SB[MoveBits] | Y の移動量 |
| FillStyle0 | If StateFillStyle0, UB[FillBits] | 塗りスタイル 0 |
| FillStyle1 | If StateFillStyle1, UB[FillBits] | 塗りスタイル 1 |
| LineStyle | If StateLineStyle, UB[LineBits] | 線スタイル |
| FillStyles | If StateNewStyles, FILLSTYLEARRAY | 新しい塗りスタイルの配列 |
| LineStyles | If StateNewStyles, LINESTYLEARRAY | 新しい線スタイルの配列 |
| NumFillBits | If StateNewStyles, UB[4] | 新しいスタイルの塗りインデックス |
| NumLineBits | If StateNewStyles, UB[4] | 新しいスタイルの線インデックス |