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

CA认证

开发平台:

Visual C++

  1. /*
  2. Module : HttpMimeManager.h
  3. Purpose: Defines the interface for the Mime Manager classes
  4. Created: PJN / 22-04-1999
  5. Copyright (c) 1999 - 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 __HTTPMIMEMANAGER_H__
  16. #define __HTTPMIMEMANAGER_H__
  17. #ifndef W3MFC_EXT_CLASS
  18. #define W3MFC_EXT_CLASS
  19. #endif
  20. /////////////////////////////// Includes //////////////////////////////////////
  21. #include "HttpRequest.h"
  22. /////////////////////////////// Classes ///////////////////////////////////////
  23. //Base class which you derive from to implement a Mime Lookup manager i.e.
  24. //a class which encapsulates retrieval of MIME types given a filename 
  25. //extension
  26. class W3MFC_EXT_CLASS CHttpMimeManager
  27. {
  28. public:
  29.   virtual CString GetMimeType(const CHttpRequest& request) = 0;
  30. };
  31. //Class which does mime lookups based on the Win32 registry mime settings
  32. class W3MFC_EXT_CLASS CRegistryHttpMimeManager : public CHttpMimeManager
  33. {
  34. public:
  35. //constructors / Destructors
  36.   CRegistryHttpMimeManager();
  37.   virtual ~CRegistryHttpMimeManager();
  38. //Methods
  39.   virtual CString GetMimeType(const CHttpRequest& request);
  40. protected:
  41.   CMapStringToString m_sMimeMap;
  42.   CCriticalSection m_CS;
  43. };
  44. //Class which does mime lookups based on a section in an ini file e.g. "W3MFC.ini"
  45. class W3MFC_EXT_CLASS CIniHttpMimeManager : public CHttpMimeManager
  46. {
  47. public:
  48. //constructors / Destructors
  49.   CIniHttpMimeManager();
  50.   virtual ~CIniHttpMimeManager();
  51. //Methods
  52.   int Initialize(const CString& sIniPath, const CString& sSection);
  53.   virtual CString GetMimeType(const CHttpRequest& request);
  54. protected:
  55. //Methods
  56.   void FullArraysFromMultiSZString(LPTSTR pszString);
  57. //Member variables
  58.   CMapStringToString m_sMimeMap;
  59.   CCriticalSection   m_CS;
  60. };
  61. #endif //__HTTPMIMEMANAGER_H__