Exemple de traitement d'événements

Ce qui suit est un court exemple de la façon d'implémenter les événements PS


      Option Explicit Private WithEvents mPS As autECLPS 'AutPS added as reference Private WithEvents Mkey as autECLPS sub main() 'Create Objects Set mPS = New autECLPS Set mkey = New autECLPS mPS.SetConnectionByName "A" 'Monitor Session A for PS Updates mPS.SetConnectionByName "B" 'Intercept Keystrokes intended for Session B mPS.RegisterPSEvent 'register for PS Updates mPS.RegisterCommEvent ' register for Communications Link updates for session A mkey.RegisterKeyEvent 'register for Key stroke intercept ' Display your form or whatever here (this should be a blocking call, otherwise sub just ends call DisplayGUI() mPS.UnregisterPSEvent mPS.UnregisterCommEvent mkey.UnregisterKeyEvent 
    

       set mPS = Nothing set mKey = Nothing End Sub 'This sub will get called when the PS of the Session registered 'above changes Private Sub mPS_NotifyPSEvent() ' do your processing here End Sub 'This sub will get called when Keystrokes are entered into Session B Private Sub mkey_NotifyKeyEvent(string KeyType, string KeyString, PassItOn as Boolean) ' do your keystroke filtering here If (KeyType = "M") Then 'handle mnemonics here if (KeyString = "[PF1]" then 'intercept PF1 and send PF2 instead mkey.SendKeys "[PF2]" set PassItOn = false end if end if
    

       End Sub 'This event occurs if an error happens in PS event processing Private Sub mPS_NotifyPSError() 'Do any error processing here End Sub 'This event occurs when PS Event handling ends Private Sub mPS_NotifyPSStop(Reason As Long) 'Do any stop processing here End Sub 'This event occurs if an error happens in Keystroke processing Private Sub mkey_NotifyKeyError() 'Do any error processing here End Sub 'This event occurs when key stroke event handling ends Private Sub mkey_NotifyKeyStop(Reason As Long) 'Do any stop processing here End Sub
    

       'This sub will get called when the Communication Link Status of the registered 'connection changes Private Sub mPS_NotifyCommEvent() ' do your processing here End Sub 
    

      'This event occurs if an error happens in Communications Link event processing Private Sub mPS_NotifyCommError() 'Do any error processing here End Sub 'This event occurs when Communications Status Notification ends Private Sub mPS_NotifyCommStop() 'Do any stop processing here End Sub