1 PostMessage 和 SendMessage的区别

namespace KERNEL

{

         class MESSAGE_OBJECT_EXPORT CMessageListenerBase 

         {

         public:

                   CMessageListenerBase();

                   virtual ~CMessageListenerBase();

                           

                   virtual long       OnNotifyMessage(const char* sMsg, WPARAM wParam, LPARAM lParam) ;

 

                   virtual long      OnNotifyMessage(long nMsgID, WPARAM wParam, LPARAM lParam) ;               

         protected:

                   DWORD   m_Type;//侦听类型

         };

 

         //消息传送对象

         class  MESSAGE_OBJECT_EXPORT CMessageOper

         {

         public:

                   CMessageOper(){};

                   ~CMessageOper(){};

                   #define KERN_MSG_BROADCAST            ((CMessageListenerBase*)0xFFFF)                    //广播消息

                   #define KERN_MSG_INVALID          ((CMessageListenerBase*)0x0000)                           

//无效消息

                   //同步发送消息,不管结果如何,继续执行后续操作

                     static   long           PostMessage(CMessageListenerBase *pMsgListener,long nMsg,  WPARAM wParam, LPARAM lParam);

                     static   long           PostMessage(CMessageListenerBase *pMsgListener,const char* sMessageName,  WPARAM wParam, LPARAM lParam);

                   //异步发送消息,如果发送失败,则中端操作

                     static   long           SendMessage(CMessageListenerBase *pMsgListener,long nMsg,  WPARAM wParam, LPARAM lParam);

                     static   long           SendMessage(CMessageListenerBase *pMsgListener,const char* sMessageName,  WPARAM wParam, LPARAM lParam);

         protected:

                  

         private:

                  

         };

 

}

 

postmessage中,应该会根据KERN_MSG_BROADCAST或者KERN_MSG_INVALID   来判断是哪种形式,这样内部就会根据这个对应不同的操作:

KERN_MSG_BROADCAST  ----广播所有的插件

如果PostMessage(CMessageListenerBase *pMsgListener----的派生类),这样就会根据基类指针寻找派生类,这样就可以实现一对一的发送。

KERN_MSG_INVALID----无效操作

 

同时注意:SendMessagePostMessage的区别

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值