source: trunk/src/kernel32/hmthread.h

Last change on this file was 21302, checked in by ydario, 16 years ago

Kernel32 updates.

File size: 3.1 KB
RevLine 
[9748]1/* $Id: hmthread.h,v 1.5 2003-02-04 11:29:01 sandervl Exp $ */
[3128]2
3/*
4 * Project Odin Software License can be found in LICENSE.TXT
5 *
6 * Win32 thread handle class
7 *
8 * Copyright 2000 Sander van Leeuwen (sandervl@xs4all.nl)
9 *
10 */
11
12#ifndef __HMTHREAD_H__
13#define __HMTHREAD_H__
14
15#include "HMDevice.h"
16#include "HMOpen32.h"
17
18#define THREAD_TERMINATED 0
19#define THREAD_ALIVE 1
20
[21302]21#define SETTHREADCONTEXT_INVALID_LOCKOPCODE 0x90F0 //invalid lock sequence
22
[3128]23class HMDeviceThreadClass : public HMDeviceOpen32Class
24{
25public:
26 HMDeviceThreadClass(LPCSTR lpDeviceName) : HMDeviceOpen32Class(lpDeviceName) {}
27
28 virtual HANDLE CreateThread(PHMHANDLEDATA pHMHandleData,
29 LPSECURITY_ATTRIBUTES lpsa,
30 DWORD cbStack,
31 LPTHREAD_START_ROUTINE lpStartAddr,
32 LPVOID lpvThreadParm,
33 DWORD fdwCreate,
[3140]34 LPDWORD lpIDThread,
[21302]35 BOOL fRegisterThread);
[3128]36
37 /* this is a handler method for calls to WaitForSingleObject */
[7532]38 virtual DWORD WaitForSingleObject(PHMHANDLEDATA pHMHandleData,
39 DWORD dwTimeout);
[3128]40
41 /* this is a handler method for calls to WaitForSingleObjectEx */
[7532]42 virtual DWORD WaitForSingleObjectEx(PHMHANDLEDATA pHMHandleData,
43 DWORD dwTimeout,
44 BOOL fAlertable);
[3128]45
[7532]46 virtual INT GetThreadPriority(HANDLE hThread, PHMHANDLEDATA pHMHandleData);
47 virtual DWORD SuspendThread(HANDLE hThread, PHMHANDLEDATA pHMHandleData);
48 virtual BOOL SetThreadPriority(HANDLE hThread, PHMHANDLEDATA pHMHandleData, int priority);
[3128]49
[9748]50 virtual BOOL DuplicateHandle(HANDLE srchandle, PHMHANDLEDATA pHMHandleData, HANDLE srcprocess,
51 PHMHANDLEDATA pHMSrcHandle,
52 HANDLE destprocess,
53 DWORD fdwAccess,
54 BOOL fInherit,
55 DWORD fdwOptions,
56 DWORD fdwOdinOptions);
57
[7532]58 virtual BOOL GetThreadContext(HANDLE hThread, PHMHANDLEDATA pHMHandleData, PCONTEXT lpContext);
59 virtual BOOL SetThreadContext(HANDLE hThread, PHMHANDLEDATA pHMHandleData, const CONTEXT *lpContext);
[9748]60
61 virtual BOOL GetThreadTimes(HANDLE hThread, PHMHANDLEDATA pHMHandleData,
62 LPFILETIME lpCreationTime, LPFILETIME lpExitTime,
63 LPFILETIME lpKernelTime, LPFILETIME lpUserTime);
[3128]64
[7532]65 virtual BOOL TerminateThread(HANDLE hThread, PHMHANDLEDATA pHMHandleData, DWORD exitcode);
66 virtual DWORD ResumeThread(HANDLE hThread, PHMHANDLEDATA pHMHandleData);
67 virtual BOOL GetExitCodeThread(HANDLE hThread, PHMHANDLEDATA pHMHandleData, LPDWORD lpExitCode);
68 virtual BOOL SetThreadTerminated(HANDLE hThread, PHMHANDLEDATA pHMHandleData);
[3128]69
[7532]70 virtual BOOL CloseHandle(PHMHANDLEDATA pHMHandleData);
[3128]71};
72
73
74#endif // __HMTHREAD_H__
Note: See TracBrowser for help on using the repository browser.