////////////////////////////////////////////////////////////////////////////
// CommandID.h
// サーバ・クライアント・主筆間で通信に使用される定数
////////////////////////////////////////////////////////////////////////////

#if !defined( COMMANID_H_INCLUDED_ )
#define COMMANID_H_INCLUDED_

// クライアント・サーバ・主筆間で送受信されるコマンドで、
// 保持しているデータの種別を示す定数

// 汎用の不定値
#define SC_NOT_AVAILABLE		0x00000000

#define SCI_S_COMMAND		0x01000001	// コマンドの種別
#define SCI_S_FILE_NAME		0x01000002	// ファイル名
#define SCI_S_LINE_NUMBER	0x01000003	// 行番号
#define SCI_S_SYNTAX		0x01000004	// 構文種別
#define SCI_S_PID			0x01000005	// プロセスID
#define SCI_S_STDIN			0x01000006	// 標準入力に関連づけられたファイルのパス名
#define SCI_S_STDOUT		0x01000007	// 標準出力〃
#define SCI_S_STDERR		0x01000008	// 標準エラー出力〃

// IDがSCI_S_COMMANDの時に保持しているデータ
#define SCID_CMD_OPENFILE_CS	0x02000101	// クライアントからのファイルオープン要求
#define SCID_CMD_OPENFILE_TS	0x02000202	// 主筆でファイルが開かれる
#define SCID_CMD_NEWFILE_TS		0x02000203	// 主筆で新規ファイルが作成された
#define SCID_CMD_WRITEFILE_TS	0x02000204	// 主筆で「名前をつけて保存」が行われた
#define SCID_CMD_EXIT_TS		0x02000205	// 主筆が終了した
#define SCID_CMD_ACTIVATE_ST	0x02000406	// 主筆をアクティブにする
#define SCID_CMD_RQ_FNAME_ST	0x02000407	// ファイル名を要求する
#define SCID_CMD_SVR_RESTART_ST	0x02000408	// サーバが再起動された
#define SCID_CMD_STOP_CS		0x02000109	// サーバを停止する
#define SCID_CMD_STOP_FORCE_CS	0x0200010A	// サーバを強制停止する
#define SCID_CMD_SET_STANDALONE_ST	0x0200040B	// スタンドアロンモードにする
#define SCID_CMD_OPENFILE_NW_TS	0x0200020C	// 主筆からの新しいウインドウでファイルを開く要求
#define SCID_CMD_JOIN_TS		0x0200020D	// コンストラクション・モードへの参加要求
#define SCID_CMD_UNJOIN_TS		0x0200020E	// コンストラクション・モードからの脱退要求

#define SCID_CMD_CS_MASK		0x00000100	// クライアント->サーバ用コマンドのマスク
#define SCID_CMD_TS_MASK		0x00000200	// 主筆->サーバ用コマンドのマスク
#define SCID_CMD_ST_MASK		0x00000400	// サーバ->主筆用コマンドのマスク

// 戻り値
#define SCI_R_STATUS		0x03000001	// 状態
#define SCI_R_STOPPED		0x03000002	// 呼び出し側の処理を続行可能か否か
#define SCI_R_MSG_NUMBER	0x03000003	// メッセージ番号
#define SCI_R_FREE_MSG		0x03000004	// メッセージ文字列

// SCI_R_STATUSの時に保持している値
#define SCID_RSTAT_OK		0x04000001	// 正常終了
#define SCID_RSTAT_ERR		0x04000002	// 異常終了

// SCI_R_STOPPEDの時に保持している値
#define SCID_RSTOP_RESUME	0x05000001	// 処理を続行する
#define SCID_RSTOP_STOP		0x05000002	// 中断する

// SCI_R_MSG_NUMBERの時に保持している値
#define SCID_RMSG_UNEXPENTED	0x06000001
#define SCID_RMSG_OUTOFMEMORY	0x06000002	// メモリ不足
#define SCID_RMSG_FILEISOPEND	0x06000003	// 指定されたファイルはすでに開かれている
#define SCID_RMSG_TAEDIT_IS_EXIST	0x06000004	// 主筆のインスタンスが残っている
#define SCID_RMSG_SERVER_REVOKED	0x06000005	// サーバが停止された


// 主筆が生成する名前付きパイプのプレフィックス
#define SCPX_TO_SYUHITU		"SP_T_"
#define SCPX_FROM_SYUHITU	"SP_F_"

// doorをアタッチするファイルの名前
#define SCPX_DOOR	"Negotiater"

// 環境変数の名前
#define SCEV_COMMUNITY_PATH	"SYUHITU_COMMUNITY"
#define SCEV_SERVER_PATH	"SYUHITU_SERVER"
#define SCEV_TAEDIT_PATH	"SYUHITU_TAEDIT"
#define SCEV_CLIENT_PATH	"SYUHITU_CLIENT"




#endif // COMMANID_H_INCLUDED_
