www.pudn.com > MFCtest.rar > CPDH.h


#define UNICODE 
#define _UNICODE 
#define LEN sizeof(struct ProcessInfo) 
 
#define PRONAME info[0] 
#define PID info[1] 
#define PPID info[2] 
#define TIME info[3] 
#define THREADCOUNT info[4] 
#define USERTIME info[5] 
#define HANDLECOUNT info[6] 
#define PRIORBASE info[7] 
#define WORKSET info[8] 
 
#include  
#include  
#include  
#include  
#include  
 
#pragma comment(lib,"pdh.lib") 
#pragma comment(lib,"mpr.lib") 
 
struct ProcessInfo 
{ 
	DWORD instanceIndex; 
	TCHAR info[10][16]; 
	ProcessInfo *next; 
}; 
 
class CProcess 
{ 
private: 
	LPTSTR                 szMachineName,password,accont; 
	ProcessInfo            *head,*p1,*p2; 
	LPTSTR                 szCounterListBuffer; 
	DWORD                  dwCounterListSize; 
	LPTSTR                 szInstanceListBuffer; 
	DWORD                  dwInstanceListSize; 
	HQUERY                 hQuery; 
	HCOUNTER               hCounter; 
	TCHAR                  szPathBuffer[MAX_PATH]; 
	DWORD                  ctrType; 
	PDH_FMT_COUNTERVALUE   fmtValue; 
	PDH_STATUS             pdhStatus; 
	ProcessInfo            *pi,current_pi; 
	TCHAR				   counterName[9][32]; 
	 
	ProcessInfo *addnew(); 
	bool setInstanceIndex(ProcessInfo *pi); 
	bool ConnIpc(); 
	bool destroyProcessInfo(); 
public: 
	int                    num; 
	Process(LPTSTR szMachineName,LPTSTR accont,LPTSTR password); 
	Process(); 
	~Process(); 
	int processNum(); 
	ProcessInfo *currentProcess(); 
	bool goNextProcess(); 
	bool goFirstProcess(); 
	bool hasNext(); 
	bool getProcessInfo(); 
}; 
 
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ; 
HWND CreateListView (HWND hwnd,Process *pro); 
bool display(HWND hListView,Process *pro); 
 
class CPDH   
{ 
public: 
	CPDH(); 
	virtual ~CPDH(); 
 
};