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;
procedure TComm.ReceiveData(Buffer: PChar; BufferLength: Word);
begin
if Assigned(FOnReceiveData) then
FOnReceiveData( self, Buffer, BufferLength )
end;
FOnReceiveData: TReceiveDataEvent;;
TReceiveDataEvent = procedure(Sender: TObject; Buffer: Pointer;
BufferLength: Word) of object;