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.

78 lines
2.1 KiB

  1. // SdoService.h: Definition of the CSdoNtSam class
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #ifndef _INC_IAS_SDO_SERVICE_H_
  5. #define _INC_IAS_SDO_SERVICE_H_
  6. #include "resource.h" // main symbols
  7. #include <ias.h>
  8. #include <sdoiaspriv.h>
  9. #include "sdo.h"
  10. /////////////////////////////////////////////////////////////////////////////
  11. // CSdoService
  12. /////////////////////////////////////////////////////////////////////////////
  13. class CSdoService :
  14. public CComObjectRootEx<CComMultiThreadModel>,
  15. public CComCoClass<CSdoService,&CLSID_SdoService>,
  16. public IDispatchImpl<ISdoService, &IID_ISdoService, &LIBID_SDOIASLibPrivate>
  17. {
  18. public:
  19. CSdoService();
  20. ~CSdoService();
  21. ////////////////////////
  22. // ISdoService Interface
  23. ////////////////////////
  24. STDMETHOD(InitializeService)(SERVICE_TYPE eServiceType);
  25. STDMETHOD(StartService)(SERVICE_TYPE eServiceType);
  26. STDMETHOD(StopService)(SERVICE_TYPE eServiceType);
  27. STDMETHOD(ShutdownService)(SERVICE_TYPE eServiceType);
  28. STDMETHOD(ConfigureService)(SERVICE_TYPE eServiceType);
  29. BEGIN_COM_MAP(CSdoService)
  30. COM_INTERFACE_ENTRY(ISdoService)
  31. COM_INTERFACE_ENTRY(IDispatch)
  32. END_COM_MAP()
  33. DECLARE_CLASSFACTORY_SINGLETON(CSdoService)
  34. DECLARE_NOT_AGGREGATABLE(CSdoService)
  35. DECLARE_REGISTRY_RESOURCEID(IDR_SdoService)
  36. private:
  37. // Handle of the current debounce thread (if any).
  38. HANDLE m_theThread;
  39. CSdoService(const CSdoService& rhs);
  40. CSdoService& operator = (CSdoService& rhs);
  41. // Processes a service configuration request.
  42. VOID WINAPI ProcessConfigureService(void) throw();
  43. // Updates the services configuration
  44. void UpdateConfiguration(void);
  45. // Empty APC used to interrupt the debounce thread.
  46. static VOID WINAPI InterruptThread(
  47. /*[in]*/ ULONG_PTR dwParam
  48. ) throw ();
  49. // Entry point for the debounce thread.
  50. static DWORD WINAPI DebounceAndConfigure(
  51. /*[in]*/ LPVOID pSdoService
  52. ) throw ();
  53. };
  54. #endif // _INC_IAS_SDO_SERVICE_H_