2010年(493)
分类:
2010-05-12 16:26:19
1、 函数入口参数合法性检查
2、 函数内部指针操作前进行非空判断
Struct MessageData
{
BYTE *m_pData;//消息实体
ULONG m_ulBuffLen;//消息长度
……
}
Struct Context
{
ULONG m_ulTaskId;//消息ID
IContentMissCallback *m_pCallback;//消息处理回调接口
MessageData *m_pMessageMap;//消息队列
ULONG m_ulMessageMapSize;//消息队列最大长度
……
};
HRESULT ProcessContentMiss(Context *pContext)
{
If(NULL == pContext)//空指针检查
{
Return E_FAIL;
}
……
MessageData *pData = NULL;
pData = (MessageData *)(pMessageMap+ pContext-> m_ulTaskId);//获取该用户请求消息上下文
HRESULT hr = E_FAIL;
……
Hr = pContext-> m_pCallback->HandleMessage(pData);//获取处理结果
Return hr;
}