STKDRVContainer.cpp
上传用户:zhanglf88
上传日期:2013-11-19
资源大小:6036k
文件大小:2k
源码类别:

金融证券系统

开发平台:

Visual C++

  1. // STKDRVContainer.cpp: implementation of the CSTKDRVContainer class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #include "stdafx.h"
  5. #include "StkNet.h"
  6. #include "STKDRVContainer.h"
  7. #ifdef _DEBUG
  8. #undef THIS_FILE
  9. static char THIS_FILE[]=__FILE__;
  10. #define new DEBUG_NEW
  11. #endif
  12. //////////////////////////////////////////////////////////////////////
  13. // Construction/Destruction
  14. //////////////////////////////////////////////////////////////////////
  15. CSTKDRVContainer::CSTKDRVContainer()
  16. {
  17. }
  18. CSTKDRVContainer::~CSTKDRVContainer()
  19. {
  20. UnloadDriver( );
  21. }
  22. int CSTKDRVContainer::LoadDriver( CStringArray & astrDriverPath )
  23. {
  24. int nCount = 0;
  25. m_aDriver.SetSize( astrDriverPath.GetSize() );
  26. for( int i=0; i<astrDriverPath.GetSize(); i++ )
  27. {
  28. if( m_aDriver.ElementAt(i).LoadDriver( astrDriverPath[i] ) )
  29. nCount ++;
  30. }
  31. return nCount;
  32. }
  33. void CSTKDRVContainer::UnloadDriver( )
  34. {
  35. for( int i=0; i<m_aDriver.GetSize(); i++ )
  36. m_aDriver.ElementAt(i).UnloadDriver();
  37. m_aDriver.RemoveAll();
  38. }
  39. int CSTKDRVContainer::Stock_Init(HWND hWnd,UINT uMsg,int nWorkMode)
  40. {
  41. int nRet = -1;
  42. for( int i=0; i<m_aDriver.GetSize(); i++ )
  43. {
  44. if( m_aDriver.ElementAt(i).Stock_Init(hWnd,uMsg,nWorkMode) > 0 )
  45. nRet = 1;
  46. }
  47. return nRet;
  48. }
  49. int CSTKDRVContainer::Stock_Quit(HWND hWnd)
  50. {
  51. int nRet = 1;
  52. for( int i=0; i<m_aDriver.GetSize(); i++ )
  53. {
  54. if( m_aDriver.ElementAt(i).Stock_Quit(hWnd) < 0 )
  55. nRet = -1;
  56. }
  57. return nRet;
  58. }
  59. int CSTKDRVContainer::GetTotalNumber()
  60. {
  61. int nRet = 0;
  62. for( int i=0; i<m_aDriver.GetSize(); i++ )
  63. {
  64. nRet = m_aDriver.ElementAt(i).GetTotalNumber();
  65. if( nRet > 0 )
  66. return nRet;
  67. }
  68. return nRet;
  69. }
  70. int CSTKDRVContainer::GetStockByNoEx(int nNo,RCV_REPORT_STRUCTEx * pBuf)
  71. {
  72. int nRet = -1;
  73. for( int i=0; i<m_aDriver.GetSize(); i++ )
  74. {
  75. nRet = m_aDriver.ElementAt(i).GetStockByNoEx(nNo, pBuf);
  76. if( nRet > 0 )
  77. return nRet;
  78. }
  79. return nRet;
  80. }
  81. int CSTKDRVContainer::GetStockByCodeEx(char * pszStockCode,int nMarket,RCV_REPORT_STRUCTEx * pBuf)
  82. {
  83. int nRet = -1;
  84. for( int i=0; i<m_aDriver.GetSize(); i++ )
  85. {
  86. nRet = m_aDriver.ElementAt(i).GetStockByCodeEx(pszStockCode, nMarket, pBuf);
  87. if( nRet > 0 )
  88. return nRet;
  89. }
  90. return nRet;
  91. }
  92. int CSTKDRVContainer::SetupReceiver(BOOL bShowWindow)
  93. {
  94. int nRet = -1;
  95. for( int i=0; i<m_aDriver.GetSize(); i++ )
  96. {
  97. nRet = m_aDriver.ElementAt(i).SetupReceiver(bShowWindow);
  98. if( nRet > 0 )
  99. return nRet;
  100. }
  101. return nRet;
  102. }