📄 messageinfooperation.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 + -