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.

91 lines
2.8 KiB

  1. /******************************************************************************
  2. Copyright (c) 2000 Microsoft Corporation
  3. Module Name:
  4. Server.h
  5. Abstract:
  6. This file contains the declaration of the MPCServer class,
  7. that controls the overall interaction between client and server.
  8. Revision History:
  9. Davide Massarenti (Dmassare) 04/20/99
  10. created
  11. ******************************************************************************/
  12. #if !defined(__INCLUDED___ULSERVER___SERVER_H___)
  13. #define __INCLUDED___ULSERVER___SERVER_H___
  14. #include <Wrapper.h>
  15. class MPCServer // Hungarian: mpcs
  16. {
  17. friend class MPCServerCOMWrapper;
  18. friend class MPCSessionCOMWrapper;
  19. ////////////////////
  20. MPC::wstring m_szURL;
  21. MPC::wstring m_szUser;
  22. CISAPIinstance* m_isapiInstance;
  23. MPC::FileLog* m_flLogHandle;
  24. BOOL m_fKeepAlive;
  25. MPCHttpContext* m_hcCallback;
  26. MPCClient* m_mpccClient;
  27. UploadLibrary::ClientRequest m_crClientRequest;
  28. UploadLibrary::ServerResponse m_srServerResponse;
  29. MPC::Serializer_Memory m_streamResponseData;
  30. MPCServerCOMWrapper m_SelfCOM;
  31. MPCSession* m_Session;
  32. IULProvider* m_customProvider;
  33. bool m_fTerminated;
  34. ////////////////////////////////////////
  35. HRESULT GrabClient ();
  36. HRESULT ReleaseClient();
  37. HRESULT HandleCommand_OpenSession ( /*[in] */ MPC::Serializer& streamConn );
  38. HRESULT HandleCommand_WriteSession( /*[in] */ MPC::Serializer& streamConn );
  39. void SetResponse( /*[in]*/ DWORD fResponse, /*[in]*/ BOOL fKeepAlive = FALSE );
  40. ////////////////////////////////////////
  41. HRESULT CustomProvider_Create ( /*[in]*/ MPCSession& mpcsSession );
  42. HRESULT CustomProvider_ValidateClient ( );
  43. HRESULT CustomProvider_DataAvailable ( );
  44. HRESULT CustomProvider_TransferComplete( );
  45. HRESULT CustomProvider_SetResponse ( /*[in]*/ IStream* data );
  46. HRESULT CustomProvider_Release ( );
  47. //////////////////////////////////////////////////////////////////
  48. public:
  49. MPCServer( /*[in]*/ MPCHttpContext* hcCallback, /*[in]*/ LPCWSTR szURL, /*[in]*/ LPCWSTR szUser );
  50. virtual ~MPCServer();
  51. IULServer* COM();
  52. /////////////////////////////////////////////
  53. HRESULT Process( BOOL& fKeepAlive );
  54. /////////////////////////////////////////////
  55. void getURL ( MPC::wstring& szURL );
  56. void getUser( MPC::wstring& szUser );
  57. CISAPIinstance* getInstance();
  58. MPC::FileLog* getFileLog ();
  59. };
  60. #endif // !defined(__INCLUDED___ULSERVER___SERVER_H___)