📄 ctuxedothread.h
字号:
#ifndef CTUXEDOTHREAD_H
#define CTUXEDOTHREAD_H
#include <afxcmn.h>
#include <QObject>
#include <QString.h>
#include <QThread.h>
#include <fml32.h>
#include <atmi.h>
//#include "tsengineqt.h"
#define MSG_TUX_INIT_OK 10
#define MSG_TUX_INIT_FAILED 11
#define MSG_TUX_CALL_OK 12
#define MSG_TUX_CALL_FAILED 13
#define MSG_TUX_TERM_OK 14
#define MSG_TUX_TERM_FAILED 15
#define ERROR_TUX_ALREADY_INITED -1
#define ERROR_BUFF_NOT_ALLOCATED -2
#define ERROR_BUFF_ALLOC_FAILED -3
#define ERROR_FML_LIB_NOT_FOUND -4
#define ERROR_FML_LIB_VERSION_INVALID -5
#define ERROR_TUX_LIB_NOT_FOUND -6
#define ERROR_TUX_LIB_VERSION_INVALID -7
#define ERROR_TUX_NOT_INITED -8
#define ERROR_THREAD_NOT_EXIST -9
#define ERROR_FML_CALL_ALREADY_RUNNING -10
#define ERROR_FML_CALL_REPLY_TIMEOUT -11
#define STATUS_CLOSED 0
#define STATUS_INITIALIZING 1
#define STATUS_IDLE 2
#define STATUS_CALLING 3
#define STATUS_ERROR 3
typedef void (__stdcall * TUXCALLBACK)(long eventID,long Param1,long Param2);
typedef struct _FunTuxedo
{
char * (_TMDLLENTRY *tpalloc)(char _TM_FAR *,char _TM_FAR *,long);
int (_TMDLLENTRY *tpcall) (char _TM_FAR *, char _TM_FAR *, long, char _TM_FAR * _TM_FAR *, long _TM_FAR *, long);
//_TMDLLENTRY tpcall _((char _TM_FAR *, char _TM_FAR *, long, char _TM_FAR * _TM_FAR *, long _TM_FAR *, long));
int (_TMDLLENTRY *tpacall )(char _TM_FAR *, char _TM_FAR *, long, long); int (_TMDLLENTRY *tpgetrply)(int _TM_FAR *, char _TM_FAR * _TM_FAR *, long _TM_FAR *, long); int (_TMDLLENTRY *tpcancel)(int);
int (_TMDLLENTRY *tpabort)(long); int (_TMDLLENTRY *tpbegin)(unsigned long, long); int (_TMDLLENTRY *tpcommit)(long);
int(_TMDLLENTRY *tpinit)(TPINIT _TM_FAR *);
int (_TMDLLENTRY *tpterm)(void);
void(_TMDLLENTRY *tpfree)(char _TM_FAR *);
void(_TMDLLENTRY *tuxputenv)(char _TM_FAR *);
//int (_TMDLLENTRY *tperrno)();
char * (_TMDLLENTRY * tpstrerror)(long);
int (_TMDLLENTRY *Fget32)(FBFR32 _TM_FAR *,FLDID32,FLDOCC32,char _TM_FAR *,FLDLEN32 _TM_FAR *);
int (_TMDLLENTRY *Fchg32)(FBFR32 _TM_FAR *,FLDID32,FLDOCC32,char _TM_FAR *,FLDLEN32);
long (_TMDLLENTRY *tperrordetail) (long); char _TM_FAR * (_TMDLLENTRY *tpstrerrordetail) (long, long);
HMODULE hLibfml32; // libfml32.dll 动态库句柄
HMODULE hWtuxws32; // wtuxws32.dll 动态库句柄
//FLDOCC32 (_TMDLLENTRY *Foccur32)( FBFR32 _TM_FAR *,FLDID32);
}FUNTUXEDO,*PFUNTUXEDO;
class CTuxedoThread : public QThread
{
Q_OBJECT
public:
//CTuxedoThread(QObject *parent);
CTuxedoThread();
~CTuxedoThread();
int TuxInit(char * WSNADDR,char *userName,char *pwd,char * cltName,char * grpName,bool bAsync, TUXCALLBACK cbAddress);
int TuxSetupCall(char * SrvName, char *inputBuf,char **outputBuf,long * outputLen);
int TuxFmlSetupCall(char * SrvName);
int TuxFmlAllocBuf(long nSndBufLen,long nRcvBufLen);
int TuxFmlFreeBuf();
int TuxFmlSetSndFld(long FldID,long nRow, char * pValue,long nLen);
int TuxFmlGetRcvFld(long FldID,long nRow, char * pValue,long * nLen);
int TuxFmlRunCall();
int TuxFmlRunCallA();
int TuxStrRunCall();
int KeepConnection();
int WebSrvInit(char * wsdlAddr,char * servName,char * portName, char * userName, char * pwd);
bool m_bForInitOrCall;
int RunInit();
char cc[20];
bool m_bJustFinished;
long m_msgID;
QString m_msgDesc;
long m_ErrID;
bool m_bAsync;
long m_ID;
//bool m_bFmlCallOK;
bool m_bPretendInit;
bool m_bCalling;
signals:
void Inited(int i);
public slots:
void myInited(int i)
{
int jj=0;
};
void OnFinished()
{
int jj=0;
};
protected:
void run();
private:
QString action;
//char * m_WSNADDR;char *m_userName;char *m_pwd;char * m_cltName;char * m_grpName; TUXCALLBACK m_cbAddress;
char m_WSNADDR[200];char m_userName[30];char m_pwd[30];char m_cltName[50];char m_grpName[50]; TUXCALLBACK m_cbAddress;
char *m_inputBuf;char ** m_outputBuf;long * m_outputLen;
//char * m_SrvName;
char m_SrvName[100];
FBFR32 * m_pSndBufFML;
FBFR32 *m_pRcvBufFML;
long m_nSndBufLen;
long m_nRcvBufLen;
};
#endif // CTUXEDOTHREAD_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -