首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

SPCOMM源码中自定义消息如何生效的

2013-01-05 
SPCOMM源码中自定义消息怎么生效的?本帖最后由 shamork 于 2012-12-13 10:53:54 编辑SPCOMM源文件开始定义

SPCOMM源码中自定义消息怎么生效的?
本帖最后由 shamork 于 2012-12-13 10:53:54 编辑 SPCOMM源文件开始定义了自定义消息

const
     // messages from read/write threads
     PWM_GOTCOMMDATA = WM_USER + 1;
     PWM_RECEIVEERROR = WM_USER + 2;
     PWM_REQUESTHANGUP = WM_USER + 3;
     PWM_MODEMSTATECHANGE = WM_USER + 4;
     PWM_SENDDATAEMPTY = WM_USER + 5;


然后就有一个函数
procedure TComm.CommWndProc( var msg: TMessage );
begin
  with msg do
     case msg of
          PWM_GOTCOMMDATA:
          begin
               ReceiveData( PChar(LParam), WParam );
               LocalFree( LParam )
          end;
          PWM_RECEIVEERROR:    ReceiveError( LParam );
          PWM_MODEMSTATECHANGE:ModemStateChange( LParam );
          PWM_REQUESTHANGUP:   RequestHangup;
          PWM_SENDDATAEMPTY:   _SendDataEmpty;
          else
            Result := DefWindowProc(FHWnd, Msg, wParam, lParam);
     end
end;


ReceiveData是这样的
procedure TComm.ReceiveData(Buffer: PChar; BufferLength: Word);
begin
     if Assigned(FOnReceiveData) then
        FOnReceiveData( self, Buffer, BufferLength )
end;

FOnReceiveData
FOnReceiveData:     TReceiveDataEvent;
;
TReceiveDataEvent
TReceiveDataEvent = procedure(Sender: TObject; Buffer: Pointer;
                                  BufferLength: Word) of object;


没有请问自定义消息从哪里传送到TComm.CommWndProc的,TComm.CommWndProc的声明中没看到messge关键字啊
[解决办法]
肯定有Sendmessage或postmessage之类的,你在pas文件中搜 PWM_GOTCOMMDATA

热点排行