type AStruct=record
  AString  : Array [0..255] of char;
  AInteger : Integer;
end;var
  DestStruct : AStruct;
  ReceStruct : ^AStruct;  
  ReceString : string;
  Receinteger integer;  // -------------------------
已使用RegisterWindowMessage注册了消息,返回值为AMessageID(integer);// -------------------------
Procedure TXXXX.Send;
var AA:integer;
begin
  strpcopy(DestStruct.AString,DateTimetoStr(Now));
  DestStruct.Ainteger:=random(100);
  AA:=BSM_APPLICATIONS;
  BroadcastSystemMessage(BSF_IGNORECURRENTTASK,@AA,MessageID,0,integer(@DestStruct));
end;
// ------------------------
Procedure TXXXX.Wndproc(Var AMessage:TMessage);
begin
  if AMessage.msg=MessageID then begin
    ReceStruct:=ptr(AMessage.Lparam);
    ReceString:=strpas(ReceStruct^.AString);
    ReceInteger:=ReceStruct^.AInteger;
  end else dispatch(AMessage);
end;
// -------------------------------
存在的问题
1:接收程序只能得到空字符串和0;为什么。
2:发送程序和接收程序同时发送消息时,一切正常;
// -------------------------------
请针对此问题回答,
不要教我如何使用内存映射文件或WM_COPYDATA。
如能给出已调试成功的例子,不胜感激。