Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

67 lines
1.6 KiB

  1. #ifndef _REQUEST_H_
  2. #define _REQUEST_H_
  3. // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  4. //
  5. // REQUEST.H
  6. //
  7. // Header for DAV request class.
  8. //
  9. // Copyright 1986-1997 Microsoft Corporation, All Rights Reserved
  10. //
  11. #include <autoptr.h> // For CMTRefCounted parent
  12. class IEcb;
  13. class IBodyPartVisitor;
  14. class IAcceptObserver;
  15. class IAsyncStream;
  16. class IAsyncIStreamObserver;
  17. class IAsyncPersistObserver;
  18. // ========================================================================
  19. //
  20. // CLASS IRequest
  21. //
  22. // Interface for HTTP 1.1/DAV 1.0 request using an ISAPI
  23. // EXTENSION_CONTROL_BLOCK
  24. //
  25. class IRequest : public CMTRefCounted
  26. {
  27. private:
  28. // NOT IMPLEMENTED
  29. //
  30. IRequest& operator=( const IRequest& );
  31. IRequest( const IRequest& );
  32. protected:
  33. // CREATORS
  34. // Only create this object through it's descendents!
  35. //
  36. IRequest() {};
  37. public:
  38. // CREATORS
  39. //
  40. virtual ~IRequest() = 0;
  41. // ACCESSORS
  42. //
  43. virtual LPCSTR LpszGetHeader( LPCSTR pszName ) const = 0;
  44. virtual LPCWSTR LpwszGetHeader( LPCSTR pszName, BOOL fUrlConversion ) const = 0;
  45. virtual BOOL FExistsBody() const = 0;
  46. virtual IStream * GetBodyIStream( IAsyncIStreamObserver& obs ) const = 0;
  47. virtual VOID AsyncImplPersistBody( IAsyncStream& stm,
  48. IAsyncPersistObserver& obs ) const = 0;
  49. // MANIPULATORS
  50. //
  51. virtual void ClearBody() = 0;
  52. virtual void AddBodyText( UINT cbText, LPCSTR pszText ) = 0;
  53. virtual void AddBodyStream( IStream& stm ) = 0;
  54. };
  55. IRequest * NewRequest( IEcb& ecb );
  56. #endif // !defined(_REQUEST_H_)