windows-nt/Source/XPSP1/NT/termsrv/admtools/winutils/tsadmin/threads.h

108 lines
2.2 KiB
C
Raw Permalink Normal View History

2020-09-26 03:20:57 -05:00
/*******************************************************************************
*
* threads.h
*
* declarations of the thread classes
*
* copyright notice: Copyright 1997, Citrix Systems Inc.
* Copyright (c) 1998 - 1999 Microsoft Corporation
*
* $Author: butchd $ Don Messerli
*
* $Log: M:\NT\PRIVATE\UTILS\CITRIX\WINUTILS\WINADMIN\VCS\THREADS.H $
*
* Rev 1.0 30 Jul 1997 17:12:48 butchd
* Initial revision.
*
*******************************************************************************/
////////////////////////////////////////////////////////////////////////////////
// CThread class
//
class CThread
{
/*
* Member variables.
*/
protected:
HANDLE m_hThread;
DWORD m_dwThreadID;
/*
* Implementation
*/
public:
virtual ~CThread();
// void* operator new(size_t nSize);
// void operator delete(void* p);
protected:
CThread();
static DWORD __stdcall ThreadEntryPoint(LPVOID lpParam);
virtual DWORD RunThread() = 0;
/*
* Operations: primary thread
*/
public:
HANDLE CreateThread( DWORD cbStack = 0,
DWORD fdwCreate = 0 );
}; // end CThread class interface
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
// CWSStatusThread structures, defines, and typedefs
//
#define MAX_STATUS_SEMAPHORE_COUNT 1
#define MAX_SLEEP_COUNT 10
////////////////////////////////////////////////////////////////////////////////
// CWSStatusThread class
//
class CWSStatusThread : public CThread
{
/*
* Member variables.
*/
public:
ULONG m_LogonId;
HANDLE m_hServer;
HWND m_hDlg;
WINSTATIONINFORMATION m_WSInfo;
PDCONFIG m_PdConfig;
protected:
HANDLE m_hWakeUp;
HANDLE m_hConsumed;
BOOL m_bExit;
/*
* Implementation
*/
public:
CWSStatusThread();
protected:
virtual ~CWSStatusThread();
virtual DWORD RunThread();
/*
* Operations: primary thread.
*/
public:
void SignalWakeUp();
void SignalConsumed();
void ExitThread();
/*
* Operations: secondary thread.
*/
protected:
BOOL WSPdQuery();
BOOL WSInfoQuery();
}; // end CWSStatusThread class interface
////////////////////////////////////////////////////////////////////////////////