STOCKSOURCEMFC.CPP
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:4k
源码类别:

Windows编程

开发平台:

Visual C++

  1. // STOCKSOURCEMFC.CPP - Implementation file for your Internet Server
  2. //    StockSourceMFC Extension
  3. //
  4. // This is a part of the Microsoft Foundation Classes C++ library.
  5. // Copyright (C) 1992-1998 Microsoft Corporation
  6. // All rights reserved.
  7. //
  8. // This source code is only intended as a supplement to the
  9. // Microsoft Foundation Classes Reference and related
  10. // electronic documentation provided with the library.
  11. // See these sources for detailed information regarding the
  12. // Microsoft Foundation Classes product.
  13. #include "stdafx.h"
  14. #include "stocksourceMFC.h"
  15. ///////////////////////////////////////////////////////////////////////
  16. // The one and only CWinApp object
  17. // NOTE: You may remove this object if you alter your project to no
  18. // longer use MFC in a DLL.
  19. CWinApp theApp;
  20. ///////////////////////////////////////////////////////////////////////
  21. // command-parsing map
  22. BEGIN_PARSE_MAP(CStockSourceMFCExtension, CHttpServer)
  23. // TODO: insert your ON_PARSE_COMMAND() and
  24. // ON_PARSE_COMMAND_PARAMS() here to hook up your commands.
  25. // For example:
  26. DEFAULT_PARSE_COMMAND(Default, CStockSourceMFCExtension)
  27. ON_PARSE_COMMAND(QueryForStock, CStockSourceMFCExtension, ITS_PSTR)
  28. ON_PARSE_COMMAND_PARAMS("Symbol=~")
  29. END_PARSE_MAP(CStockSourceMFCExtension)
  30. ///////////////////////////////////////////////////////////////////////
  31. // The one and only CStockSourceMFCExtension object
  32. CStockSourceMFCExtension theExtension;
  33. ///////////////////////////////////////////////////////////////////////
  34. // CStockSourceMFCExtension implementation
  35. CStockSourceMFCExtension::CStockSourceMFCExtension()
  36. {
  37. }
  38. CStockSourceMFCExtension::~CStockSourceMFCExtension()
  39. {
  40. }
  41. BOOL CStockSourceMFCExtension::GetExtensionVersion(HSE_VERSION_INFO* pVer)
  42. {
  43. // Call default implementation for initialization
  44. CHttpServer::GetExtensionVersion(pVer);
  45. // Load description string
  46. TCHAR sz[HSE_MAX_EXT_DLL_NAME_LEN+1];
  47. ISAPIVERIFY(::LoadString(AfxGetResourceHandle(),
  48. IDS_SERVER, sz, HSE_MAX_EXT_DLL_NAME_LEN));
  49. _tcscpy(pVer->lpszExtensionDesc, sz);
  50. return TRUE;
  51. }
  52. ///////////////////////////////////////////////////////////////////////
  53. // CStockSourceMFCExtension command handlers
  54. void CStockSourceMFCExtension::Default(CHttpServerContext* pCtxt)
  55. {
  56. StartContent(pCtxt);
  57. WriteTitle(pCtxt);
  58. *pCtxt << _T("This default message was produced by the Internet");
  59. *pCtxt << _T(" Server DLL Wizard. Edit your CStockSourceMFCExtension::Default()");
  60. *pCtxt << _T(" implementation to change it.rn");
  61. EndContent(pCtxt);
  62. }
  63. // Load stock symbol file and query for stock information. If the symbol is new then
  64. // it is added to the list.  Save the list to the data file when finished.
  65. //
  66. void CStockSourceMFCExtension::QueryForStock(CHttpServerContext* pCtxt,
  67.  LPCTSTR pstrString)
  68. {
  69. StartContent(pCtxt);
  70. WriteTitle(pCtxt);
  71. m_stockDataMgr.LoadStockSymbols();
  72. CStockData                  sd;
  73. m_stockDataMgr.LookUp(pstrString, sd);
  74. TCHAR   numBuf1[20];
  75. TCHAR   numBuf2[20];
  76. _stprintf(numBuf1, "%.3f", sd.m_fCur);
  77. _stprintf(numBuf2, "%.3f", sd.m_fChange);
  78. *pCtxt << _T("n<h1>Query For Stock:</h1><hr>n")
  79.    << _T("Current: ") << numBuf1 << _T("<P>n")
  80.    << _T("Change: ") << numBuf2 << _T("<P>")
  81.    << _T("<hr>");
  82. EndContent(pCtxt);
  83. m_stockDataMgr.SaveStockSymbols();
  84. }
  85. // Do not edit the following lines, which are needed by ClassWizard.
  86. #if 0
  87. BEGIN_MESSAGE_MAP(CStockSourceMFCExtension, CHttpServer)
  88. //{{AFX_MSG_MAP(CStockSourceMFCExtension)
  89. //}}AFX_MSG_MAP
  90. END_MESSAGE_MAP()
  91. #endif  // 0
  92. ///////////////////////////////////////////////////////////////////////
  93. // If your extension will not use MFC, you'll need this code to make
  94. // sure the extension objects can find the resource handle for the
  95. // module.  If you convert your extension to not be dependent on MFC,
  96. // remove the comments arounn the following AfxGetResourceHandle()
  97. // and DllMain() functions, as well as the g_hInstance global.
  98. /****
  99. static HINSTANCE g_hInstance;
  100. HINSTANCE AFXISAPI AfxGetResourceHandle()
  101. {
  102. return g_hInstance;
  103. }
  104. BOOL WINAPI DllMain(HINSTANCE hInst, ULONG ulReason,
  105. LPVOID lpReserved)
  106. {
  107. if (ulReason == DLL_PROCESS_ATTACH)
  108. {
  109. g_hInstance = hInst;
  110. }
  111. return TRUE;
  112. }
  113. ****/