// -------------------------------------------------------------------------- // Module Name: WaitInteractiveReady.h // // Copyright (c) 2001, Microsoft Corporation // // Class to handle waiting on the shell signal the desktop switch. // // History: 2001-01-15 vtan created // -------------------------------------------------------------------------- #ifndef _WaitInteractiveReady_ #define _WaitInteractiveReady_ // -------------------------------------------------------------------------- // CWaitInteractiveReady // // Purpose: Class to manage the wait on the shell signal to switch // desktop. // // History: 2001-01-15 vtan created // -------------------------------------------------------------------------- class CWaitInteractiveReady { private: CWaitInteractiveReady (void); CWaitInteractiveReady (void *pWlxContext); ~CWaitInteractiveReady (void); public: static NTSTATUS Create (void *pWlxContext); static NTSTATUS Register (void *pWlxContext); static NTSTATUS Cancel (void); private: bool IsCreated (void) const; static NTSTATUS ReleaseEvent (void); static void CALLBACK CB_ShellReady (void *pParameter, BOOLEAN TimerOrWaitFired); private: void* _pWlxContext; HANDLE _hEvent; static HANDLE s_hWait; static CWaitInteractiveReady* s_pWaitInteractiveReady; static HANDLE s_hEventShellReady; static const TCHAR s_szEventName[]; }; #endif /* _WaitInteractiveReady_ */