Hola aguml.
Creo que lo complicas usando
WndProc para capturar el mensaje, es mas simple:
Emisor:
codigo
Código PHP:
...
void wmCopyData(char* WndClass, char* WndTitle, char* msg)
{
HANDLE hRecept;
COPYDATASTRUCT cds;
hRecept = FindWindow(WndClass, WndTitle);
if (hRecept != 0) {
cds.dwData = 0;
cds.cbData = strlen(msg)+1;
cds.lpData = (char*)msg;
SetForegroundWindow(hRecept);
SendMessage(hRecept, WM_COPYDATA, 0, (LPARAM)& cds);
} else
MessageBox(0,"Receptor no encontrado","", MB_ICONERROR);
}
// ej. envio
void __fastcall TfrmSender::Button1Click(TObject *Sender)
{
wmCopyData("TfrmReceiver", "Receiver", Edit1->Text.c_str());
}
Receptor:
header
Código PHP:
...
class TfrmReceiver : public TForm
{
__published:
private:
void __fastcall OnWMCopyData(TWMCopyData& msg);
protected:
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_COPYDATA, TWMCopyData, OnWMCopyData)
END_MESSAGE_MAP(TForm)
public:
__fastcall TfrmReceiver(TComponent* Owner);
};
...
codigo
Código PHP:
...
void __fastcall TfrmReceiver::OnWMCopyData(TWMCopyData& msg)
{
ShowMessage("Mensaje recibido: " + String((char*)msg.CopyDataStruct->lpData));
}
...
Saludos