⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 programlist.cpp

📁 用来显示PDA的系统信息,控制PDA的动作 today pugin程序.
💻 CPP
字号:
#include "StdAfx.h"
#include "ProgramList.h"

CProgramList::CProgramList(void)
{
	m_pDataFirst=m_pDataSelected=m_pDataLast=m_pCurrentData=NULL;
	m_dwDataCount=0;
}

CProgramList::~CProgramList(void)
{
	while(m_pDataFirst)
	{
		m_pCurrentData = m_pDataFirst;
		m_pDataFirst = m_pDataFirst->pNext;
		if(m_pCurrentData->hProcessIcon)
			DestroyIcon(m_pCurrentData->hProcessIcon);

		free(m_pCurrentData);
	}
	m_pDataFirst=m_pDataSelected=m_pDataLast=m_pCurrentData=NULL;
	m_dwDataCount = 0;
}

BOOL	CProgramList::AddDataToList(PROGRAMDATA *pData)
{
	if(m_pDataFirst)
	{
		while(m_pCurrentData->pNext)
		{
			m_pCurrentData = m_pCurrentData->pNext;
		}

		m_pCurrentData->pNext = pData;
		pData->pPrev = m_pCurrentData;
		pData->pNext = NULL;

		m_pDataLast = pData;
	}
	else
	{
		pData->pNext=pData->pPrev=NULL;
		m_pDataFirst=m_pDataLast=m_pCurrentData=pData;
	}
	m_dwDataCount++;

	return TRUE;
}

BOOL	CProgramList::RemoveDataFromList(DWORD dwID,BOOL bSpecialId)
{
	PROGRAMDATA *pTemp;
	if(bSpecialId)
	{
		pTemp = m_pDataFirst;
		while(pTemp)
		{
			if(pTemp->dwProcessId == dwID)
			{
				m_pDataSelected = pTemp;
				break;
			}

			pTemp = pTemp->pNext;
		}
	}
	else
	{
		int	i=0;
		pTemp = m_pDataFirst;
		while(pTemp)
		{
			if(i == dwID)
			{
				m_pDataSelected = pTemp;
				break;
			}
			pTemp = pTemp->pNext;
			i++;
		}
	}

	if(m_pDataSelected)
	{
		if(m_pDataSelected->pPrev)
		{
			if(m_pDataSelected->pNext)
			{
				//remove middle node :data<-removedata->data
				m_pDataSelected->pPrev->pNext = m_pDataSelected->pNext;
				m_pDataSelected->pNext->pPrev = m_pDataSelected->pPrev;
			}
			else
			{
				//remove tail node : data<-removedata
				m_pDataSelected->pPrev->pNext=NULL;
				m_pDataLast = m_pDataSelected->pPrev;
			}
		}
		else
		{
			if(m_pDataSelected->pNext)
			{
				//remove head node:removedata->data;
				m_pDataSelected->pNext->pPrev = NULL;
				m_pDataFirst = m_pDataSelected->pNext;
			}
			else
			{
				//remove only one node:removedata
				free(m_pDataSelected);
				m_dwDataCount--;
				m_pDataFirst=m_pDataSelected=m_pDataLast=m_pCurrentData=NULL;
				return TRUE;
			}
		}
		//free buffer
		free(m_pDataSelected);
		m_dwDataCount--;
		//m_pDataFirst=m_pDataSelected=m_pDataLast=m_pCurrentData=NULL;
	}
	return TRUE;
}

BOOL	CProgramList::UpdateDataToList(DWORD dwID)
{
	return TRUE;
}

BOOL	CProgramList::DataExistIn(PROGRAMDATA *pData)
{
	PROGRAMDATA *pTemp = m_pDataFirst;
	while(pTemp)
	{
		if(lstrcmp(pTemp->szProcessName,pData->szProcessName)==0)
			return TRUE;

		pTemp = pTemp->pNext;
	}

	return FALSE;
}

BOOL	CProgramList::DataExistIn(LPCTSTR	lpszText)
{
	PROGRAMDATA *pTemp = m_pDataFirst;
	while(pTemp)
	{
		if(lstrcmp(pTemp->szProcessName,lpszText)==0)
			return TRUE;

		pTemp = pTemp->pNext;
	}

	return FALSE;
}
PROGRAMDATA*	CProgramList::GetIndexData(int iPos)
{
	int	i=0;
	PROGRAMDATA *pTemp = m_pDataFirst;
	while(pTemp)
	{
		if(i==iPos)
			break;
		pTemp = pTemp->pNext;
		i++;
	}
	if(pTemp)
		return pTemp;

	return NULL;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -