WinCE平台下WM_COPYDATA消息的简单应用

WinCE应用程序中实现进程间通信的方式有很多种,比如说:剪贴板、命名管道、匿名管道、邮槽、共享内存、文件映射、Socket等等,其中最简单的一种应该是

WM_COPYDATA消息,现写一个小例,以做备忘:

现有两个程序A和B,A做为发送数据方,B做为接收数据方。

A(发送端)程序中的程序片段如下:

  HWND hwnd = ::FindWindow(NULL, _T("B"));
      if (NULL == hwnd)
      {
         MessageBox(NULL, _T("没有找到程序B"), _T("提示"), NULL);
      }
      char *buf = new char[10];
      memset(buf, 0, 10);
      sprintf_s(buf, 10, "%s", "Hello");
      COPYDATASTRUCT cds;
      ZeroMemory(&cds, sizeof(COPYDATASTRUCT));
      cds.dwData = 0;
      cds.cbData = 10;
      cds.lpData = (PVOID)buf;
      ::SendMessage(hwnd, // hwnd为接收消息的目标窗口句柄

          WM_COPYDATA,

          NULL/*(WPARAM)hWnd*/,//可以是NULL或者发送消息的窗口句柄

           (LPARAM)&cds);//COPYDATASTRUCT结构体指针
      delete []buf;

B(接收端)程序片段如下:

  case WM_COPYDATA:
     {
       MessageBox(NULL, _T("B程序收到消息 WM_COPYDATA"), _T("提示"), NULL);
       COPYDATASTRUCT *pcds = (COPYDATASTRUCT *)lParam;
       printf("pcds->cbData is :%d\n", pcds->cbData);
       printf("pcds->lpData is :%s\n", (char *)pcds->lpData);
    }

转载于:https://www.cnblogs.com/xFreedom/archive/2011/05/14/2046458.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值