首先看下CPP 文件中的实现,谁能结合后面的定义给我讲讲啊BEGIN_AWMSG_MAP(CTCSCallU626GA,CTCSCallCommon)
ON_AWMSG(enCSCall_Call,(LPF_AWPROC)&CTCSCallU626GA::OnCSCallCall)
END_AWMSG_MAP()
还有另外一个工程中也CPP
BEGIN_AWMSG_MAP( CTPSIxChariot, CTTaskPS )
    // Chariot Test
ON_AWMSG( enCHR_CreateChariotTest,          (LPF_AWPROC)(&(CTPSIxChariot::OnCHR_CreateChariotTest))      )
    ON_AWMSG( enCHR_DeleteChariotTest,          (LPF_AWPROC)&CTPSIxChariot::OnCHR_DeleteChariotTest          )
    ON_AWMSG( enCHR_StartChariotTest,           (LPF_AWPROC)&CTPSIxChariot::OnCHR_StartChariotTest           )
    ON_AWMSG( enCHR_StopChariotTest,            (LPF_AWPROC)&CTPSIxChariot::OnCHR_StopChariotTest            )
    ON_AWMSG( enCHR_WaitForChariotTestFinished, (LPF_AWPROC)&CTPSIxChariot::OnCHR_WaitForChariotTestFinished )
    // VOIP Part
    ON_AWMSG( enCHR_CreateVoipPair,             (LPF_AWPROC)&CTPSIxChariot::OnCHR_CreateVoipPair             )
    ON_AWMSG( enCHR_DeleteVoipPair,             (LPF_AWPROC)&CTPSIxChariot::OnCHR_DeleteVoipPair             )
    ON_AWMSG( enCHR_SetConsoleE1Addr,           (LPF_AWPROC)&CTPSIxChariot::OnCHR_SetConsoleE1Addr           )
    ON_AWMSG( enCHR_SetConsoleE2Addr,           (LPF_AWPROC)&CTPSIxChariot::OnCHR_SetConsoleE2Addr           )
    ON_AWMSG( enCHR_SetSilenceSupParam,         (LPF_AWPROC)&CTPSIxChariot::OnCHR_SetSilenceSupParam         )
    // Report
    ON_AWMSG( enCHR_GenerateTxtReport,          (LPF_AWPROC)&CTPSIxChariot::OnCHR_GenerateTxtReport          )
    ON_AWMSG( enCHR_GenerateCsvReport,          (LPF_AWPROC)&CTPSIxChariot::OnCHR_GenerateCsvReport          )
// VOD Part
ON_AWMSG( enCHR_CreatePair, (LPF_AWPROC)&CTPSIxChariot::OnCHR_CreatePair  )
ON_AWMSG( enCHR_DeletePair, (LPF_AWPROC)&CTPSIxChariot::OnCHR_DeletePair  )
ON_AWMSG( enCHR_SetE1Addr, (LPF_AWPROC)&CTPSIxChariot::OnCHR_SetE1Addr  )
ON_AWMSG( enCHR_SetE2Addr, (LPF_AWPROC)&CTPSIxChariot::OnCHR_SetE2Addr  )
ON_AWMSG( enCHR_PairUseScriptFileName,      (LPF_AWPROC)&CTPSIxChariot::OnCHR_PairUseScriptFileName  )
ON_AWMSG( enCHR_LoadChariotModel, (LPF_AWPROC)&CTPSIxChariot::OnCHR_LoadChariotModel  )
ON_AWMSG( enCHR_SetSaveFileName, (LPF_AWPROC)&CTPSIxChariot::OnCHR_SetSaveFileName  )
END_AWMSG_MAP()
下面是定义 什么的!
#define BEGIN_AWMSG_MAP(theClass,baseClass) \
        AW_MSGMAP* theClass::GetAWMsgMap() const \
                { return &theClass::AWMsgMap;} \
        AW_MSGMAP theClass::AWMsgMap = \
                {&(baseClass::AWMsgMap), \
                (AW_MSGMAP_ENTRY*) (theClass::_AWMsgEntries) }; \
        AW_MSGMAP_ENTRY theClass::_AWMsgEntries[] = \
                {#define DECLARE_AWMSG_MAP() \
        static AW_MSGMAP_ENTRY _AWMsgEntries[]; \
        static AW_MSGMAP AWMsgMap; \
        virtual AW_MSGMAP* GetAWMsgMap() const;
struct AW_MSGMAP_ENTRY
{
    LOW_AW_TYPE enLAW;/*底层的AW*/
    LPF_AWPROC pfn;/*处理函数*/
};struct AW_MSGMAP 
{
    AW_MSGMAP* pBaseMessageMap;/*指向基类的消息映射结构*/
    AW_MSGMAP_ENTRY* lpEntries;/*指向映身列表*/
};