COPYDATA,WM_COPYDATA,进程间传数据

 

发送WM_COPYDATA

 

COPYDATASTRUCT ds;

wchat_t callinfo=L"<Call_Type>1</Call_Type><Simul_Type>0</Simul_Type><Dest_ID>3103</Dest_ID>";

ds.cbData=lstrlen(callinfo)*2; //WCHAR数据,每个字符两个字节

ds.dwData=1; //这个自定义,可以通过这个告诉接受端,lpData是什么数据

ds.lpData=callinfo; //需要发送的数据指针

SendMessage(WM_COPYDATA,(WPARAM)this->m_hWnd,(LPARAM)(LPVOID)&ds);

 

 

处理WM_COPYDATA

OnCopyData(CWnd* pWnd, COPYDATASTRUCT* ds)

{

 

char* data=new char[ds->cbData+2]; //因为这里是字符串,多分配两个字节,处理结尾

if(data)

{

memset(data,0,ds->cbData+2); //清零

memcpy(data,ds->lpData,ds->cbData); //拷贝内存

}

else 

{

AfxMessageBox(L"分配内存失败");

return 0;

}

 

BSTR bstrdata=SysAllocString(data);

// AfxMessageBox((LPCWSTR)data);

CComBSTR bstrDestAddress;

if(ds->dwData==1 || ds->dwData==10)//call 或者 Emergency call

{

SCFCALLAPPDATA scpd;

if(ds->dwData==1)

scpd.AppData[0].DataName=_T("1");

else 

scpd.AppData[0].DataName=_T("10");

scpd.AppData[0].Data=bstrdata;

scpd.dwCount=1;

SCFCall(m_SCFHandle, bstrDestAddress, &scpd); //CALL

}

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值