Source code of Windows XP (NT5)
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.

48 lines
1.8 KiB

  1. // --------------------------------------------------------------------------
  2. // Module Name: WaitInteractiveReady.h
  3. //
  4. // Copyright (c) 2001, Microsoft Corporation
  5. //
  6. // Class to handle waiting on the shell signal the desktop switch.
  7. //
  8. // History: 2001-01-15 vtan created
  9. // --------------------------------------------------------------------------
  10. #ifndef _WaitInteractiveReady_
  11. #define _WaitInteractiveReady_
  12. // --------------------------------------------------------------------------
  13. // CWaitInteractiveReady
  14. //
  15. // Purpose: Class to manage the wait on the shell signal to switch
  16. // desktop.
  17. //
  18. // History: 2001-01-15 vtan created
  19. // --------------------------------------------------------------------------
  20. class CWaitInteractiveReady
  21. {
  22. private:
  23. CWaitInteractiveReady (void);
  24. CWaitInteractiveReady (void *pWlxContext);
  25. ~CWaitInteractiveReady (void);
  26. public:
  27. static NTSTATUS Create (void *pWlxContext);
  28. static NTSTATUS Register (void *pWlxContext);
  29. static NTSTATUS Cancel (void);
  30. private:
  31. bool IsCreated (void) const;
  32. static NTSTATUS ReleaseEvent (void);
  33. static void CALLBACK CB_ShellReady (void *pParameter, BOOLEAN TimerOrWaitFired);
  34. private:
  35. void* _pWlxContext;
  36. HANDLE _hEvent;
  37. static HANDLE s_hWait;
  38. static CWaitInteractiveReady* s_pWaitInteractiveReady;
  39. static HANDLE s_hEventShellReady;
  40. static const TCHAR s_szEventName[];
  41. };
  42. #endif /* _WaitInteractiveReady_ */