AdsAms[Un]RegisterRouterNotification
![AdsAms[Un]RegisterRouterNotification 1:](Images/gif/12466883595__Web.gif)
Delphi 5 program
unit frmAdsAmsRegisterRouterNotificationUnit;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, TcAdsDef, TcAdsApi, Buttons, ExtCtrls;
//define your own message id
const WM_ADSROUTERNOTIFICATION = WM_APP + 405;
type
TfrmAdsAmsRegisterRouterNotification = class(TForm)
BitBtn1: TBitBtn;
Bevel1: TBevel;
Button1: TButton;
Label1: TLabel;
Memo1: TMemo;
Button2: TButton;
Label2: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
protected
procedure WMAdsRouterNotification( var Message: TMessage ); message WM_ADSROUTERNOTIFICATION;
private
{ Private-Deklarationen }
serverAddr : TAmsAddr;
public
{ Public-Deklarationen }
procedure InitData( destAddr : TAmsAddr);
end;
var wndHandle : HWND;
implementation
{$R *.DFM}
//////////////////////////////////////////////////////////////////////////////
Procedure RouterCallback( nEvent:Longint ); stdcall;
begin
PostMessage(wndHandle, WM_ADSROUTERNOTIFICATION, nEvent, 0);
end;
//////////////////////////////////////////////////////////////////////////////
procedure TfrmAdsAmsRegisterRouterNotification.WMAdsRouterNotification( var Message: TMessage );
var sState : String;
begin
case Message.WParam of
AMSEVENT_ROUTERSTOP: sState := 'ROUTER STOP';
AMSEVENT_ROUTERSTART: sState:= 'ROUTER START';
AMSEVENT_ROUTERREMOVED: sState:= 'ROUTER REMOVED';
else
sState := Format( 'Other: %d', [Message.WParam]);
end;
Memo1.lines.add(Format('%s, nEvent: %s',[TimeToStr(time), sState]));
inherited;
end;
//////////////////////////////////////////////////////////////////////////////
procedure TfrmAdsAmsRegisterRouterNotification.InitData( destAddr : TAmsAddr );
begin
serverAddr := destAddr;
wndHandle := Handle;//Save the window handle
end;
//////////////////////////////////////////////////////////////////////////////
procedure TfrmAdsAmsRegisterRouterNotification.Button1Click(Sender: TObject);
var result : longint;
begin
result := AdsAmsRegisterRouterNotification( @RouterCallback );
Label1.Caption := Format( 'AdsAmsRegisterRouterNotification() result: %d [0x%x]', [result,result] );
Button1.Enabled := not(result = ADSERR_NOERR);
Button2.Enabled := (result = ADSERR_NOERR);
end;
//////////////////////////////////////////////////////////////////////////////
procedure TfrmAdsAmsRegisterRouterNotification.Button2Click( Sender: TObject);
var result : longint;
begin
Memo1.Lines.Clear();
result := AdsAmsUnRegisterRouterNotification();
Label1.Caption := Format( 'AdsAmsUnRegisterRouterNotification() result: %d [0x%x]', [result,result] );
Button1.Enabled := true;
Button2.Enabled := false;
end;
end.
Related documents