longlong.h にもどるtcode.h にすすむtad.h以下は、TAD を扱うための定数、型の定義である。
#define RT_LINK 0 リンクレコード #define RT_TADDATA 1 TAD主レコード #define RT_TADCMT 2 TAD注釈レコード #define RT_TADSUB 3 TAD補助レコード #define RT_TADRSV 4 予約レコード #define RT_SFUSEN 5 設定付箋レコード #define RT_DFUSEN 6 指定付箋レコード #define RT_FFUSEN 7 機能付箋レコード #define RT_MFUSEN 8 実行機能付箋レコード #define RT_PROG 9 実行プログラムレコード #define RT_DATABOX 10 データボックスレコード #define RT_FONT 11 フォントレコード #define RT_DICT 12 辞書レコード #define RT_SYSRSV1 13 システム予約 1 #define RT_SYSRSV2 14 システム予約 2 #define RT_SYSDATA 15 システムデータレコード
#define RM_LINK 0x00000001 リンクレコード #define RM_TADDATA 0x00000002 TAD主レコード #define RM_TADCMT 0x00000004 TAD注釈レコード #define RM_TADSUB 0x00000008 TAD補助レコード #define RM_TADRSV 0x00000010 予約レコード #define RM_SFUSEN 0x00000020 設定付箋レコード #define RM_DFUSEN 0x00000040 指定付箋レコード #define RM_FFUSEN 0x00000080 機能付箋レコード #define RM_MFUSEN 0x00000100 実行機能付箋レコード #define RM_PROG 0x00000200 実行プログラムレコード #define RM_DATABOX 0x00000400 データボックスレコード #define RM_FONT 0x00000800 フォントデータレコード #define RM_DICT 0x00001000 辞書データレコード #define RM_SYSRSV1 0x00002000 システム予約 1 #define RM_SYSRSV2 0x00004000 システム予約 2 #define RM_SYSDATA 0x00008000 システムデータレコード
#define OBJ_EJECT 0x1000 取り外し可能デバイス実身 #define OBJ_DEV 0x2000 デバイス実身 #define OBJ_EXEC 0x8000 実行可能ファイル
#define TC_NULL 0x0000 NULL(無効コード) #define TC_NL 0x000a NL(改段落コード) #define TC_CR 0x000d CR(改行コード) #define TC_TAB 0x0009 TAB(タブコード) #define TC_FF 0x000c FF(改ページコード) #define TC_NC 0x000b NC(改コラムコード) #define TC_SP 0x0020 Space(スペースコード) #define TC_LANG 0xfe00 言語指定コード #define TC_SPEC 0xff00 特殊コード #define TC_ESC 0xff80 Escape
typedef H UNITS; 座標系の単位 typedef UH CHSIZE; 文字サイズ typedef UH SCALE; 文字表示の行間隔 typedef UH RATIO; 文字表示などの比率
typedef struct {
UH id; TADセグメントID
UH len; TADセグメントサイズ
(len 以降のサイズ)
} TADSEG;
typedef struct {
UH id; TADセグメントID
UH len; ダミー領域(0xffff を格納する)
UW llen; TADセグメントサイズ
(len 以降のサイズ)
} LTADSEG;
#define TS_INFO 0xE0 管理情報セグメント #define TS_TEXT 0xE1 文章開始セグメント #define TS_TEXTEND 0xE2 文章終了セグメント #define TS_FIG 0xE3 図形開始セグメント #define TS_FIGEND 0xE4 図形終了セグメント #define TS_IMAGE 0xE5 画像セグメント #define TS_VOBJ 0xE6 仮身セグメント #define TS_DFUSEN 0xE7 指定付箋セグメント #define TS_FFUSEN 0xE8 機能付箋セグメント #define TS_SFUSEN 0xE9 設定付箋セグメント
#define TS_TPAGE 0xA0 文章ページ割付け指定付箋 #define TS_TRULER 0xA1 行書式指定付箋 #define TS_TFONT 0xA2 文字指定付箋 #define TS_TCHAR 0xA3 特殊文字指定付箋 #define TS_TATTR 0xA4 文字割り付け指定付箋 #define TS_TSTYLE 0xA5 文字修飾指定付箋 #define TS_TVAR 0xAD 変数参照指定付箋 #define TS_TMEMO 0xAE 文章メモ指定付箋 #define TS_TAPPL 0xAF 文章アプリケーション指定付箋
#define TS_FPRIM 0xB0 図形要素セグメント #define TS_FDEF 0xB1 データ定義セグメント #define TS_FGRP 0xB2 グループ定義セグメント #define TS_FMAC 0xB3 マクロ定義/参照セグメント #define TS_FATTR 0xB4 図形修飾セグメント #define TS_FPAGE 0xB5 図形ページ割り付け指定付箋 #define TS_FMEMO 0xBE 図形メモ指定付箋 #define TS_FAPPL 0xBF 図形アプリケーション指定付箋
TS_INFO)
typedef struct {
UH subid; /* 管理情報項目ID */
UH sublen; /* 項目データバイト数 */
UH data[1]; /* 項目データ本体 */
} INFOSEG;
TS_TEXT)
typedef struct {
RECT view; /* 表示領域 */
RECT draw; /* 描画領域 */
UNITS h_unit; /* 水平ユニット */
UNITS v_unit; /* 垂直ユニット */
UH lang; /* デフォールト言語 */
UH bgpat; /* 背景パターンID */
} TEXTSEG;
#define TEXTSEG_STRUCT "hhhhhhhhhhhh"
TS_FIG)
typedef struct {
RECT view; /* 表示領域 */
RECT draw; /* 描画領域 */
UNITS h_unit; /* 水平ユニット */
UNITS v_unit; /* 垂直ユニット */
W ratio; /* 予約 */
} FIGSEG;
#define FIGSEG_STRUCT "hhhhhhhhhhw"
TS_IMAGE)
typedef struct {
RECT view; /* 表示領域 */
RECT draw; /* 描画領域 */
UNITS h_unit; /* 水平ユニット */
UNITS v_unit; /* 垂直ユニット */
H slope; /* 傾斜 */
UH color; /* カラー属性 */
UH cinfo[4]; /* カラー情報 */
UW extlen; /* 拡張情報のバイト数 */
UW extend; /* 拡張情報へのオフセット */
UW mask; /* マスクデータへのオフセット */
/*---------------- 圧縮ビットマップデータ---------------*/
H compac; /* 圧縮ビットマップ形式 */
H planes; /* ビットマッププレーン数 */
H pixbits; /* ピクセルビット数 */
H rowbytes; /* プレーンの横幅バイト数 */
RECT bounds; /* 座標定義 */
UW base_off[1]; /* プレーンデータ開始アドレス */
} IMAGESEG;
#define IMAGESEG_STRUCT "4h4hhhhh4hwwwhhhh4h" /* bounds まで */
#define BASE_SIZE_IMAGESEG (sizeof(IMAGESEG)-sizeof(UW)) /* bounds まで */
typedef struct {
UH ext_id; /* 拡張情報のタイプ */
UH len; /* 拡張情報のバイト数 */
union {
UB data[1]; /* 拡張情報本体 */
UW offset; /* 拡張情報本体へのオフセット */
} i;
} IMAGESEG_EXTEND;
#define IMAGESEG_EXTEND_STRUCT "hh" /* len まで */
#define BASE_SIZE_IMAGESEG_EXTEND (sizeof(UH)*2) /* len まで */
TS_VOBJ)
typedef struct {
RECT view; /* 表示領域 */
H height; /* 開いた場合の高さ */
CHSIZE chsz; /* 文字サイズ */
COLOR frcol; /* 枠の色 */
COLOR chcol; /* 文字色 */
COLOR tbcol; /* タイトル背景色 */
COLOR bgcol; /* 開いた場合の背景色 */
UH dlen; /* 固有データのバイト長 */
} VOBJSEG;
#define VOBJSEG_STRUCT "hhhhhhwwwwh"
#define SIZE_VOBJSEG(dlen) (30 + dlen)
TS_FFUSEN)
typedef struct {
RECT view; /* 表示領域 */
CHSIZE chsz; /* 文字サイズ */
UH frcol[2]; /* 枠の色 */
UH chcol[2]; /* 文字色 */
UH tbcol[2]; /* タイトル背景色 */
UH pict; /* ピクトグラム/タイプ */
UH appl[3]; /* アプリケーションID */
TC name[16]; /* 付箋名 */
TC dtype[16]; /* データタイプ名 */
UH dlen; /* 固有データのバイト長 */
} FUSENSEG;
#define FUSENSEG_STRUCT "hhhhhwwwh3h16h16hh"
#define SIZE_FUSENSEG(dlen) (96 + dlen)
TS_DFUSEN)
typedef struct {
RECT view; /* 表示領域 */
CHSIZE chsz; /* 文字サイズ */
UH frcol[2]; /* 枠の色 */
UH chcol[2]; /* 文字色 */
UH tbcol[2]; /* タイトル背景色 */
UH pict; /* ピクトグラム/タイプ */
UH appl[3]; /* アプリケーションID */
TC name[16]; /* 付箋名 */
UH dlen[2]; /* 固有データのバイト長 */
} DFUSENSEG;
#define DFUSENSEG_STRUCT "hhhhhwwwh3h16hw"
#define SIZE_DFUSENSEG(dlen) (66 + dlen)
longlong.h にもどるtcode.h にすすむ