HttpISAPIManager.h
上传用户:dengkfang
上传日期:2008-12-30
资源大小:5233k
文件大小:2k
源码类别:

CA认证

开发平台:

Visual C++

  1. /*
  2. Module : HttpISAPIManager.h
  3. Purpose: Defines the interface for the ISAPI Manager classes
  4. Created: PJN / 23-02-2003
  5. Copyright (c) 2003 - 2005 by PJ Naughter.  (Web: www.naughter.com, Email: pjna@naughter.com)
  6. All rights reserved.
  7. Copyright / Usage Details:
  8. You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise) 
  9. when your product is released in binary form. You are allowed to modify the source code in any way you want 
  10. except you cannot modify the copyright details at the top of each module. If you want to distribute source 
  11. code with your application, then you are only allowed to distribute versions released by the author. This is 
  12. to maintain a single distribution point for the source code. 
  13. */
  14. /////////////////////////////// Defines ///////////////////////////////////////
  15. #ifndef __HTTPISAPIMANAGER_H__
  16. #define __HTTPISAPIMANAGER_H__
  17. #ifndef W3MFC_EXT_CLASS
  18. #define W3MFC_EXT_CLASS
  19. #endif
  20. /////////////////////////////// Includes //////////////////////////////////////
  21. #include "HttpRequest.h"
  22. /////////////////////////////// Classes ///////////////////////////////////////
  23. //Class which does ISAPI extension lookup based on the extension of the request
  24. class W3MFC_EXT_CLASS CHttpISAPIManager
  25. {
  26. public:
  27. //Methods
  28.   virtual CString GetISAPIExtension(const CHttpRequest& request) = 0;
  29. };
  30. //Class which does ISAPI extension lookups based on a section in an ini file e.g. "W3MFC.ini"
  31. class W3MFC_EXT_CLASS CIniHttpISAPIManager : public CHttpISAPIManager
  32. {
  33. public:
  34. //constructors / Destructors
  35.   CIniHttpISAPIManager();
  36.   virtual ~CIniHttpISAPIManager();
  37. //Methods
  38.   int Initialize(const CString& sIniPath, const CString& sSection);
  39.   virtual CString GetISAPIExtension(const CHttpRequest& request);
  40. protected:
  41. //Methods
  42.   void FullArraysFromMultiSZString(LPTSTR pszString);
  43. //Member variables
  44.   CMapStringToString m_sExtensionMap;
  45.   CCriticalSection   m_CS;
  46. };
  47. #endif //__HTTPISAPIMANAGER_H__