windows-nt/Source/XPSP1/NT/shell/services/themesrv/themeserverexports.cpp
2020-09-26 16:20:57 +08:00

165 lines
4.5 KiB
C++

// --------------------------------------------------------------------------
// Module Name: ThemeServerExports.cpp
//
// Copyright (c) 2000, Microsoft Corporation
//
// This file contains functions that exported from the theme services module.
//
// History: 2000-11-29 vtan created
// --------------------------------------------------------------------------
#include "StandardHeader.h"
#include "StatusCode.h"
#include "ThemeServerClient.h"
#include <uxthemep.h>
// --------------------------------------------------------------------------
// ::ThemeWaitForServiceReady
//
// Arguments: dwTimeout = Number of ticks to wait.
//
// Returns: DWORD
//
// Purpose: External C entry point to DLL to wait for the service to
// enter the running state.
//
// History: 2000-10-13 vtan created
// 2000-11-29 vtan converted to a Win32 service
// --------------------------------------------------------------------------
EXTERN_C DWORD WINAPI ThemeWaitForServiceReady (DWORD dwTimeout)
{
return(CThemeServerClient::WaitForServiceReady(dwTimeout));
}
// --------------------------------------------------------------------------
// ::ThemeWatchForStart
//
// Arguments: <none>
//
// Returns: BOOL
//
// Purpose: External C entry point to DLL to watch for the service
// recovering or demand starting.
//
// History: 2000-11-29 vtan created
// --------------------------------------------------------------------------
EXTERN_C BOOL WINAPI ThemeWatchForStart (void)
{
bool fResult;
NTSTATUS status;
status = CThemeServerClient::WatchForStart();
fResult = NT_SUCCESS(status);
if (!fResult)
{
SetLastError(CStatusCode::ErrorCodeOfStatusCode(status));
}
return(fResult);
}
// --------------------------------------------------------------------------
// ::ThemeUserLogon
//
// Arguments: hToken = Token of user that logged on.
//
// Returns: BOOL
//
// Purpose: External C entry point to DLL to signal a user logon.
//
// History: 2000-10-12 vtan created
// 2000-11-29 vtan converted to a Win32 service
// --------------------------------------------------------------------------
EXTERN_C BOOL WINAPI ThemeUserLogon (HANDLE hToken)
{
bool fResult;
NTSTATUS status;
status = CThemeServerClient::UserLogon(hToken);
fResult = NT_SUCCESS(status);
if (!fResult)
{
SetLastError(CStatusCode::ErrorCodeOfStatusCode(status));
}
return(fResult);
}
// --------------------------------------------------------------------------
// ::ThemeUserLogoff
//
// Arguments: <none>
//
// Returns: BOOL
//
// Purpose: External C entry point to DLL to signal a user logoff.
//
// History: 2000-10-12 vtan created
// 2000-11-29 vtan converted to a Win32 service
// --------------------------------------------------------------------------
EXTERN_C BOOL WINAPI ThemeUserLogoff (void)
{
bool fResult;
NTSTATUS status;
status = CThemeServerClient::UserLogoff();
fResult = NT_SUCCESS(status);
if (!fResult)
{
SetLastError(CStatusCode::ErrorCodeOfStatusCode(status));
}
return(fResult);
}
// --------------------------------------------------------------------------
// ::ThemeUserTSReconnect
//
// Arguments: <none>
//
// Returns: BOOL
//
// Purpose: External C entry point to DLL to signal terminal server
// "reconnect" (remote connect to a session or reestablish
// local connect to a session).
//
// History: 2001-01-18 rfernand created
// --------------------------------------------------------------------------
EXTERN_C BOOL WINAPI ThemeUserTSReconnect (void)
{
//---- this may turn theme on/off based on local/remote conditions ----
CThemeServerClient::UserInitTheme(FALSE);
return(true); // always succeeds
}
// --------------------------------------------------------------------------
// ::ThemeUserStartShell
//
// Arguments: <none>
//
// Returns: BOOL
//
// Purpose: Load the theme for this user
//
// History: 2001-03-29 lmouton created
// --------------------------------------------------------------------------
EXTERN_C BOOL WINAPI ThemeUserStartShell (void)
{
//---- this may turn theme on/off based on local/remote conditions ----
CThemeServerClient::UserInitTheme(TRUE);
return(true); // always succeeds
}