Обработчик событий WinAPI в Rad Studio XE5
Использую WinAPI для передачи сообщений между окнами путем посылки WM_COPYDATA. В старых C++ Builder проектах все работает как часы. В RAD нет. Имеется следующий код:
class TMainForm
{
...
private:
void __fastcall OnMyCopyData(TWMCopyData &dat);
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_COPYDATA,TWMCopyData,OnMyCopyData)
END_MESSAGE_MAP(TComponent);
}
По нажатию кнопки (для примера) посылаю из своего приложения в свое приложение событие :
void __fastcall TForm1::btnClick(TObject *Sender)
{
PCOPYDATASTRUCT pcds = new COPYDATASTRUCT;
pcds->dwData=1;
pcds->cbData=16;
char data[16] = "give_me_data";
pcds->lpData = data;
SendMessage(HWND(this->Handle),WM_COPYDATA,(WPARAM)HWND(this->Handle),(LPARAM)(PVOID)pcds);
}
А вот объявленное событие OnMyCopyData(TWMCopyData &dat) при посылке сообщения не вызывается. Помогите разобраться в ситуации.
С уважением maxspb
Источник: Stack Overflow на русском