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

📄 messageinfooperation.cpp

📁 这是一个程序的一般架构方法
💻 CPP
字号:
// Copyright (C) 1991 - 1999 Rational Software Corporation

#include "stdafx.h"
#include "MessgeInfo.h"
#include "CCMDManager.h"
#include "MessageInfoOperation.h"



//##ModelId=4316D38D01B5
UINT MessageInfoOperation::RemoveAt(UINT MessageID)
{
	// TODO: Add your specialized code here.
	// NOTE: Requires a correct return value to compile.
	MessageInfo * pMI;
	if (FindAt ( MessageID , &pMI )) 
	{
		ASSERT( pMI );
		UINT nCount = pMI->ProcPtrInfoArray->GetSize();
		MfxClearPtr( pMI->ProcPtrInfoArray );
		OrderArray<UINT,MessageInfo>::RemoveAt( MessageID );
		return nCount;
	}
	return 0;

}

//##ModelId=4316D3D8036B
void MessageInfoOperation::RemvoeAll()
{
	for (UINT i = 0 ; i < GetSize() ; i ++)
	{
		MessageInfo * pMI = GetPtrAt( i );
		MfxClearPtr (pMI->ProcPtrInfoArray);
	}
	OrderArray<UINT,MessageInfo>::RemoveAll() ;
	// TODO: Add your specialized code here.
}

//##ModelId=4316D3E6037A
UINT MessageInfoOperation::Insert(UINT MessageID, UINT Grade, USER_PMSG ProcPtr , CMessageBase * pMsgBase )
{
	// TODO: Add your specialized code here.
	// NOTE: Requires a correct return value to compile.
	MessageInfo * pMI;
	FindAt( MessageID , &pMI );
	MessageInfo MsgInfo;
	if (!pMI)
	{
		MsgInfo.KeyValue = MessageID ;
		MsgInfo.ProcPtrInfoArray = new ProcPtrInfoOperation ;
		if (!MsgInfo.ProcPtrInfoArray)
		{
			return 0;
		}
		pMI = &MsgInfo;
		OrderArray<UINT,MessageInfo>::Insert( MsgInfo );
	}
	ASSERT( pMI );
	ProcPtrInfoOperation * pPPIO = pMI->ProcPtrInfoArray;
	UINT ProcPtrID = Grade * GRADE_MULTIPL;
	while (pPPIO->FindAt( ProcPtrID ))
	{
		ProcPtrID ++;
	}
	if ( ProcPtrID/GRADE_MULTIPL != Grade )
	{
		return 0;
	}
	ProcPtrInfo PPI;
	PPI.dwStype = 0x00;
	PPI.ProcPtr = ProcPtr;
	PPI.KeyValue = ProcPtrID;
	PPI.pMsgBase = pMsgBase ;
	
	if (pPPIO->Insert( PPI ))
	{
		return ProcPtrID ;
	}
	else
	{
		return 0;
	}
}

//##ModelId=4316DCC80232
BOOL MessageInfoOperation::SleepAt(UINT MessageID, UINT ProcPtrID, BOOL isSleep )
{
	// TODO: Add your specialized code here.
	// NOTE: Requires a correct return value to compile.
	ProcPtrInfo * pPPI = NULL ;
	FindPtrAt( MessageID , ProcPtrID , &pPPI );
	if ( isSleep )
	{
		pPPI->dwStype |= PPI_bit_isSleep;
	}
	else
	{
		pPPI->dwStype &= ~PPI_bit_isSleep;
	}
	return TRUE;
}

BOOL MessageInfoOperation::FindAt( UINT MessageID 
			, MessageInfo * * ppElement
			, UINT *pElementPos )
{
	return OrderArray<UINT,MessageInfo>
		::FindAt( MessageID, ppElement, pElementPos);
}

BOOL MessageInfoOperation::FindPtrAt ( UINT MessageID 
									  , UINT ProcPtrID 
									  , ProcPtrInfo **  ppPPI 
									  )
{
	MessageInfo * pMI = NULL;
	FindAt( MessageID , &pMI );
	if ( !pMI )
	{
		if ( ppPPI )
		{
			* ppPPI = NULL;
		}
		return FALSE;
	}
	return (pMI->ProcPtrInfoArray->FindAt( ProcPtrID , ppPPI));
}

⌨️ 快捷键说明

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