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.

62 lines
2.7 KiB

  1. // --------------------------------------------------------------------------
  2. // Module Name: ThemeServerClient.h
  3. //
  4. // Copyright (c) 2000, Microsoft Corporation
  5. //
  6. // This file contains a class that implements the theme server functions that
  7. // are executed in a client context (winlogon context).
  8. //
  9. // History: 2000-11-29 vtan created
  10. // --------------------------------------------------------------------------
  11. #ifndef _ThemeServerClient_
  12. #define _ThemeServerClient_
  13. #include "KernelResources.h"
  14. #include "ThemeManagerAPIServer.h"
  15. // --------------------------------------------------------------------------
  16. // CThemeServerClient
  17. //
  18. // Purpose: This class implements external entry points for the theme
  19. // server (typically used by winlogon).
  20. //
  21. // History: 2000-10-10 vtan created
  22. // --------------------------------------------------------------------------
  23. class CThemeServerClient
  24. {
  25. private:
  26. CThemeServerClient (void);
  27. ~CThemeServerClient (void);
  28. public:
  29. static DWORD WaitForServiceReady (DWORD dwTimeout);
  30. static NTSTATUS WatchForStart (void);
  31. static NTSTATUS UserLogon (HANDLE hToken);
  32. static NTSTATUS UserLogoff (void);
  33. static NTSTATUS UserInitTheme (BOOL fPolicyCheckOnly);
  34. static NTSTATUS StaticInitialize (void);
  35. static NTSTATUS StaticTerminate (void);
  36. private:
  37. static NTSTATUS NotifyUserLogon (HANDLE hToken);
  38. static NTSTATUS NotifyUserLogoff (void);
  39. static NTSTATUS InformServerUserLogon (HANDLE hToken);
  40. static NTSTATUS InformServerUserLogoff (void);
  41. static NTSTATUS SessionCreate (void);
  42. static NTSTATUS SessionDestroy (void);
  43. static NTSTATUS ReestablishConnection (void);
  44. static void CALLBACK CB_ServiceStart (void *pParameter, BOOLEAN TimerOrWaitFired);
  45. private:
  46. static CThemeManagerAPIServer* s_pThemeManagerAPIServer;
  47. static HANDLE s_hPort;
  48. static HANDLE s_hToken;
  49. static HANDLE s_hEvent;
  50. static HANDLE s_hWaitObject;
  51. static HMODULE s_hModuleUxTheme;
  52. static CCriticalSection* s_pLock;
  53. };
  54. #endif /* _ThemeServerClient_ */