C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[45936] nice! you're welcome :) (none of changed text)
nicekr.황경록 [mpbox] 1011 읽음    2006-07-31 15:36
alex 님이 쓰신 글 :
: Thanks for your tips.
:
: Yes. the size was the problem..
:
:    int size = sizeof(SMediaCallInfo) + sCaller.Length() + 1;
:    SMediaCallInfo *pData = (SMediaCallInfo *)GlobalAlloc( GPTR, size );
:
: Once i change to this, it works..  :)
:
:
:
: nicekr.황경록 님이 쓰신 글 :
: : hi alex! :)
: :
: : alex 님이 쓰신 글 :
: : : 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) );
: :
: : sizeof(SMediaCallInfo) ? do you check this size of bytes?
: :
: : :
: : :
: : :         AnsiString sCaller("Jo.Robbins@hotmail.com");
: : :         memset( pData, 0, sizeof(SMediaCallInfo) );
: :
: : why use the memset? GPTR set the allocated memory area to zero.
: : :
: : :         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..
: :
: : -_-... i append sample application for you.
: : just see.. it make two project and send WM_COPYDATA with char pointer.
: : if you want to testing with struct or class? just editing :)
: : good luck :)

+ -

관련 글 리스트
45924 Data Corrupted on OnCopyData ??? (SendMessage between two application) alex 2470 2006/07/31
45934     Re:Data Corrupted on OnCopyData ??? (SendMessage between two application) nicekr.황경록 2755 2006/07/31
45935         Re:Re:Data Corrupted on OnCopyData ??? (SendMessage between two application) alex 1376 2006/07/31
45936             nice! you're welcome :) (none of changed text) nicekr.황경록 1011 2006/07/31
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.