|
I am trying to send some messages to other application.
But some how whenever i send string value it corrupted and i got wrong value.
Can anyone help me out??
//===============================================================================
From Sender Form..
//Test Send Message
COPYDATASTRUCT oCopyData;
LPSTR pCaller = NULL;
SMediaCallInfo *pData = (SMediaCallInfo *)GlobalAlloc( GPTR, sizeof(SMediaCallInfo) );
AnsiString sCaller("Jo.Robbins@hotmail.com");
memset( pData, 0, sizeof(SMediaCallInfo) );
pData->dwSize = sizeof(SMediaCallInfo);
pData->dwMediaType = PBXTYPE_SMTP;
pData->dwCallRef = 498 + iCount;
if ( !sCaller.IsEmpty() )
{
pData->lpCallerId = (LPSTR)GlobalAlloc( GPTR, sCaller.Length() + 1 );
strcpy( pData->lpCallerId, sCaller.c_str() );
}
oCopyData.dwData = CALL_INFO_TAG;
oCopyData.cbData = pData->dwSize;
oCopyData.lpData = pData;
::SendMessage(Handle, WM_COPYDATA, (WPARAM)Handle, (LPARAM)&oCopyData );
if ( pData->lpCallerId )
::GlobalFree( pData->lpCallerId );
::GlobalFree( pData );
//===============================================================================
//OnCopyData of Form 2 - received data from Form 1
COPYDATASTRUCT *pCopyData = (COPYDATASTRUCT *)Msg.LParam;
if ( pCopyData->dwData == CALL_INFO_TAG &&
pCopyData->cbData == sizeof(SMediaCallInfo) )
{
SMediaCallInfo *pInfo = (SMediaCallInfo *)pCopyData->lpData;
if ( pInfo->dwSize == sizeof(SMediaCallInfo) )
{
ODS(DEBUG_INFO, "CallInfo: media=%u, call=0x%08x, caller id=%s",
pInfo->dwMediaType, pInfo->dwCallRef,pInfo->lpCallerId ? pInfo->lpCallerId : "" );
}
}
17:52:04.49 OnCopyData: recieved message from Desktop
17:52:04.49 CallInfo: media=9, call=0x000001f2, caller id=on7\Tools\ <<= I am expecting Jo.Robbins@hotmail.com
Thanks in advance..
|