extern "C"
{
DWORD __stdcall NtQuerySystemInformation (DWORD, DWORD*, DWORD, DWORD);
DWORD __stdcall NtOpenThread (void*, DWORD, void*, void*);
DWORD __stdcall NtClose (HANDLE);
}
class CSysinfo
{
public:
CSysinfo();
~CSysinfo();
int GetPIDs (DWORD *dest);
DWORD NumThreads (DWORD pid);
BOOL GetProcessName (DWORD pid, char *dest);
int GetTIDs (DWORD pid, DWORD *tids, DWORD *status = NULL);
HANDLE OpenThread (DWORD tid, DWORD accessflag = THREAD_ALL_ACCESS);
DWORD FindThreadProcess (DWORD find_tid);
DWORD GetHandleCount (DWORD pid);
void CloseThread (HANDLE hthread);
void FillProcessBox (CComboBox *clb);
protected:
DWORD *memptr;
void Refresh (void);
void MakeAnsiString (WORD *unistring, char *ansistring);
DWORD* NextBlock (DWORD* oldblock);
DWORD* FindBlock (DWORD pid);
};