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.
|
|
//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 2000.
//
// File: U P T H R E A D . H
//
// Contents: Threading support code
//
// Notes:
//
// Author: mbend 29 Sep 2000
//
//----------------------------------------------------------------------------
#pragma once
class CWorkItem { public: CWorkItem(); virtual ~CWorkItem();
HRESULT HrStart(BOOL bDeleteOnComplete); protected: virtual DWORD DwRun() = 0; virtual ULONG GetFlags(); private: CWorkItem(const CWorkItem &); CWorkItem & operator=(const CWorkItem &);
BOOL m_bDeleteOnComplete;
static DWORD WINAPI DwThreadProc(void * pvParam); };
class CThreadBase { public: CThreadBase(); virtual ~CThreadBase();
HRESULT HrStart(BOOL bDeleteOnComplete, BOOL bCreateSuspended);
HRESULT HrGetExitCodeThread(DWORD * pdwExitCode); HRESULT HrResumeThread(); HRESULT HrSuspendThread(); HANDLE GetThreadHandle(); DWORD GetThreadId(); HRESULT HrWait(DWORD dwTimeoutInMillis, BOOL * pbTimedOut); protected: virtual DWORD DwRun() = 0; private: CThreadBase(const CThreadBase &); CThreadBase & operator=(const CThreadBase &);
HANDLE m_hThread; DWORD m_dwThreadId; BOOL m_bDeleteOnComplete;
static DWORD WINAPI DwThreadProc(void * pvParam); };
|