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.
 
 
 
 
 
 

87 lines
2.1 KiB

class CLogonNotification : public CSimpleExternalIUnknown<ISensLogon>
{
public:
CLogonNotification();
~CLogonNotification() { Cleanup(); }
private:
IEventSubscription * m_EventSubscriptions[2];
IEventSystem *m_EventSystem;
ITypeLib *m_TypeLib;
ITypeInfo *m_TypeInfo;
void Cleanup();
public:
HRESULT SetEnableState( bool fEnable );
void DeRegisterNotification();
HRESULT STDMETHODCALLTYPE GetIDsOfNames(
REFIID riid,
OLECHAR FAR* FAR* rgszNames,
unsigned int cNames,
LCID lcid,
DISPID FAR*
rgDispId );
HRESULT STDMETHODCALLTYPE GetTypeInfo(
unsigned int iTInfo,
LCID lcid,
ITypeInfo FAR* FAR* ppTInfo );
HRESULT STDMETHODCALLTYPE GetTypeInfoCount(
unsigned int FAR* pctinfo );
HRESULT STDMETHODCALLTYPE Invoke(
DISPID dispIdMember,
REFIID riid,
LCID lcid,
WORD wFlags,
DISPPARAMS FAR* pDispParams,
VARIANT FAR* pVarResult,
EXCEPINFO FAR* pExcepInfo,
unsigned int FAR* puArgErr );
HRESULT STDMETHODCALLTYPE DisplayLock( BSTR UserName );
HRESULT STDMETHODCALLTYPE DisplayUnlock( BSTR UserName );
HRESULT STDMETHODCALLTYPE StartScreenSaver( BSTR UserName );
HRESULT STDMETHODCALLTYPE StopScreenSaver( BSTR UserName );
HRESULT STDMETHODCALLTYPE Logon( BSTR UserName );
HRESULT STDMETHODCALLTYPE Logoff( BSTR UserName );
HRESULT STDMETHODCALLTYPE StartShell( BSTR UserName );
};
class CTerminalServerLogonNotification : public CLogonNotification
{
public:
CTerminalServerLogonNotification();
~CTerminalServerLogonNotification();
protected:
void ConsoleUserCheck();
HRESULT QueueConsoleUserCheck();
static DWORD WINAPI
UserCheckThreadProc(
LPVOID arg
);
// true if we believe that a user is logged in at the console.
//
bool m_fConsoleUser;
// number of queued calls to ConsoleUserCheck()
//
LONG m_PendingUserChecks;
public:
HRESULT STDMETHODCALLTYPE Logon( BSTR UserName );
HRESULT STDMETHODCALLTYPE Logoff( BSTR UserName );
};