#7017
Support 1a
Participant

Stuart,

It seems the GroupWise speller runs in its own thread. This means the process doesn’t wait until the speller process is done. This is why the applet continues, and the message is sent, before the speller has a chance to complete.

The only work around I can think of that doesn’t involve Novell changing the way the speller works is to put the applet in a loop that simply processes the windows message loop until the speller process is done. I’ve done this in the example code below by looking for the Writing Tools window.

Please note this code requires a little more robustness to be built in, and has not been extensively tested.

Dim Recipient

Sub Main(Client, GWEvent)
   Recipient = Groupwise.ItemGetText("X00", itfTo)
   If (Instr(1, Recipient, "@", 1) > 0) Then
     If (Instr(1, Recipient, "shlegal.com", 1) = 0) then
       dim iReturnVal
       call groupwise.throwtoken("Speller(0)", iReturnVal)

       ' Speller runs in a different thread, so we need to wait until
       ' the speller is done before returning.
       dim iSpellerWindow
       Utilities.DoEvents
       iSpellerWindow = utilities.FindWindow("" , "Writing Tools")
       while iSpellerWindow <> 0
         Utilities.DoEvents
         iSpellerWindow = utilities.FindWindow("" , "Writing Tools")
       wend
       MsgBox "Speller Done"
      End If
   End If
End Sub

I hope this helps,

Advansys Support