Ralphi
September 22nd, 1999, 03:59 AM
hello !
i have a struct and i want to send this with
sendmessage to another application.
this application should extract the struct
and go on with the data.
but it doesnīt work. maybe itīs something wrong
with the allocation of memory for the struct.
but i have no experience in doing that.
thanks for help,
ralph
/////////////////////////////////////////////
typedef struct
{
int number;
char Name[20];
char Lastname[30];
} Student;
/////////////////////////////////////////////
// function, application 1
.
.
.
Student *pData = new Student;
pData->number = 12;
memcpy (pData->Name,m_Name,Name_Length);
memcpy (pData->Name+Name_Length,"\0",1);
memcpy (pData->Lastname,m_Lastname,Lastname_Length);
memcpy (pData->Lastname+Lastname_Length,"\0",1);
COPYDATASTRUCT pCopyDataStruct;
pCopyDataStruct.dwData = 0;
pCopyDataStruct.cbData = 0;
pCopyDataStruct.lpData = (void*)pData;
LRESULT res = ::SendMessage(Hwnd_Target,WM_COPYDATA,NULL,(LPARAM)&pCopyDataStruct);
/////////////////////////////////////////////
// function, application 2
LRESULT CMainFrame::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
switch(message)
{
case WM_COPYDATA: COPYDATASTRUCT *pCopyDataStruct = (COPYDATASTRUCT *) lParam;
Student *pData = new Student;
pData = (Student*)pCopyDataStruct->lpData;
if (pData->number == 12)
{
// use pData->Name;
// use pData->Lastname;
}
break;
}
}
/////////////////////////////////////////////
i have a struct and i want to send this with
sendmessage to another application.
this application should extract the struct
and go on with the data.
but it doesnīt work. maybe itīs something wrong
with the allocation of memory for the struct.
but i have no experience in doing that.
thanks for help,
ralph
/////////////////////////////////////////////
typedef struct
{
int number;
char Name[20];
char Lastname[30];
} Student;
/////////////////////////////////////////////
// function, application 1
.
.
.
Student *pData = new Student;
pData->number = 12;
memcpy (pData->Name,m_Name,Name_Length);
memcpy (pData->Name+Name_Length,"\0",1);
memcpy (pData->Lastname,m_Lastname,Lastname_Length);
memcpy (pData->Lastname+Lastname_Length,"\0",1);
COPYDATASTRUCT pCopyDataStruct;
pCopyDataStruct.dwData = 0;
pCopyDataStruct.cbData = 0;
pCopyDataStruct.lpData = (void*)pData;
LRESULT res = ::SendMessage(Hwnd_Target,WM_COPYDATA,NULL,(LPARAM)&pCopyDataStruct);
/////////////////////////////////////////////
// function, application 2
LRESULT CMainFrame::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
switch(message)
{
case WM_COPYDATA: COPYDATASTRUCT *pCopyDataStruct = (COPYDATASTRUCT *) lParam;
Student *pData = new Student;
pData = (Student*)pCopyDataStruct->lpData;
if (pData->number == 12)
{
// use pData->Name;
// use pData->Lastname;
}
break;
}
}
/////////////////////////////////////////////