Programming

WM_COPYDATA 사용법

굿쏘 2013. 6. 13. 20:23

Builder를 사용하는 중이니 Builder를 기준으로..

뭐 MFC도 별차이 없다.

 

메시지맵에 아래와 같이 넣어주고

  1: BEGIN_MESSAGE_MAP
  2:    MESSAGE_HANDLER(WM_COPYDATA, TMessage, OnCopyData)
  3: END_MESSAGE_MAP(TForm)
  4: 

 

헤더파일에 함수선언하고

  1:     void __fastcall OnCopyData(TMessage &Message);
  2: 

 

소스에 코드작성하면 끝..

  1: void __fastcall TNeoADTSScoreMain::OnCopyData(TMessage &Message)
  2: {
  3:     COPYDATASTRUCT *pcds = (COPYDATASTRUCT*)Message.LParam;
  4: 
  5:     int iLength = pcds->cbData;
  6:     BYTE *pData = new BYTE[iLength];
  7:     memset(pData, 0, iLength);
  8:     memcpy(pData, (BYTE*)pcds->lpData, iLength);
  9: 
 10:     aprintf("iLength = %d, pData = %s\n", iLength, pData);
 11:     delete pData;
 12: }
 13: 

 

뭐 설명이 필요없이 간단하다.