Stockdrv.cpp
上传用户:nameszq
上传日期:2014-08-12
资源大小:336k
文件大小:3k
源码类别:

金融证券系统

开发平台:

Visual C++

  1. #include "StdAfx.h"
  2. #include "TSWnd.h"
  3. #include "TSCache.h"
  4. #include "TWSocket.h"
  5. #include "Stockdrv.h"
  6. #include "SelectSrvDlg.h"
  7. int WINAPI Stock_Init(HWND hWnd,UINT Msg,int nWorkMode)
  8. {
  9. CTSWnd::GetInstance().AddWnd( hWnd, Msg );
  10. if( !CTWSocket::GetInstance().IsWorking() )
  11. {
  12. AfxGetQSProfile().LoadProfile();
  13. CSelectSrvDlg dlg;
  14. if( IDOK != dlg.DoModal() )
  15. return 1;
  16. else
  17. return -1;
  18. }
  19. return 1;
  20. }
  21. int WINAPI Stock_Init_Nodialog(HWND hWnd,UINT Msg,int nWorkMode,
  22. const char * szAddress, UINT nPort, const char * szUser, const char * szPasswd )
  23. {
  24. CTSWnd::GetInstance().AddWnd( hWnd, Msg );
  25. if( !CTWSocket::GetInstance().IsWorking() )
  26. {
  27. AfxGetQSProfile().LoadProfile();
  28. BOOL bSuccess = CTWSocket::GetInstance().BeginWorking( AfxGetQSProfile().GetAlias(szAddress),
  29. nPort, szUser, szPasswd );
  30. if( !bSuccess )
  31. AfxMessageBox( CTWSocket::GetInstance().GetLastErrorString(), MB_OK );
  32. return bSuccess ? 1 : -1;
  33. }
  34. return 1;
  35. }
  36. int WINAPI  Stock_Quit(HWND hWnd)
  37. {
  38. CTSWnd::GetInstance().RemoveWnd( hWnd );
  39. if( CTSWnd::GetInstance().IsEmpty() && CTWSocket::GetInstance().IsWorking() )
  40. {
  41. CTSCache::GetInstance().ClearReceiveBuffer();
  42. CTWSocket::GetInstance().EndWorking();
  43. }
  44. return 1;
  45. }
  46. int WINAPI  GetTotalNumber()
  47. {
  48. return CTSCache::GetInstance().GetTotalNumber();
  49. }
  50. int WINAPI  GetStockByNoEx(int nNo,RCV_REPORT_STRUCTEx * pBuf)
  51. {
  52. return ( CTSCache::GetInstance().GetStockByNoEx( nNo, pBuf ) ? 1 : -1 );
  53. }
  54. int WINAPI  GetStockByCodeEx(char * pszStockCode,int nMarket,RCV_REPORT_STRUCTEx * pBuf)
  55. {
  56. return ( CTSCache::GetInstance().GetStockByCodeEx( pszStockCode, nMarket, pBuf ) ? 1 : -1 );
  57. }
  58. int WINAPI  SetupReceiver(BOOL bShowWindow)
  59. {
  60. if( bShowWindow )
  61. {
  62. CSelectSrvDlg dlg;
  63. if( IDOK != dlg.DoModal() )
  64. return -1;
  65. CTWSocket::GetInstance().EndWorking();
  66. return ( CTWSocket::GetInstance().BeginWorking( dlg.GetServer(), dlg.GetPort(),
  67. dlg.GetUser(), dlg.GetPasswd() ) ? 1 : -1 );
  68. }
  69. if( !CTWSocket::GetInstance().IsWorking() )
  70. return ( CTWSocket::GetInstance().BeginWorking( ) ? 1 : -1 );
  71. return TRUE;
  72. }
  73. DWORD WINAPI  GetStockDrvInfo(int nInfo,void * pBuf)
  74. {
  75. switch( nInfo )
  76. {
  77. case RI_IDSTRING:
  78. strcpy( (char*)pBuf, "Ninebulles_NET_Tongshi_3.00" );
  79. break;
  80. case RI_IDCODE:
  81. strcpy( (char*)pBuf, "88888888" );
  82. break;
  83. case RI_VERSION:
  84. strcpy( (char*)pBuf, "3.00" );
  85. break;
  86. case RI_ERRRATE:
  87. strcpy( (char*)pBuf, "0" );
  88. break;
  89. case RI_STKNUM:
  90. return GetTotalNumber();
  91. case RI_SUPPORTEXTHQ:
  92. return -1;
  93. case RI_ENABLEDZHTRANS:
  94. return -1;
  95. case RI_ENABLETS3FILE:
  96. return -1;
  97. default:
  98. return -1;
  99. }
  100. return 1;
  101. }
  102. /////////////////////////////////////////////////////////////////////////////////////
  103. // The new interfaces
  104. int WINAPI IsEngineWorking( )
  105. {
  106. return CTWSocket::GetInstance().IsWorking();
  107. }
  108. int WINAPI SetAutoReport( int bAutoReport )
  109. {
  110. return CTWSocket::GetInstance().SetAutoReport( bAutoReport );
  111. }
  112. int WINAPI RequestStockData( int nDataType, TW_STOCK * pStocks, int nSize, int nKType, int nDataCount )
  113. {
  114. return CTWSocket::GetInstance().RequestStockData( nDataType, pStocks, nSize, nKType, nDataCount );
  115. }