#if !defined(_COMMDOWN_20140425_0850_H_)
#define _COMMDOWN_20140425_0850_H_


#if defined(_WINDOWS_)
	#pragma warning(push)
	#pragma warning(disable : 4200 )
#endif


#if defined(_WINDOWS_)
	#define MAX_Socket_BUFFER_SIZE (sizeof(DOSSTARTPAGE) + sizeof(TESTPAGE) + 2 + 2 * sizeof (WORD) * 2048 + 1024)
	#define SOCKET_FRAME_SIZE (256 + 128)
#endif

#define  WAITSOCKET_TIME_NORMAL      1000
#define  WAITSOCKET_TIME_AGAIN       1000 


#define WINDOWDOS_TAG_STARTPAGE 0xA501u 
#define WINDOWDOS_TAG_TESTPAGE  0xA505u


#define WINDOWDOS_COMMAND_UNDOWN         0x0001u //未知
#define WINDOWDOS_COMMAND_ASK            0x0002u //请求
#define WINDOWDOS_COMMAND_ANSWER         0x0003u //响应
#define WINDOWDOS_COMMAND_LINKING        0x0004u //联机
#define WINDOWDOS_COMMAND_UNLINKING      0x0005u //取消联机或者未联机状态

#define WINDOWDOS_COMMAND_OK             0x0006u //正确
#define WINDOWDOS_COMMAND_FAIL           0x0007u //错误
#define WINDOWDOS_COMMAND_PRIORITY       0x0008u //权限
#define WINDOWDOS_COMMAND_DISPLAY        0x0009u //显示
#define WINDOWDOS_COMMAND_LOGIN          0x000Au //登录
#define WINDOWDOS_COMMAND_HEARTBEET      0x000Bu //心跳
#define WINDOWDOS_COMMAND_QUIT           0x000Cu //退出


#define WINDOWDOS_COMMAND_DATA           0x000Du //数据包
#define WINDOWDOS_COMMAND_ASKRECEIVEFILE 0x000Eu //请示接收文件
#define WINDOWDOS_COMMAND_ASKSENDFILE    0x000Fu //表示发送文件



#define WINDOWDOS_COMMAND_OUTPORT1       0x0010u //Out,Byte,   8Bit
#define WINDOWDOS_COMMAND_OUTPORT2       0x0011u //Out,Word,   16Bit
#define WINDOWDOS_COMMAND_OUTPORT4       0x0012u //Out.DWORD,  32Bit
#define WINDOWDOS_COMMAND_OUTPORT8       0x0013u //Out,DDWORD, 64Bit
#define WINDOWDOS_COMMAND_OUTBIT1        0x0014u //Out,BYTE,   8 Bit
#define WINDOWDOS_COMMAND_OUTBIT2        0x0015u //Out,Word,   16 Bit
#define WINDOWDOS_COMMAND_OUTBIT4        0x0016u //Out,DWord,  32 Bit
#define WINDOWDOS_COMMAND_OUTBIT8        0x0017u //Out,DDWord, 64 Bit
#define WINDOWDOS_COMMAND_INPORT1        0x0018u //In, Byte,   8 Bit
#define WINDOWDOS_COMMAND_INPORT2        0x0019u //In, Word,   16 Bit
#define WINDOWDOS_COMMAND_INPORT4        0x001Au //In, DWORD,  32 Bit
#define WINDOWDOS_COMMAND_INPORT8        0x001Bu //In, DDWORD, 64 Bit
#define WINDOWDOS_COMMAND_INBIT1         0x001Cu //In, BYTE,   8 Bit
#define WINDOWDOS_COMMAND_INBIT2         0x001Du //In, Word,   16 Bit
#define WINDOWDOS_COMMAND_INBIT4         0x001Eu //In, DWord,  32 Bit
#define WINDOWDOS_COMMAND_INBIT8         0x001Fu //In, DDWord, 64 Bit
#define WINDOWDOS_COMMAND_OUTSTRING      0x0020u //Out,String
#define WINDOWDOS_COMMAND_INSTRING       0x0021u //In, String

#define WINDOWDOS_COMMAND_REGOUTPORT     0x0022u //注册所有的输出口
#define WINDOWDOS_COMMAND_CLEAROUTPORT   0x0023u //清除所有的输出口
#define WINDOWDOS_COMMAND_PURSE          0x0024u //脉冲
#define WINDOWDOS_COMMAND_CHPRINTF       0x0025u //显示字符串
#define WINDOWDOS_COMMAND_DATA_EX        0x0026u //内部数据
#define WINDOWDOS_COMMAND_MESSAGEBOX_DISPLAY 0x0027u //显示对话框
#define WINDOWDOS_COMMAND_MESSAGEBOX_DOMODAL 0x0028u //进入对话框消息循环
#define WINDOWDOS_COMMAND_MESSAGEBOX_DESTROY 0x0029u //删除对话框

#define WINDOWDOS_COMMAND_ASKAD          0x0030u //AD模数转换请求
#define WINDOWDOS_COMMAND_ASKDA          0x0031u //DA数模转换请求
#define WINDOWDOS_COMMAND_ASKAD_DA       0x0032u //先要求D/A后马上A/D
#define WINDOWDOS_COMMAND_DA_PWM         0x0033u //DA数模转换PWM
#define WINDOWDOS_COMMAND_ASKAD_INPUT    0x0034u //先要求A/D并输入口曲线
#define WINDOWDOS_COMMAND_ASKDA_INPUT    0x0035u //先要求D/A后并输入口曲线
#define WINDOWDOS_COMMAND_ASKAD_DA_INPUT 0x0036u ///先要求D/A后马上A/D且读输入口
#define WINDOWDOS_COMMAND_CURVE_INPUT    0x0037u //只输入口曲线

#define WINDOWDOS_COMMAND_FREQ           0x0040u //频率
#define WINDOWDOS_COMMAND_SURGE          0x0041u //匝间
#define WINDOWDOS_COMMAND_HIGHVOL        0x0042u //升高压
#define WINDOWDOS_COMMAND_AROUND_LIGHT   0x0043u //光电判转向
#define WINDOWDOS_COMMAND_STEP           0x0044u //步进
#define WINDOWDOS_COMMAND_ARC            0x0045u //电弧
#define WINDOWDOS_COMMAND_CM82C54        0x0046u //CM82C54

#define WINDOWDOS_COMMAND_SELFIP         0x0070u //下位机IP
#define WINDOWDOS_COMMAND_PEERIP         0x0071u //上位机IP
#define WINDOWDOS_COMMAND_REBOOT         0x0072u //下位机重启动

#define WINDOWDOS_COMMAND_VERSION        0x0080u //下位机版本号
#define WINDOWDOS_COMMAND_RESPONSE       0x0081u //响应

#define WINDOWDOS_COMMAND_ASK_SENDPAGE      0x0082u //请求发送包开始
#define WINDOWDOS_COMMAND_END_SENDPAGE      0x0083u //请求发送包结束
#define WINDOWDOS_COMMAND_ASK_RECEIVEPAGE   0x0084u //请求接收包开始
#define WINDOWDOS_COMMAND_END_RECEIVEPAGE   0x0085u //请求接收包结束
#define WINDOWDOS_COMMAND_USERPAGE          0x0086u //中间数据包


#define WINDOWDOS_COMMAND_CODE_PERMIT_GET   0x0087u //命令充许获得
#define WINDOWDOS_COMMAND_CODE_PERMIT_SET   0x0088u //命令充许设置




#define WINDOWDOS_COMMAND_SERVE_INF         0x0090u //数据收集服务器信息
#define WINDOWDOS_COMMAND_WORKSTATION_INF   0x0091u //数据工作站信息


#define WINDOWDOS_COMMAND_SERIAL_IO1        0x00B0u //串行IO-1
#define WINDOWDOS_COMMAND_SERIAL_IO2        0x00B1u //串行IO-2
#define WINDOWDOS_COMMAND_SERIAL_IO3        0x00B2u //串行IO-3
#define WINDOWDOS_COMMAND_SERIAL_IO4        0x00B3u //串行IO-4
#define WINDOWDOS_COMMAND_SERIAL_IO5        0x00B4u //串行IO-5
#define WINDOWDOS_COMMAND_SERIAL_IO6        0x00B5u //串行IO-6
#define WINDOWDOS_COMMAND_SERIAL_IO7        0x00B6u //串行IO-7
#define WINDOWDOS_COMMAND_SERIAL_IO8        0x00B7u //串行IO-8


#define WINDOWDOS_COMMAND_USER0          (0xFF00u + 0u) //用户0
#define WINDOWDOS_COMMAND_USER1          (0xFF00u + 1u) //用户1
#define WINDOWDOS_COMMAND_USER2          (0xFF00u + 2u) //用户2
#define WINDOWDOS_COMMAND_USER3          (0xFF00u + 3u) //用户3
#define WINDOWDOS_COMMAND_USER4          (0xFF00u + 4u) //用户4
#define WINDOWDOS_COMMAND_USER5          (0xFF00u + 5u) //用户5
#define WINDOWDOS_COMMAND_USER6          (0xFF00u + 6u) //用户6
#define WINDOWDOS_COMMAND_USER7          (0xFF00u + 7u) //用户7
#define WINDOWDOS_COMMAND_USER8          (0xFF00u + 8u) //用户8
#define WINDOWDOS_COMMAND_USER9          (0xFF00u + 9u) //用户9
#define WINDOWDOS_COMMAND_USER           WINDOWDOS_COMMAND_USER0 //用户



typedef struct tagWINSAIL_USERNAMEMANAGER
{
		char  bufComputerName[256];
		DWORD dwFormat;
		DWORD dwIP_Self;
		DWORD dwIP_Peer;
		WORD  wPort_Self;
		WORD  wPort_Peer;
		DWORD dwReserved2;
		DWORD dwReserved3;
		DWORD dwReserved4;
		DWORD dwReserved5;
		DWORD dwReserved6;
		DWORD dwReserved7;
		DWORD dwReserved8;
		DWORD dwReserved9;
		DWORD dwReserved10;
}WINSAIL_USERNAMEMANAGER, *LPWINSAIL_USERNAMEMANAGER;

typedef struct _tagDOSSTARTPAGE //所有数据包的头
{
	WORD wTag; //标志,应该为WINDOWDOS_TAG_STARTPAGE
	WORD wLength; //长度
#if defined(_WINDOWS_)
	BYTE bysData[0]; //数据，长度为0
#endif
	//...
	//DWORD wCrc;
}DOSSTARTPAGE, *LPDOSSTARTPAGE;



typedef struct _tagTESTPAGE //测度包
{
	WORD   wTag;    //标志，应该为WINDOWDOS_TAG_TESTPAGE
	WORD   wLength; //长度
	union
	{
		DWORD   dwAsk; //请求号
		DWORD   dwAnswer; //反应号
	};
	WORD   wCommand;  //命令
	WORD wExpand1; //扩展1

	DWORD dwFrameIndex;
	//WORD wExPand2; //扩展2
	//WORD wExpand3; //扩展3
#if defined(_WINDOWS_)
	BYTE bysData[0];   //数据，长度为0
#endif
	//...
}TESTPAGE, *LPTESTPAGE;


typedef struct _tagSOCKETUSERPAGE //用户自定义包
{
	DWORD dwLength;
	WORD  wDataCommand;
	WORD  wReserved2;
	DWORD dwReserved3;
	DWORD dwReserved4;

	DWORD dwReserved5;
	DWORD dwReserved6;
	DWORD dwReserved7;
	DWORD dwReserved8;
}*LPSOCKETUSERPAGE, SOCKETUSERPAGE;


//密码属性
typedef struct  tagPASSWORDPAGE
{
	char  strUser[16];
	char  strPassword[12];
	WORD  wPriviledge;
	WORD  wKey;
}PASSWORDPAGE, *LPPASSWORDPAGE;

//显示属性包
typedef struct _tagDISPLAYPAGE
{
	BYTE byDisplay1;
	BYTE byDisplay2;
	BYTE byDisplay3;
	BYTE byDisplay4;
	BYTE byDisplay5;
	BYTE byDisplay6;
	BYTE byDisplay7;
	BYTE byDisplay8;	
}DISPLAYPAGE, *LPDISPLAYPAGE;


//文件属性包
typedef struct _tagFILEATTRIBPAGE
{
	LONG gFileLength;
#if defined(_WINDOWS_)
	char strFileName[0];
#endif
}FILEATTRIBPAGE, *LPFILEATTRIBPAGE;

typedef struct  _tagCHPRINTFPAGE
{
	WORD wX;
	WORD wY;
	DWORD dwForeColor;
	DWORD dwBackColor;
	WORD  wTimes;
	WORD  wOption;
	WORD  wDoWithMouse;
	WORD  wStringLen;

#if defined(_WINDOWS_)
	char strInformation[0];
#endif
}CHPRINTFPAGE, *LPCHPRINTFPAGE;



//显示对话框需求
typedef struct _tagMESSAGEBOXDISPLAYASKPAGE
{
	DWORD dwFormat;
	char bufCaption[128];
	char bufLabel[252];
}MESSAGEBOXDISPLAYASKPAGE, *LPMESSAGEBOXDISPLAYASKPAGE;

//显示对话框应答
typedef struct _tagMESSAGEBOXDISPLAYANSWERPAGE
{
	DWORD dwWndFormat;
}MESSAGEBOXDISPLAYANSWERPAGE, *LPMESSAGEBOXDISPLAYANSWERPAGE;

//对话框消息循环
typedef struct _tagMESSAGEBOXDOMODALPAGE
{
	DWORD  dwWndFormat;
}MESSAGEBOXDOMODALPAGE, *LPMESSAGEBOXDOMODALPAGE;

//删除对话框
typedef struct _tagMESSAGEBOXDESTROYPAGE
{
	DWORD  dwWndFormat;
}MESSAGEBOXDESTROYPAGE, *LPMESSAGEBOXDESTROYPAGE;



//下位机IP地址
typedef struct _tagSELFIPPAGE
{
	struct in_addr mIP;
	BYTE  bufPassword[32];
}SELFIPPAGE, *LPSELFIPPAGE;

//上位机IP地址
typedef struct _tagPEERIPPAGE
{
	struct in_addr mIP;
	BYTE  bufPassword[32];
}PEERIPPAGE, *LPPEERIPPAGE;


typedef struct _tagINOUTPAGE //IO包
{
	WORD wPort; //口地址
	WORD wReserved; //保留，4字节对齐
	union
	{
		BYTE  byData; //8位数据
		WORD  wData;  //16位数据
		DWORD dwData; //32位数据
	};

}INOUTPAGE, *LPINOUTPAGE;



typedef struct _tagADASKPAGE //AD采样请求包
{
	WORD  wStyle;    //AD采样卡类型
	WORD  wBase;     //口地址
	DWORD dwSampleFreq; //采样率
	WORD  wChannel;	 //通道
	BYTE  byChannelMax; //通道数目
	BYTE  byHigh;    //0：低通道，1：为高通道;注：通道数目为1是有效
	WORD  wCount;    //数据个数
	BYTE  byModify1; //是否需要校准系数1
	BYTE  byModify2; //是否需要校准系数2
	WORD  wModify1;  //校准系数位置1
	WORD  wModify2;  //校准系数位置2
	BYTE  byNeedWave; //是否需要传递波形数据
	BYTE  byCompact;  //传输的波形是否需要压缩
	BYTE  byHardware; //硬件触发和软件触发选择。0：软件触发，1：硬件触发
	BYTE  byReserved;   //保留
}ADASKPAGE, *LPADASKPAGE;

typedef struct _tagADANSWERPAGE //AD采样回答包
{
	float fAC1;  //1通道AC值
	float fDC1;  //1通道DC值
	float fAC2;  //2通道AC值
	float fDC2;  //2通道DC值
	float fPower; //功率值
	BYTE  byWave;  //是否传输波形
	BYTE  byCompact; //是否波形压缩
	WORD  wReserved;
#if defined(_WINDOWS_)
	WORD  dwsData[0]; //采样数据
#endif
}ADANSWERPAGE, *LPADANSWERPAGE;


typedef struct _tagDAASKPAGE //DA请求包
{
	WORD  wStyle;    //DA卡类型
	WORD  wBase;     //口地址
	WORD  wChannel;	 //通道
	BYTE  byFloat;   //0:格式化整数，1：电压浮点数
	BYTE  byServed;  //保留
	union
	{
		DWORD  dwData;     //二进制数据
		float  fVoltage;  //电压
	};
}DAASKPAGE, *LPDAASKPAGE;

typedef struct _tagDAASKPAGEEX //DA扩展请求包
{
	WORD  wStyle;    //DA卡类型
	WORD  wBase;     //口地址
	WORD  wChannel;	 //通道
	BYTE  byFloat;   //0:格式化整数，1：电压浮点数
	BYTE  byReserved;  //保留
	union
	{
		DWORD  dwData;     //二进制数据
		float fVoltage;  //电压
	};
	union
	{
		DWORD  dwData2;     //二进制数据
		float fVoltage2;  //电压
	};

	DWORD dwCounter;
	DWORD dwTimeUS;
}DAASKPAGEEX, *LPDAASKPAGEEX;


typedef struct _tagDAPWMPAGE //DA模数转换PWM
{
	DAASKPAGE mDaAskPageH; //DA请求包高电平
	DAASKPAGE mDaAskPageL; //DA请求包低电平
	DWORD dwPWM_TimeH;      //高电平时间
	DWORD dwPWM_TimeL;     //低电平时间
	DWORD dwCounter;       //循环次数
}DAPWMPAGE, *LPDAPWMPAGE;

typedef struct _tagINPUTCURVEPAGE //输入口曲线请求包
{
	WORD   wStyle; //输入口的类型
	WORD   wPort;  //输入口的口地址
	WORD   wBit;   //输入口的数据位
	WORD   wSize;  //输入口的总线长度
	DWORD  dwCount; //输入口的数据点长度
}INPUTCURVEPAGE, *LPINPUTCURVEPAGE;

typedef struct _tagADCARDATTRIB
{
	BYTE   byMask;//0Bit->AD,1Bit->DA,2Bit->Input1
	BYTE   byReserved1;
	WORD   wReserved2;
}ADCARDATTRIB, *LPADCARDATTRIB;


typedef struct _tagFREQASKPAGE //转速采样请求包
{
	WORD  wStyle;    //采样卡类型
	WORD  wBase;     //口地址
	WORD  wChannel;	 //通道
	WORD  wMicroSecond; //时间
	double dbMaybeFreq;
}FREQASKPAGE, *LPFREQASKPAGE;

typedef struct _tagFREQANSWERPAGE //转速采样回答包
{
	double dbFreq;
}FREQANSWERPAGE , *LPFREQANSWERPAGE;


#define MAX_PURSEPAGE_BUFFER_SIZE (sizeof(PURSEPAGE) + (20 - 1) * sizeof(PURSEATTRIBPAGE))

//脉冲属性包
typedef struct tagPURSEATTRIBPAGE
{
	WORD  wPort;              //口地址
	WORD  wBit;               //位地址
	WORD  wReserved;          //保留
	WORD  wPurseCount;        //脉冲个数
	WORD  wTimeH;             //高电平时间，单位uS
	WORD  wTimeL;             //低电平时间，单位uS
}PURSEATTRIBPAGE, *LPPURSEATTRIBPAGE;

//脉冲包
typedef struct _tagPURSEPAGE
{
	WORD  wCardStyle;                //板卡类型
	BYTE  byChannelCount;            //通道数
	BYTE  byMethod;                  //方法
	BYTE  byAsynchronization;        //异步
	BYTE  byReserved1;               //保留1
	BYTE  byReserved2;               //保留2
	BYTE  byReserved3;               //保留3
	PURSEATTRIBPAGE mPurseAttrib[1]; //脉冲属性数组
}PURSEPAGE, *LPPURSEPAGE;


//高压调压包
typedef struct _tagHIGHVOLPAGE
{
	WORD   wAddress;                 //地址
	WORD   wFreq;                    //频率
	float  fVoltage;                 //电压
	WORD   wRiseTime;                //上升时间
	WORD   wSwitch;                  //继电器状态

}HIGHVOLPAGE, *LPHIGHVOLPAGE;


//步进包
typedef struct _tagSTEPPAGE
{
	WORD  wPort;            //基地址
	WORD  wBit;             //位
	WORD  wActiveMap;       //活动Map
	WORD  wInactiveMap;     //停止Map
	DWORD dwActiveForUS;    //活动时间（以uS为单位）
	DWORD dwInactiveForUS;  //停止时间（以uS为单位）
	DWORD dwSteps;          //步进数
	DWORD dwReserved1;      //保留1
	DWORD dwReserved2;      //保留2
}STEPPAGE, *LPSTEPPAGE;

//匝间冲击包
typedef struct _tagSURGEPAGE
{
	WORD  wCardStyle;                //板卡类型
	WORD  wBase;                     //板卡口地址
	WORD  wCount;                    //数据长度
	WORD  wSurge_Port;               //匝间口地址
	WORD  wSurge_MapActive;          //激活Surge字节内容
	WORD  wSurge_MapInactive;        //关闭Surge字节内容 
	WORD  wOscillatory;              //晶振MHz
	WORD  wDivideFreq;               //分频数
	WORD  wInternalTrigger;          //内部触发
	WORD  wSign;                     //信号发生器

	WORD  wBase2;                    //第二块板卡口地址
	WORD  wAgain;                    //冲击次数

	WORD  wSyn_Port;                 //同步端口
	WORD  wSyn_Bit;                  //同步位
	WORD  wSyn_Style;                //同步口类型
	WORD  wSyn_WaitBeforeHigh;       //先等高电平

}SURGEPAGE, *LPSURGEPAGE;




//光电转向请求包
typedef struct tagAROUNDPAGEASK
{
	DWORD dwReserved1; //保留1
	DWORD dwReserved2; //保留2
	WORD wPort1; //第一个光电口地址
	WORD wBit1;  //第一个光电口的位
	WORD wPort2; //第二个光电口地址
	WORD wBit2;  //第二个光电口的位

}AROUNDPAGEASK, *LPAROUNDPAGEASK;


//光电转向应答包
typedef struct tagAROUNDPAGEANSWER
{
	DWORD dwReserved1; //保留1
	DWORD dwReserved2; //保留2
	DWORD dwAround;    //转向结果
}AROUNDPAGEANSWER, *LPAROUNDPAGEANSWER;


//ARC请求包
typedef struct tagARCASKPAGE
{
        WORD wStyle; 
		WORD wCommand; //0=Gate,1=Start,2=Read,3=End 
        WORD wBase;
        WORD wGate;
        WORD wReserved1;
		WORD wReserved2;
}ARCASKPAGE, *LPARCASKPAGE;


//ARC应答包
typedef struct tagARCANSWERPAGE
{
        WORD wCounter;
        WORD wReserved1;
        WORD wReserved2;
        WORD wReserved3;
}ARCANSWERPAGE, *LPARCANSWERPAGE;



//CM82C54请求包
typedef struct tagCM82C54ASKPAGE
{
        WORD wStyle; 
		WORD wCommand; //0=Gate,1=ReadControl,2=WriteControl,3=ReadCounter,4=WriteCounter 
        WORD wBase;
        WORD wGate;
        WORD wChannel;
		WORD wCounter;
}CM82C54ASKPAGE, *LPCM82C54ASKPAGE;


//CM82C54应答包
typedef struct tagCM82C54ANSWERPAGE
{
        WORD wCounter;
        WORD wReserved1;
        WORD wReserved2;
        WORD wReserved3;
}CM82C54ANSWERPAGE, *LPCM82C54ANSWERPAGE;



//命令充许设置包
typedef struct tagCOMMANDPERMITPAGE
{
	WORD wCommand;
	WORD wPermit;
	WORD wReserved1;
	WORD wReserved2;
	WORD wReserved3;
	WORD wReserved4;
	WORD wReserved5;
	WORD wReserved6;
}COMMANDPERMITPAGE, *LPCOMMANDPERMITPAGE;

typedef struct tagSERIAL_IO2
{
	WORD   wPort1;       //第一个地址
	WORD   wPort2;       //第二个地址
	WORD   wFormat;      //端口映像
	WORD   wAddr;        //插槽号
	DWORD  dwValue1;     //第一个口数据
	DWORD  dwValue2;     //第二个口数据
	DWORD  dwExec;       //是否锁存执行
	DWORD  dwReserved1;  //保留-1
	DWORD  dwReserved2;  //保留-2
	DWORD  dwReserved3;  //保留-3
	DWORD  dwReserved4;  //保留-4
	DWORD  dwReserved5;  //保留-5
	DWORD  dwReserved6;  //保留-6
	DWORD  dwReserved7;  //保留-7
	DWORD  dwReserved8;  //保留-8
}*lpSERAIL_IO2, SERIAL_IO2;


#if defined(_WINDOWS_)

	#define         DOS_MB_OK               0x00000001L
	#define         DOS_MB_YESNO			0x00000002L
	#define         DOS_MB_OKNO             0x00000003L
	#define         DOS_MB_OKCANCEL         0x00000004L
	#define         DOS_MB_OKNOCANCEL       0x00000005L
	#define         DOS_MB_RETRYNOCANCEL    0x00000006L
	#define         DOS_MB_RETRYOKCANCEL    0x00000007L
	#define         DOS_MB_RETRYOKEXIT      0x00000008L
	#define         DOS_MB_ABORTRETRYIGNORE 0x00000009L
	#define         DOS_MB_RETRYCANCEL      0x0000000AL
	#define         DOS_MB_YESNOCANCEL      0x0000000BL

	#define         DOS_MB_DEFBUTTON1       0x00000000L
	#define         DOS_MB_DEFBUTTON2       0x00000100L
	#define         DOS_MB_DEFBUTTON3       0x00000200L
 	#define         DOS_MB_DEFBUTTON4       0x00000400L
   
	#define         DOS_MB_ICONEXCLAMATION  0x00001000L
	#define         DOS_MB_ICONINFORMATION  0x00002000L
	#define         DOS_MB_ICONQUESTION     0x00004000L
	#define         DOS_MB_ICONSTOP         0x00008000L
#endif



#if defined(_WINDOWS_)
	#pragma warning(pop)
#endif

#endif
