windows-nt/Source/XPSP1/NT/shell/services/themesrv/themeserverclient.h

63 lines
2.7 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
// --------------------------------------------------------------------------
// Module Name: ThemeServerClient.h
//
// Copyright (c) 2000, Microsoft Corporation
//
// This file contains a class that implements the theme server functions that
// are executed in a client context (winlogon context).
//
// History: 2000-11-29 vtan created
// --------------------------------------------------------------------------
#ifndef _ThemeServerClient_
#define _ThemeServerClient_
#include "KernelResources.h"
#include "ThemeManagerAPIServer.h"
// --------------------------------------------------------------------------
// CThemeServerClient
//
// Purpose: This class implements external entry points for the theme
// server (typically used by winlogon).
//
// History: 2000-10-10 vtan created
// --------------------------------------------------------------------------
class CThemeServerClient
{
private:
CThemeServerClient (void);
~CThemeServerClient (void);
public:
static DWORD WaitForServiceReady (DWORD dwTimeout);
static NTSTATUS WatchForStart (void);
static NTSTATUS UserLogon (HANDLE hToken);
static NTSTATUS UserLogoff (void);
static NTSTATUS UserInitTheme (BOOL fPolicyCheckOnly);
static NTSTATUS StaticInitialize (void);
static NTSTATUS StaticTerminate (void);
private:
static NTSTATUS NotifyUserLogon (HANDLE hToken);
static NTSTATUS NotifyUserLogoff (void);
static NTSTATUS InformServerUserLogon (HANDLE hToken);
static NTSTATUS InformServerUserLogoff (void);
static NTSTATUS SessionCreate (void);
static NTSTATUS SessionDestroy (void);
static NTSTATUS ReestablishConnection (void);
static void CALLBACK CB_ServiceStart (void *pParameter, BOOLEAN TimerOrWaitFired);
private:
static CThemeManagerAPIServer* s_pThemeManagerAPIServer;
static HANDLE s_hPort;
static HANDLE s_hToken;
static HANDLE s_hEvent;
static HANDLE s_hWaitObject;
static HMODULE s_hModuleUxTheme;
static CCriticalSection* s_pLock;
};
#endif /* _ThemeServerClient_ */