62 lines
2.8 KiB
C
62 lines
2.8 KiB
C
|
// --------------------------------------------------------------------------
|
||
|
// Module Name: LogonIPC.h
|
||
|
//
|
||
|
// Copyright (c) 1999-2000, Microsoft Corporation
|
||
|
//
|
||
|
// Class that implements communication between an external process and the
|
||
|
// GINA logon dialog.
|
||
|
//
|
||
|
// History: 1999-08-20 vtan created
|
||
|
// 2000-01-31 vtan moved from Neptune to Whistler
|
||
|
// --------------------------------------------------------------------------
|
||
|
|
||
|
#ifndef _LogonIPC_
|
||
|
#define _LogonIPC_
|
||
|
|
||
|
// --------------------------------------------------------------------------
|
||
|
// CLogonIPC
|
||
|
//
|
||
|
// Purpose: This class handles sending messages to the GINA logon dialog
|
||
|
// which provides logon services for an external process hosting
|
||
|
// the UI for the logon. All string are unicode strings.
|
||
|
//
|
||
|
// History: 1999-08-20 vtan created
|
||
|
// 2000-01-31 vtan moved from Neptune to Whistler
|
||
|
// 2000-03-09 vtan added UI host failure
|
||
|
// --------------------------------------------------------------------------
|
||
|
|
||
|
class CLogonIPC
|
||
|
{
|
||
|
private:
|
||
|
CLogonIPC (const CLogonIPC& copyObject);
|
||
|
bool operator == (const CLogonIPC& compareObject) const;
|
||
|
const CLogonIPC& operator = (const CLogonIPC& assignObject);
|
||
|
public:
|
||
|
CLogonIPC (void);
|
||
|
~CLogonIPC (void);
|
||
|
|
||
|
bool IsLogonServiceAvailable (void);
|
||
|
bool IsUserLoggedOn (const WCHAR *pwszUsername, const WCHAR *pwszDomain);
|
||
|
bool LogUserOn (const WCHAR *pwszUsername, const WCHAR *pwszDomain, WCHAR *pwszPassword);
|
||
|
bool LogUserOff (const WCHAR *pwszUsername, const WCHAR *pwszDomain);
|
||
|
bool TestBlankPassword (const WCHAR *pwszUsername, const WCHAR *pwszDomain);
|
||
|
bool TestInteractiveLogonAllowed (const WCHAR *pwszUsername, const WCHAR *pwszDomain);
|
||
|
bool TestEjectAllowed (void);
|
||
|
bool TestShutdownAllowed (void);
|
||
|
bool TurnOffComputer (void);
|
||
|
bool EjectComputer (void);
|
||
|
bool SignalUIHostFailure (void);
|
||
|
bool AllowExternalCredentials (void);
|
||
|
bool RequestExternalCredentials (void);
|
||
|
private:
|
||
|
void PackageIdentification (const WCHAR *pwszUsername, const WCHAR *pwszDomain, void *pIdentification);
|
||
|
bool SendToLogonService (WORD wQueryType, void *pData, WORD wDataSize, bool fBlock);
|
||
|
void PostToLogonService (WORD wQueryType, void *pData, WORD wDataSize);
|
||
|
private:
|
||
|
int _iLogonAttemptCount;
|
||
|
HWND _hwndLogonService;
|
||
|
};
|
||
|
|
||
|
#endif /* _LogonIPC_ */
|
||
|
|