WM_COPYDATA
От: Milman  
Дата: 11.04.02 04:47
Оценка:
Задача послать сообщение с данными

//Посылка сообщения

LRESULT CALLBACK KeyboardProc(int code,WPARAM wParam,LPARAM lParam)
{
DWORD IsDown;
// обрабатываем только когда клавиша нажата (типа WM_KEYDOWN)
IsDown = !(lParam >> 31);
if (IsDown && code == HC_ACTION)
{
char *pNameApp=GetCommandLine();
COPYDATASTRUCT *_COPYDATASTRUCT = new COPYDATASTRUCT;
_COPYDATASTRUCT->dwData=0;
_COPYDATASTRUCT->cbData=0;
_COPYDATASTRUCT->lpData=GetCommandLine(),
Wnd = FindWindow (CN_SERV, WN_SERV);
SendMessage (Wnd,WM_COPYDATA,0,(LPARAM)(PCOPYDATASTRUCT)_COPYDATASTRUCT);
delete _COPYDATASTRUCT;
}

//Прием сообщения

LRESULT CALLBACK MainWndProc(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
switch (msg)
{
case WM_COPYDATA:
COPYDATASTRUCT *_COPYDATASTRUCT;
_COPYDATASTRUCT=(PCOPYDATASTRUCT)lParam;
char NameApp[80];
strcpy(NameApp,(char*)(_COPYDATASTRUCT->lpData));

//
MessageBox (NULL,NameApp, GetCommandLine(), 0);


NameApp пустой !!!

Подскажите, плз, где прямить руки
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.