www.pudn.com > inet_stock.zip > JY_CL.H
#define WM_JY_INIT WM_USER+20
#define WM_JYCX_RES WM_USER+30
#define WM_JY_RES WM_USER+40
#define JY_CHKUSR_HEAD (LPSTR)"JYCHKUSR"
#define JY_CHGPWD_HEAD (LPSTR)"JYCHGPWD"
#define JY_BUYSELL_HEAD (LPSTR)"JYBUYSELL"
#define JY_CANCEL_HEAD (LPSTR)"JYCANCEL"
#define JY_YECX_HEAD (LPSTR)"JYYECX"
#define JY_CJCX_HEAD (LPSTR)"JYCJCX"
#define JY_WTCX_HEAD (LPSTR)"JYWTCX"
#define JY_CXEND_HEAD (LPSTR)"JYCXEND"
#define JY_TIMEOUT_HEAD (LPSTR)"JYTIMEOUT"
#define JY_ZQSXX_HEAD (LPSTR)"PKRSA"
#define MAX_GDDM_SIZE 10
#define MAX_JYMM_SIZE 6
#define MAX_RQ_SIZE 8
#define MAX_GPDM_SIZE 6
#define MAX_HTHM_SIZE 6
#define MAX_TIME_SIZE 8
#define MAX_JY_WAIT_TIME 35
#define MAX_CANCEL_SENDCOUNT 2
#define MAX_CX_SENDCOUNT 20
#define MAX_ZQS_COUNT 32
typedef struct tag_zqsxx
{
int zqsid[MAX_ZQS_COUNT +1];
char zqsjc[MAX_ZQS_COUNT +1][12 +1];
}ZQSXX, FAR *LPZQSXX;
///////// 检查用户和密码请求
typedef struct tag_PACK_ASK_CHKUSR
{
char jys;
int zqsid;
long userId;
char gddm[MAX_GDDM_SIZE+1];
char jymm[MAX_JYMM_SIZE+1];
int sdHq;
}JY_ASK_CHKUSR, FAR *LPJY_ASK_CHKUSR;
////////// 检查用户和密码返回
typedef struct tag_PACK_ANS_CHKUSR
{
char flag; //if 1,right,if 0 ,then user invalid
char jys;
long userId;
char gddm[MAX_GDDM_SIZE+1];
}JY_ANS_CHKUSR, FAR *LPJY_ANS_CHKUSR;
/////////// 2 修改密码请求
typedef struct tag_PACK_ASK_CHGPWD
{
char jys; //
long userId;
char gddm[MAX_GDDM_SIZE+1]; //
//char oldPwd[MAX_JYMM_SIZE+1];
char newPwd[MAX_JYMM_SIZE+1]; //
}JY_ASK_CHGPWD, FAR *LPJY_ASK_CHGPWD;
///////// 修改密码返回
typedef struct tag_PACK_ANS_CHGPWD
{
char flag; // if 0 succeed,if -1 then failed
char jys; //
char gddm[MAX_GDDM_SIZE+1]; //
}JY_ANS_CHGPWD, FAR *LPJY_ANS_CHGPWD;
///////// 3 买卖请求
typedef struct tag_PACK_ASK_BUYSELL
{
char jys;
long userId;
char gddm[MAX_GDDM_SIZE+1];
char gpdm[MAX_GPDM_SIZE+1];
char bs;
long wtgs;
long wtjg;
}JY_ASK_BUYSELL, FAR *LPJY_ASK_BUYSELL;
///////// 买卖返回
typedef struct tag_PACK_ANS_BUYSELL
{
char flag; //0 succeed,-1 no money,-2 no stock
char jys;
char gddm[MAX_GDDM_SIZE+1];
char hthm[MAX_HTHM_SIZE+1];
char bs;
}JY_ANS_BUYSELL, FAR *LPJY_ANS_BUYSELL;
////////// 4 撤单请求
typedef struct tag_CANCEL
{
char hthm[MAX_HTHM_SIZE+1];
}CANCEL, FAR *LPCANCEL;
typedef struct tag_PACK_ASK_CANCEL
{
char jys;
long userId;
char gddm[MAX_GDDM_SIZE+1];
int cancelCount;
CANCEL Cancel[MAX_CANCEL_SENDCOUNT];
}JY_ASK_CANCEL, FAR *LPJY_ASK_CANCEL;
/////////// 4 撤单返回
typedef struct tag_PACK_ANS_CANCEL
{
char flag[MAX_CANCEL_SENDCOUNT]; //0 succeed,-1 failed
char jys;
char gddm[MAX_GDDM_SIZE+1];
}JY_ANS_CANCEL, FAR *LPJY_ANS_CANCEL;
///////// 5 余额查询请求
typedef struct tag_PACK_ASK_YECX
{
char jys;
long userId;
char gddm[MAX_GDDM_SIZE+1];
char gpdm[MAX_GPDM_SIZE+1];
}JY_ASK_YECX, FAR *LPJY_ASK_YECX;
typedef struct tag_GPTG
{
char gpdm[MAX_GPDM_SIZE+1];
char kys[12+1], gpye[12+1];
char ghrq[MAX_RQ_SIZE+1];
}JY_GPTG, FAR *LPJY_GPTG;
///////// 5 余额查询结果
typedef struct tag_PACK_ANS_YECX
{
char flag;
char jys;
char gddm[MAX_GDDM_SIZE+1];
int recCount;
double kys, zjye;
JY_GPTG GpTg[MAX_CX_SENDCOUNT];
}JY_ANS_YECX, FAR *LPJY_ANS_YECX;
/////// 6 成交查询
typedef struct tag_PACK_ASK_CJCX
{
char jys;
long userId;
char gddm[MAX_GDDM_SIZE+1];
char cjrq[MAX_RQ_SIZE+1]; //YY:MM:DD
char hthm[MAX_HTHM_SIZE+1]; // IF HTHM IS EMPTY,THEN RUQER ALL CJ
}JY_ASK_CJCX, FAR *LPJY_ASK_CJCX;
typedef struct tag_CJ
{
char hthm[MAX_HTHM_SIZE+1]; //
char cjsj[MAX_TIME_SIZE+1]; //HHMISS
char mmbz; //B,S
char gpdm[MAX_GPDM_SIZE+1];
char cjgs[12+1];
char cjjg[12+1];
}JY_CJ, FAR *LPJY_CJ;
////// 6 成交查询结果
typedef struct tag_PACK_ANS_CJCX
{
char flag;
char jys;
char gddm[MAX_GDDM_SIZE+1];
int recCount;
char cjrq[MAX_RQ_SIZE+1]; //YY:MM:DD
JY_CJ Cj[MAX_CX_SENDCOUNT];
}JY_ANS_CJCX, FAR *LPJY_ANS_CJCX;
/////// 7 委托查询请求
typedef struct tag_PACK_ASK_WTCX
{
char jys;
long userId;
char gddm[MAX_GDDM_SIZE+1]; //
char wtrq[MAX_RQ_SIZE+1]; //YY:MM:DD
char hthm[MAX_HTHM_SIZE+1]; // IF HTHM IS EMPTY,THEN RUQER ALL WT
char cdcx;
}JY_ASK_WTCX, FAR *LPJY_ASK_WTCX;
typedef struct tag_WT
{
char hthm[MAX_GPDM_SIZE+1]; //
char wtsj[MAX_TIME_SIZE+1]; //HHMISS
char mmbz; //B,S
char gpdm[MAX_GPDM_SIZE+1];
char wtgs[12+1]; //if wtgs<0 then is cancel
char wtjg[12+1];
}JY_WT, FAR *LPJY_WT;
///////// 7 委托查询结果
typedef struct tag_PACK_ANS_WTCX
{
char flag;
char jys;
char gddm[MAX_GDDM_SIZE+1];
int recCount;
char wtrq[MAX_RQ_SIZE+1]; //YYMMDD
JY_WT Wt[MAX_CX_SENDCOUNT];
}JY_ANS_WTCX, FAR *LPJY_ANS_WTCX;
// defeine comm dbf file
#define fld_ASKNO 0
#define fld_ANSNO 1
#define fld_STKNO 2
#define fld_GDDM 3
#define fld_JYMM 4
#define fld_GPDM 5
#define fld_WTGS 6
#define fld_WTJG 7
#define fld_HTHM 8
#define fld_DATE 9
#define fld_STAT 10
#define REQ_NULL '0'
#define REQ_CHKUSR '1'
#define REQ_CHGPWD '2'
#define REQ_BUY '3'
#define REQ_SELL '4'
#define REQ_CANCEL '5'
#define REQ_YECX '6'
#define REQ_CJCX '7'
#define REQ_WTCX '8'
#define ANS_SUCC '0'
#define ANS_TIME_OUT 'A'
#define ANS_SYS_ERR 'B'
#define ANS_NO_PRIV 'C'
#define ANS_NO_GDDM 'D'
#define ANS_CANCEL_FAILE 'E'
#define ANS_NO_DATA_FOUND 'F'
#define ANS_GDDM_USE 'I'
#define ANS_SUSP_REQ 'J'
#define ANS_CX_END -50
#define ANS_UNKOWN -100
#define JY_FLAG_RESET -200
#define MAX_WAIT_TIME 20
void CenterWindow(HWND hDlg);
void DrawFrame(HDC hDC, HWND hWnd);
BOOL JyInit(void);
void JyExit(void);
void JyTimer(void);
int Jy(void);
int DlgJy(void);
int DlgSelectJys(void);
int DlgSelectZqs(void);
int DlgChkUsr();
int DlgChgPwd();
int DlgBuySell(int bs);
int DlgCancel();
int DlgYecx();
int DlgCjcx();
int DlgWtcx();
int InitQsInfo(void);
int JyQs;
char Addr[MAX_ZQS_COUNT][15];
JY_ANS_CHKUSR curChkUsrRes;
JY_ASK_CHKUSR curChkUsrData;
HWND ghDlgJy;
ZQSXX Qsxx;
LRESULT CALLBACK SelJysDlgProc(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK SelZqsDlgProc(HWND, UINT, WPARAM ,LPARAM);
LRESULT CALLBACK ChkUsrDlgProc(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK AskPwdDlgProc(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK ChgPwdDlgProc(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK JyDlgProc(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK BuySellDlgProc(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK CancelDlgProc(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK YecxDlgProc(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK WtcxDlgProc(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK CjcxDlgProc(HWND, UINT, WPARAM, LPARAM);