Hey there,

Sure, that is the error message that will point us exactly to the line 
of the app code, that obviously is generating the error. Exactly what is 
going on here, I have no clue, since it will take a bit of time to 
investigate the surrounding code of that line, to see why it causes an 
error. Yet, without knowing this much, it would hardly be possible for 
anyone to guess why the error occured, hence I and others called for 
this info. Now that we know what line causes the trouble, we might do 
one of two.


Either we could investigate what is actually going on, why it happens, 
what to do about it; and then fix the code. Such investigation will need 
someone who actually uses the app, along with the Mail Client software 
it is working with. I am not in that category, sorry to let you know.


Alternatively, we could do what another lister suggested, simply modify 
the app, so as to make it skip any error caused on this line of code. 
That is a rather quick fix, couple of extra lines of coding might 
suffice. Yet, it does hold a tiny risk, in that it does not solve the 
problem, more just works around it. If now, the actual problem sits in 
more of the main core of the app, it might end up popping its snoute 
out, a totally other place. If you are willing to run that tiny risk, 
likely we can have you helped out in not too long.


I am currently not able to put time into this, but just wanted to let 
you know why we called for the info given in the error message, and what 
possible can be done about it. Luckily, it seems to me, you got trouble 
with one of the apps that were not encrypted, hence we have the actual 
code handy, and can get to the point of modifying it. I really hope 
someone have the resources to give you a hand here.



David

On 11/13/2019 5:23 AM, peter Chin wrote:
> Hello David,
>
> I hope the text given below the row of dashes what you were were 
> asking for:
> ------------------------------
> Windows Live Mail.VBS-Microsoft VB Script  runtime error
> Line 700 column 2
> Type mismatch 'sharedobject(...)'
> <
> 0x800a000d
>>
>
>
> -----Original Message----- From: David via Talk
> Sent: Monday, November 11, 2019 10:38 AM
> To: peter Chin via Talk
> Cc: David
> Subject: Re: email
>
> What exactly is the error message saying? It usually will tell us what
> does not work, and which line in the scripting code that failed. That
> is, which step in the processing of the script that caused the error.
> Unless we know that, it all will be a matter of more or less wild 
> guessing.
>
>
> Now, if you happen to have the WEPM file for the script, you might want
> to reinstall the app. If you have not made any user settings in the app,
> if it offers such capability, I generally suggest first uninstalling the
> app altogether, prior to attempting any reinstallation. Should you not
> have the WEPM file, let us see if we might be able to help you out.
>
>
> Again, wild guessing. Since it worked for you up till recently, it might
> be due to some stuff going on with your computer. Try any Anti-ware you
> have, like AntiSpyware or AntiVirus. Run a full scan of the system. See
> if anything gets better. Sometimes I have seen certain Antiware block
> files from one of the WinEyes apps, so if that is the case,
> reinstallation will not help, since it only will reinstall the file that
> is being blocked. In such cases, checking the blocking list in your
> anti-ware might be a good idea.
>
>
> Don't use the software in question, so sorry for not being able to give
> you any further assistance here. Next time the error pops on you, would
> you mind try copy it and let the list know what it says?
>
>
>
> David
>
> On 11/11/2019 3:18 AM, peter Chin via Talk wrote:
>> Hello all,
>>
>> I made some mistakes in my last message so I am sending it again.
>> --------------------------------------------------
>> Hello all,
>>
>> I use WLM as my e-mail client on a Windows 8.1 machine and WE 9.5.4. I
>> had
>>
>> no trouble with this client until just over a month ago. Since then, I
>> get a
>>
>> script error message after sending out an e-mail message.I get four
>> choices:
>>
>> ignore error, stop App, edit App or restart App. I have to choose the
>> last
>>
>> option if I want to continue using WLM. However, WLM doesn't function
>>
>> properly unless I either reload WE or get out of WLM and then go back 
>> in.
>>
>>
>> I hope someone can suggest a remedy for this problem. For those who
>>
>> understand script writing (which I don't), I include a copy of the 
>> script
>>
>> which is supposed to be re-edited.
>>
>> ------------------------------------------------------------
>>
>> ' For license information, see WindowsLiveMail License.txt which ships
>> with
>>
>> this package.
>>
>> Option Explicit
>>
>>
>> Dim myXMLFile : myXMLFile = ClientInformation.ScriptPath &
>>
>> "\WindowsLiveMail.xml"
>>
>> Dim myINIFile : myINIFile = ClientInformation.ScriptPath &
>>
>> "\WindowsLiveMail.ini"
>>
>> Dim myStrings : Set myStrings = Strings(myXMLFile)
>>
>> Dim myScriptUpdateURL : myScriptUpdateURL =
>>
>> "
>> http://www.gwmicro.com/scripts/windows_live_mail/xml
>> "
>>
>> Dim checkedForUpdates : checkedForUpdates = False
>>
>> Dim errorReportingEnabled : errorReportingEnabled = False
>>
>> Dim SO_StandardHelpDialog : Set SO_StandardHelpDialog = Nothing
>>
>> Dim SO_CheckForUpdate : Set SO_CheckForUpdate = Nothing
>>
>> Dim SO_ErrorReporting : Set SO_ErrorReporting = Nothing
>>
>> Dim fsObj : Set fsObj = CreateObject("Scripting.FileSystemObject")
>>
>>
>> Dim messageWindow : Set messageWindow = Nothing
>>
>> Dim setFileActiveEvent : setFileActiveEvent = 0
>>
>> Dim lastSpoken : lastSpoken = ""
>>
>> Dim blockedFocusEvent : Set blockedFocusEvent = Nothing
>>
>> Dim msaaFocusEvent : msaaFocusEvent = 0
>>
>> Dim myMSAAEventSource : Set myMSAAEventSource = Nothing
>>
>> Dim contactHwnd : contactHwnd = 0
>>
>> Dim fieldDataEvent : fieldDataEvent = 0
>>
>>
>> Dim myMoveMessageHotkey : Set myMoveMessageHotkey = Nothing
>>
>> Dim myKeyDownEvent : myKeyDownEvent = 0
>>
>> Dim keyProcessedDownEventForBraille : keyProcessedDownEventForBraille 
>> = 0
>>
>> Dim myBrailleObj : Set myBrailleObj = Nothing
>>
>> Dim firstLetterNavStr : firstLetterNavStr = ""
>>
>> Dim keyPressTimer : keyPressTimer = 0
>>
>>
>> Const TIMER_AUTOCOMPLETE = 1000
>>
>> Const GRAPHIC_PREFIX = "GRAPHIC_"
>>
>>
>> Class MessageWindowClass
>>
>>    Private toField
>>
>>    Private autoCompleteSelected
>>
>>    Private myMSAAEventSource
>>
>>    Private autoCompleteEntries
>>
>>    Private myHotkeys
>>
>>    Private messageWindow
>>
>>    Private msaaEvents
>>
>>    Private timers
>>
>>    Private startTimerProxy
>>
>>    Private hotkeyProxy
>>
>>    Private msaaEventProxy
>>
>>
>>    Public Sub Class_Initialize()
>>
>>
>>        ' Begin
>>
>>        Set toField = Nothing
>>
>>        Set autoCompleteSelected = Nothing
>>
>>        Set myMSAAEventSource = MSAAEventSource
>>
>>        Set autoCompleteEntries = CreateObject("Scripting.Dictionary")
>>
>>        Set myHotkeys = CreateObject("Scripting.Dictionary")
>>
>>        Set msaaEvents = CreateObject("Scripting.Dictionary")
>>
>>        Set timers = CreateObject("Scripting.Dictionary")
>>
>>        Set startTimerProxy = (New SingleParameterProxyClass).Init(Me,
>>
>> "TimerProc")
>>
>>        Set hotkeyProxy = (New DualParameterProxyClass).Init(Me,
>>
>> "HotkeyProc")
>>
>>        Set msaaEventProxy = (New DualParameterProxyClass).Init(Me,
>>
>> "MSAAProc")
>>
>>    End Sub
>>
>>
>>    Public Function Init(wObj, newMessage)
>>
>>        ' Begin
>>
>>        Set messageWindow = wObj
>>
>>        RegisterHotkeys wObj
>>
>>        ' We only need to hook events for new messages
>>
>>        myMSAAEventSource.Window = messageWindow
>>
>>        If newMessage Then
>>
>>            msaaEvents(msaaEvents.Count + 1) =
>>
>> ConnectEventWithParameter(myMSAAEventSource, "OnObjectFocus",
>>
>> msaaEventProxy, event_OBJECT_FOCUS)
>>
>>            msaaEvents(msaaEvents.Count + 1) =
>>
>> ConnectEventWithParameter(myMSAAEventSource, "OnObjectStateChange",
>>
>> msaaEventProxy, event_OBJECT_STATECHANGE)
>>
>>        Else
>>
>>            msaaEvents(msaaEvents.Count + 1) =
>>
>> ConnectEventWithParameter(myMSAAEventSource, "OnObjectReorder",
>>
>> msaaEventProxy, event_OBJECT_REORDER)
>>
>>        End If
>>
>>        Set Init = Me
>>
>>    End Function
>>
>>
>>    Private Sub RegisterHotkeys(wObj)
>>
>>        Dim i
>>
>>
>>        ' Begin
>>
>>        For i = 1 to 7
>>
>>            Set myHotkeys("myAlt" & i & "HotKey") =
>>
>> Keyboard.RegisterHotkey("Alt-" & i, hotkeyProxy, wObj, i, True)
>>
>>        Next
>>
>>    End Sub
>>
>>
>>    Public Sub HotkeyProc(hotkeyID, firstPress)
>>
>>        Dim accObj, noteWindow, searchStr, result, location, speakStr,
>> match
>>
>>
>>        ' Begin
>>
>>        Set accObj = ActiveWindow.Accessible
>>
>>        Set noteWindow = Nothing
>>
>>        Set location = Nothing
>>
>>        Set result = Nothing
>>
>>        searchStr = ""
>>
>>        speakStr = ""
>>
>>        match = fmExact
>>
>>
>>        If Not accObj Is Nothing Then
>>
>>            Set noteWindow = GetAccessibleByName(accObj.Children,
>>
>> "NoteWindow", fmExact)
>>
>>            If Not noteWindow Is Nothing Then
>>
>>                Select Case hotkeyID
>>
>>                    Case 1 ' Alt-1: From
>>
>>                        searchStr = myStrings("MSG_FIELDS_FROM")
>>
>>                    Case 2 ' Alt-2: Date
>>
>>                        searchStr = myStrings("MSG_FIELDS_DATE")
>>
>>                    Case 3 ' Alt-3: To
>>
>>                        searchStr = myStrings("MSG_FIELDS_TO")
>>
>>                    Case 4 ' Alt-4: CC
>>
>>                        searchStr = myStrings("MSG_FIELDS_CC")
>>
>>                    Case 5 ' Alt-5: BCC
>>
>>                        searchStr = myStrings("MSG_FIELDS_BCC")
>>
>>                    Case 6 ' Alt-6: Subject
>>
>>                        searchStr = myStrings("MSG_FIELDS_SUBJECT")
>>
>>                    Case 7 ' Alt-7: Attachment'
>>
>>                        searchStr = "("
>>
>> 'myStrings("MSG_FIELDS_ATTACHMENT_STRING")
>>
>>                        match = fmContains
>>
>>                End Select
>>
>>
>>                If Len(searchStr) > 0 Then
>>
>>                    Set result = GetAccessibleByName(noteWindow.Children,
>>
>> searchStr, match)
>>
>>                    If Not result Is Nothing Then
>>
>>                        If hotkeyID = 7 Then
>>
>>                            speakStr = result.Name
>>
>>                        ElseIf hotkeyID = 1 Then
>>
>>                            speakStr = result.Value & " " &
>>
>> result.Description
>>
>>                        Else
>>
>>                            speakStr = result.Value
>>
>>                        End If
>>
>>                        Set location = result.Location
>>
>>                    Else
>>
>>                        speakStr = myStrings("NO") & " "
>>
>>                        If hotkeyID = 7 Then
>>
>>                            speakStr = speakStr &
>>
>> myStrings("MSG_FIELDS_ATTACHMENT_STRING")
>>
>>                        Else
>>
>>                            speakStr = speakStr & searchStr
>>
>>                        End If
>>
>>                    End If
>>
>>                End If
>>
>>            End If
>>
>>        End If
>>
>>
>>        If firstPress Then
>>
>>            Silence
>>
>>            MySpeak speakStr
>>
>>        Else
>>
>>            If Not location Is Nothing Then
>>
>>                Mouse.Position = ScreenPoint(location.Left, location.Top)
>>
>>                Mouse.Click mbLeft, 1
>>
>>            End If
>>
>>        End If
>>
>>
>>    End Sub
>>
>>
>>    Public Default Sub MSAAProc(accObj, eventID)
>>
>>        Dim accRole : Set accRole = Nothing
>>
>>        Dim accState : Set accState = Nothing
>>
>>
>>        ' Begin
>>
>>        If Not accObj Is Nothing Then
>>
>>            On Error Resume Next
>>
>>            Set accRole = accObj.Role
>>
>>            Set accState = accObj.State
>>
>>            On Error Goto 0
>>
>>
>>            Select Case eventID
>>
>>                Case event_OBJECT_REORDER
>>
>>                    If Left(accObj.Value, Len("wlmailhtml:{")) =
>>
>> "wlmailhtml:{" Then
>>
>>                        If Not accRole Is Nothing Then
>>
>>                            If accRole.Value = role_SYSTEM_PANE Then
>>
>>                                If Not accState Is Nothing Then
>>
>>                                    If accState.Focused And
>>
>> accState.ReadOnly Then
>>
>>                                        If BrowseMode.State = bmsActive
>> Then
>>
>> 'bmsEnabled
>>
>>                                            Sleep 100
>>
>>                                            ExecuteHotkey hkRedraw
>>
>>                                        End If
>>
>>                                    End If
>>
>>                                End If
>>
>>                            End If
>>
>>                        End If
>>
>>                    End If
>>
>>                Case event_OBJECT_FOCUS
>>
>>                    If Not accRole Is Nothing Then
>>
>>                        If accRole.Value = role_SYSTEM_TEXT Then
>>
>>                            If accObj.Name = myStrings("MSG_FIELDS_TO")
>> Then
>>
>>                                Set toField = accObj
>>
>>                            End If
>>
>>                        End If
>>
>>                    End If
>>
>>                Case event_OBJECT_STATECHANGE
>>
>>                    If Not accRole Is Nothing Then
>>
>>                        If accRole.Value = role_SYSTEM_LISTITEM Then
>>
>>                            If Not accState Is Nothing Then
>>
>>                                If accState.Selected Then
>>
>>                                    Set autoCompleteSelected = accObj
>>
>>                                    If timers.Exists(TIMER_AUTOCOMPLETE)
>>
>> Then
>>
>>                                        If timers(TIMER_AUTOCOMPLETE) 
>> <> 0
>>
>> Then
>>
>>                                            StopTimer
>>
>> timers(TIMER_AUTOCOMPLETE)
>>
>>                                        End If
>>
>>                                    End If
>>
>>                                    timers(TIMER_AUTOCOMPLETE) =
>>
>> StartTimer(100, startTimerProxy, TIMER_AUTOCOMPLETE)
>>
>>                                End If
>>
>>                            End If
>>
>>                        End If
>>
>>                    End If
>>
>>            End Select
>>
>>        End If
>>
>>    End Sub
>>
>>
>>    Public Sub TimerProc(timerID)
>>
>>        Dim i, keys, accState, strToSpeak, index
>>
>>
>>        ' Begin
>>
>>        Select Case timerID
>>
>>            Case TIMER_AUTOCOMPLETE
>>
>>                If Not autoCompleteSelected Is Nothing Then
>>
>>                    On Error Resume Next
>>
>>                    strToSpeak = autoCompleteSelected.Value & ". " &
>>
>> autoCompleteSelected.Description
>>
>>                    index = GetSelectedItemIndex(autoCompleteSelected)
>>
>>                    strToSpeak = strToSpeak &
>>
>> Replace(myStrings("SUGGESTIONS"), "%1",
>> Replace(Replace(myStrings("INDEX"),
>>
>> "%1", index(0)), "%2", index(1)))
>>
>>                    Silence
>>
>>                    MySpeak strToSpeak
>>
>>                    On Error Goto 0
>>
>>                End If
>>
>>        End Select
>>
>>    End Sub
>>
>>
>>    Private Function GetSelectedItemIndex(accObj)
>>
>>        Dim accParent, i, children, total, selected, childState
>>
>>
>>        ' Begin
>>
>>        total = 0
>>
>>        selected = 0
>>
>>        Set accParent = Nothing
>>
>>        If Not accObj Is Nothing Then
>>
>>            On Error Resume Next
>>
>>            Set accParent = accObj.Parent
>>
>>            On Error Goto 0
>>
>>            If Not accParent Is Nothing Then
>>
>>                total = accParent.Children.Count
>>
>>                For i = 1 To accParent.Children.Count
>>
>>                    On Error Resume Next
>>
>>                    Set childState = accParent.Children(i).State
>>
>>                    On Error Goto 0
>>
>>                    If Not childState Is Nothing Then
>>
>>                        If childState.Selected Then
>>
>>                            selected = i
>>
>>                            Exit For
>>
>>                        End If
>>
>>                    End If
>>
>>                Next
>>
>>            End If
>>
>>        End If
>>
>>
>>        GetSelectedItemIndex = Array(selected, total)
>>
>>    End Function
>>
>>
>>    Public Sub Dispose()
>>
>>        Dim i, keys
>>
>>
>>        ' Stop any existing timers
>>
>>        keys = timers.Keys
>>
>>        For i = 0 to UBound(keys)
>>
>>            If timers(keys(i)) <> 0 Then
>>
>>                StopTimer timers(keys(i))
>>
>>            End If
>>
>>        Next
>>
>>
>>        ' Unhook all the MSAA events
>>
>>        keys = msaaEvents.Keys
>>
>>        For i = 0 to UBound(keys)
>>
>>            If msaaEvents(keys(i)) <> 0 Then
>>
>>                Disconnect msaaEvents(keys(i))
>>
>>            End If
>>
>>        Next
>>
>>    End Sub
>>
>>
>>    Private Function GetAccessibleByName(accChildren, strName, match)
>>
>>        Dim accChild, result
>>
>>
>>        ' Begin
>>
>>        Set result = Nothing
>>
>>        For Each accChild In accChildren
>>
>>            Select Case match
>>
>>                Case fmExact
>>
>>                    If accChild.Name = strName Then
>>
>>                        Set result = accChild
>>
>>                        Exit For
>>
>>                    End If
>>
>>                Case fmContains
>>
>>                    If InStr(accChild.Name, strName) > 0 Then
>>
>>                        Set result = accChild
>>
>>                        Exit For
>>
>>                    End If
>>
>>                Case fmStartsWith
>>
>>                    If Left(accChild.Name, Len(strName)) = strName Then
>>
>>                        Set result = accChild
>>
>>                        Exit For
>>
>>                    End If
>>
>>                Case fmEndsWith
>>
>>                    If Right(accChild.Name, Len(strName)) = strName Then
>>
>>                        Set result = accChild
>>
>>                        Exit For
>>
>>                    End If
>>
>>            End Select
>>
>>            If accChild.Children.Count > 0 Then
>>
>>                Set result = GetAccessibleByName(accChild.Children,
>> strName,
>>
>> match)
>>
>>                If Not result Is Nothing Then
>>
>>                    Exit For
>>
>>                End If
>>
>>            End If
>>
>>        Next
>>
>>        Set GetAccessibleByName = result
>>
>>    End Function
>>
>>
>>    Public Sub Class_Terminate()
>>
>>        Set messageWindow = Nothing
>>
>>        Set hotkeyProxy = Nothing
>>
>>        Set startTimerProxy = Nothing
>>
>>        Set autoCompleteEntries = Nothing
>>
>>        Set msaaEventProxy = Nothing
>>
>>        Set timers = Nothing
>>
>>        Set myHotkeys = Nothing
>>
>>        Set myMSAAEventSource = Nothing
>>
>>        Set autoCompleteSelected = Nothing
>>
>>        Set toField = Nothing
>>
>>    End Sub
>>
>>
>> End Class
>>
>>
>> ' DualParameterProxyClass - marshals calls to the specified function
>> inside
>>
>> the caller. This
>>
>> ' particular class deals events or procedures that take a single
>> argument.
>>
>> Class DualParameterProxyClass
>>
>>    Private caller
>>
>>    Private functionName
>>
>>
>>    ' VBScript doesn't appear to report the default method correct,
>>
>>    ' so we need to make sure that it's defined first.
>>
>>    Public Default Sub Main(parm1, parm2)
>>
>>        Eval "caller." & functionName & "(parm1, parm2)"
>>
>>    End Sub
>>
>>
>>    Public Function Init(c, fn)
>>
>>        Set caller = c
>>
>>        functionName = fn
>>
>>        Set Init = Me
>>
>>    End Function
>>
>> End Class
>>
>>
>> ' SingleParameterProxyClass - marshals calls to the specified function
>>
>> inside the caller. This
>>
>> ' particular class deals events or procedures that take a single
>> argument.
>>
>> Class SingleParameterProxyClass
>>
>>    Private caller
>>
>>    Private functionName
>>
>>
>>    ' VBScript doesn't appear to report the default method correct,
>>
>>    ' so we need to make sure that it's defined first.
>>
>>    Public Default Sub Main(parm1)
>>
>>        Eval "caller." & functionName & "(parm1)"
>>
>>    End Sub
>>
>>
>>    Public Function Init(c, fn)
>>
>>        Set caller = c
>>
>>        functionName = fn
>>
>>        Set Init = Me
>>
>>    End Function
>>
>> End Class
>>
>>
>> '------------------------------------------------------------------------------
>>  
>>
>>
>>
>> ' OnStateChange is the routine that gets called with the OnStateChange
>> event
>>
>> ' fires from the SharedObjects object.
>>
>> '------------------------------------------------------------------------------
>>  
>>
>>
>>
>> Sub OnStateChange(objName, objState)
>>
>>    If objName = "com.GWMicro.GWToolkit.CheckForUpdate" Then
>>
>>        If objState Then
>>
>> '---------------------------------------------------------------------
>>
>>            ' The CheckForUpdate object was just loaded, so call the
>>
>>            ' CheckForUpdates routine if we have't already.
>>
>> '---------------------------------------------------------------------
>>
>>            Set SO_CheckForUpdate = SharedObjects(objName, 0).NewCheck
>>
>>
>>            If Not checkedForUpdates Then
>>
>>                Queue "CheckForUpdates"
>>
>>                checkedForUpdates = True
>>
>>            End If
>>
>>        Else
>>
>>            Set SO_CheckForUpdate = Nothing
>>
>>        End If
>>
>>    ElseIf objName = "com.GWMicro.GWToolkit.StandardHelpDialog" Then
>>
>> '---------------------------------------------------------------------
>>
>>        ' The StandardHelpDialog object was just loaded, so now we can
>>
>>        ' set the ClientInformation.ScriptHelp property to our real
>>
>>        ' script help routine. Otherwise, we'll set it back to our
>>
>>        ' default message.
>>
>> '---------------------------------------------------------------------
>>
>>        If objState Then
>>
>>            Set SO_StandardHelpDialog = SharedObjects(objName,
>> 0).NewDialog
>>
>>
>> '----------------------------------------------------------------
>>
>>            ' Set up the help dialog with the appropriate information
>>
>> '----------------------------------------------------------------
>>
>>            SO_StandardHelpDialog.INIFileName = myINIFile
>>
>>            SO_StandardHelpDialog.HelpTitle =
>> ClientInformation.ScriptName &
>>
>> " " & ClientInformation.ScriptVersion
>>
>>            SO_StandardHelpDialog.HelpText = myStrings("Script_Help")
>>
>>            SO_StandardHelpDialog.ScriptName =
>> ClientInformation.ScriptName
>>
>>            SO_StandardHelpDialog.ScriptVersion =
>>
>> ClientInformation.ScriptVersion
>>
>>            SO_StandardHelpDialog.FocusCloseButton = True
>>
>>            SO_StandardHelpDialog.UpdateUrl = myScriptUpdateURL
>>
>>            SO_StandardHelpDialog.UseAboutBox = True
>>
>>            SO_StandardHelpDialog.AboutAuthor = "GW Micro, Inc."
>>
>>            SO_StandardHelpDialog.AboutReleaseDate =
>>
>> fsObj.GetFile(ClientInformation.ScriptPath & "\" &
>>
>> ClientInformation.ScriptFileName).DateLastModified
>>
>>            SO_StandardHelpDialog.AboutCopyright = "GW Micro, Inc."
>>
>>            SO_StandardHelpDialog.AboutWebsite = "
>> www.gwmicro.com
>> "
>>
>>            If SharedObjects("com.GWMicro.GWToolkit.Version")() >= 
>> "8.4.1"
>>
>> Then
>>
>>                SO_StandardHelpDialog.AboutEmail = "
>> [email protected]
>> "
>>
>>            End If
>>
>> '----------------------------------------------------------------
>>
>>            ' Change ClientInformation.ScriptHelp to our real routine
>>
>> '----------------------------------------------------------------
>>
>>            ClientInformation.ScriptHelp = "ScriptHelp"
>>
>>        Else
>>
>> '----------------------------------------------------------------
>>
>>            ' Change ClientInformation.ScriptHelp to our default message
>>
>> '----------------------------------------------------------------
>>
>>            Set SO_StandardHelpDialog = Nothing
>>
>>            ClientInformation.ScriptHelp = 
>> myStrings("GWToolkit_Required")
>>
>>        End If
>>
>>    ElseIf objName = "com.GWMicro.GWToolkit.ErrorReporting" And objState
>>
>> Then
>>
>> '---------------------------------------------------------------------
>>
>>        ' The ErrorReporting object was just loaded, so now we can 
>> execute
>>
>>        ' the code it provides for enhanced error reporting, assuming we
>>
>> haven't
>>
>>        ' already done so (with the errorReportingEnabled variable will
>> tell
>>
>> us).
>>
>>        ' ErrorReporting is not stored as a global variable, because we
>> only
>>
>> care
>>
>>        ' about executing it once, and never again.
>>
>> '---------------------------------------------------------------------
>>
>>        If Not errorReportingEnabled Then
>>
>>            ExecuteGlobal SharedObjects(objName,
>>
>> 0)(ClientInformation.ScriptVersion, "
>> [email protected]
>> ", True)
>>
>>            errorReportingEnabled = True
>>
>>        End If
>>
>>    End If
>>
>> End Sub
>>
>>
>> '-----------------------------------------------------------------------
>>
>> ' Check for automatic updates
>>
>> '-----------------------------------------------------------------------
>>
>> Sub CheckForUpdates()
>>
>> '-----------------------------------------------------------------------
>>
>>    ' We first need to see if the check for update object is 
>> available. If
>>
>>    ' it's not, there's no point in continuing.
>>
>> '-----------------------------------------------------------------------
>>
>>    If Not SO_CheckForUpdate Is Nothing Then
>>
>> '--------------------------------------------------------------------
>>
>>        ' If Automatic_Update exists in our INI, and the value is 1, then
>>
>>        ' we'll attempt to check for a new version.
>>
>> '--------------------------------------------------------------------
>>
>>        If IniFile(myINIFile).Number("Automatic_Updates", 
>> "OnScriptStart",
>>
>> 1) = 1 Then
>>
>> '----------------------------------------------------------------
>>
>>            ' To check for an update, we need to provide the required
>>
>>            ' information: our script version (which we stored in the
>>
>>            ' ClientInformation object in the global variables section,
>> and
>>
>>            ' the web address to our XML file, which we also stored in
>>
>>            ' the global variables section.
>>
>> '----------------------------------------------------------------
>>
>>            SO_CheckForUpdate.ScriptVersion =
>>
>> ClientInformation.ScriptVersion
>>
>>            SO_CheckForUpdate.UpdateUrl = myScriptUpdateURL
>>
>> '----------------------------------------------------------------
>>
>>            ' Now that we've provided all the required inforamtion, we
>>
>>            ' have the GW Toolkit check for an update.
>>
>> '----------------------------------------------------------------
>>
>>            SO_CheckForUpdate.Check
>>
>> '----------------------------------------------------------------
>>
>>            ' Finally, we'll set the global flag that indicates 
>> whether or
>>
>>            ' not we've already checked for updates to True
>>
>> '----------------------------------------------------------------
>>
>>            checkedForUpdates = True
>>
>>        Else
>>
>> '----------------------------------------------------------------
>>
>>            ' Since we weren't able to get the toolkit object at this
>> point,
>>
>>            ' we need to make sure our global flag that indicates whether
>>
>>            ' or not we've already checked for updates is set to False.
>>
>> '----------------------------------------------------------------
>>
>>            checkedForUpdates = False
>>
>>        End If
>>
>>    End If
>>
>> End Sub
>>
>>
>> Sub ScriptHelp()
>>
>>    SO_StandardHelpDialog.Show
>>
>> End Sub
>>
>>
>> Main()
>>
>>
>> Sub Main()
>>
>>    ClientInformation.ScriptName = myStrings("Script_Name")
>>
>>    ClientInformation.ScriptVersion = myStrings("Script_Version")
>>
>>    ClientInformation.ScriptDescription = ClientInformation.ScriptName
>> & " "
>>
>> & ClientInformation.ScriptVersion
>>
>>    ClientInformation.ScriptHelp = myStrings("GWToolkit_Required")
>>
>>
>>    ConnectEvent SharedObjects, "OnStateChange", "OnStateChange"
>>
>>    ConnectEvent DesktopWindow, "OnChildActivate", "OnChildActivate"
>>
>>    ConnectEvent DesktopWindow, "OnChildCreate", "OnChildCreate"
>>
>>    ConnectEvent DesktopWindow, "OnChildClose", "OnChildClose"
>>
>>    setFileActiveEvent = ConnectEvent(Application, "OnSetFileActivate",
>>
>> "OnSetFileActivate")
>>
>> End Sub
>>
>>
>> Sub OnSetFileActivate(setFile)
>>
>>    If setFile.FileName = "WindowsLiveMail.set" Then
>>
>>        LoadGraphicDictionaryEntries()
>>
>>        ' We're done with this event, so no need to keep it hanging 
>> around
>>
>>        If setFileActiveEvent <> 0 Then
>>
>>            Disconnect setFileActiveEvent
>>
>>            setFileActiveEvent = 0
>>
>>        End If
>>
>>    End If
>>
>> End Sub
>>
>>
>> Sub LoadGraphicDictionaryEntries()
>>
>>    Dim activeSet, activeGraphicDictionary, keys, i, crc, labels
>>
>>
>>    ' Begin
>>
>>    Set activeSet = ActiveSettings
>>
>>    If Not activeSet Is Nothing Then
>>
>>        Set activeGraphicDictionary = activeSet.GraphicDictionary
>>
>>        If Not activeGraphicDictionary Is Nothing Then
>>
>>            keys = myStrings.Keys
>>
>>            For i = 1 to UBound(keys)
>>
>>                If Left(keys(i), Len(GRAPHIC_PREFIX)) = GRAPHIC_PREFIX
>> Then
>>
>>                    crc = Mid(keys(i), Len(GRAPHIC_PREFIX) + 1,
>>
>> Len(keys(i)))
>>
>>                    labels = Split(myStrings(keys(i)), "|")
>>
>>                    On Error Resume Next
>>
>>                    ' This is in an on error because, prior to 
>> Window-Eyes
>>
>> 7.5.4, sending a CRC
>>
>>                    ' value greater than 2147483647 would cause an
>> overflow
>>
>> script error.
>>
>>                    activeGraphicDictionary.Add crc, labels(0), 
>> labels(1),
>>
>> False, False, False
>>
>>                    On Error Goto 0
>>
>>                End If
>>
>>            Next
>>
>>        End If
>>
>>    End If
>>
>> End Sub
>>
>>
>> Sub OnChildCreate(wObj)
>>
>>    If wObj.ModuleName = "MSMAIL" Then
>>
>>        If wObj.ClassName = "Address Book Native Window Class" Then '
>>
>> Address Book Native Window Class
>>
>>            contactHwnd = wObj.Handle
>>
>>            Set myMSAAEventSource = MSAAEventSource
>>
>>            myMSAAEventSource.Process =
>> ClientInformation.ApplicationProcess
>>
>>            Set blockedFocusEvent =
>>
>> myMSAAEventSource.BlockEvent(event_OBJECT_FOCUS,
>>
>> ClientInformation.ApplicationProcess)
>>
>>            msaaFocusEvent = ConnectEvent(myMSAAEventSource,
>>
>> "OnObjectFocus", "OnObjectFocus")
>>
>>        End If
>>
>>    End If
>>
>> End Sub
>>
>>
>> Sub OnChildClose(hwnd)
>>
>>    If hwnd = contactHwnd Then
>>
>>        If msaaFocusEvent <> 0 Then
>>
>>            Disconnect msaaFocusEvent
>>
>>            msaaFocusEvent = 0
>>
>>        End If
>>
>>        If Not blockedFocusEvent Is Nothing Then
>>
>>            blockedFocusEvent.Unblock
>>
>>            Set blockedFocusEvent = Nothing
>>
>>        End If
>>
>>        If Not myMSAAEventSource Is Nothing Then
>>
>>            Set myMSAAEventSource = Nothing
>>
>>        End If
>>
>>    End If
>>
>> End Sub
>>
>>
>> Sub OnChildActivate(wObj)
>>
>>    ' Begin
>>
>>    If Not messageWindow Is Nothing Then
>>
>>        messageWindow.Dispose()
>>
>>    End If
>>
>>    Set messageWindow = Nothing
>>
>>
>>    If fieldDataEvent <> 0 Then
>>
>>        Disconnect fieldDataEvent
>>
>>        fieldDataEvent = 0
>>
>>    End If
>>
>>
>>    If myKeyDownEvent <> 0 Then
>>
>>        Disconnect myKeyDownEvent
>>
>>        myKeyDownEvent = 0
>>
>>    End If
>>
>>
>>    Set myMoveMessageHotkey = Nothing
>>
>>
>>    If wObj.ModuleName = "MSMAIL" Then
>>
>>        Select Case wObj.ClassName
>>
>>            Case "Outlook Express Browser Class"
>>
>>                ' Maximize the main window
>>
>>                wObj.Status = wsMaximized
>>
>>                Set myMoveMessageHotkey =
>>
>> Keyboard.RegisterHotkey(myStrings("MOVE_TO_HOTKEY"),
>> "TriggerMoveToDialog",
>>
>> wObj, wObj)
>>
>>            Case "ATH_Note"
>>
>>                If Left(wObj.Name,
>> Len(myStrings("MESSAGE_WINDOW_NAME"))) =
>>
>> myStrings("MESSAGE_WINDOW_NAME") Then
>>
>>                    Set messageWindow = (New
>> MessageWindowClass).Init(wObj,
>>
>> False)
>>
>>                ElseIf Left(wObj.Name,
>>
>> Len(myStrings("NEW_MESSAGE_WINDOW_NAME"))) =
>>
>> myStrings("NEW_MESSAGE_WINDOW_NAME") Then
>>
>>                    Set messageWindow = (New
>> MessageWindowClass).Init(wObj,
>>
>> True)
>>
>>                End If
>>
>>        End Select
>>
>>    ElseIf wObj.ModuleName = "WLMAIL" Then
>>
>>        Select Case wObj.Name
>>
>>            Case myStrings("RULE_EDITOR_WINDOW_NAME")
>>
>>                fieldDataEvent = ConnectEvent(wObj, "OnChildFieldData",
>>
>> "OnChildFieldData")
>>
>>        End Select
>>
>>
>>        Select Case wObj.Title
>>
>>            Case myStrings("GOTO_FOLDER_WINDOW_TITLE"),
>>
>> myStrings("MOVE_WINDOW_TITLE")
>>
>>                myKeyDownEvent = ConnectEventWithParameter(Keyboard,
>>
>> "OnKeyDown", "OnKeyDown", wObj)
>>
>>        End Select
>>
>>    End If
>>
>> End Sub
>>
>>
>> Function OnChildFieldData(wObj)
>>
>>    Dim lvObj, lvSelected, checkedState
>>
>>
>>    ' Begin
>>
>>    OnChildFieldData = vbNull
>>
>>    If wObj.ClassName = "SysListView32" And wObj.ModuleName = "WLMAIL"
>> Then
>>
>>        Set lvObj = wObj.Control
>>
>>        If TypeName(lvObj) = "ListView" Then
>>
>>            On Error Resume Next
>>
>>            Set lvSelected = lvObj.Items.Selected(1)
>>
>>            On Error Goto 0
>>
>>            If Not lvSelected Is Nothing Then
>>
>>                If lvSelected.StateImage = 7 Then
>>
>>                    checkedState = myStrings("UNCHECKED")
>>
>>                Else
>>
>>                    checkedState = myStrings("CHECKED")
>>
>>                End If
>>
>>                OnChildFieldData = checkedState & ". " & lvSelected.Text
>>
>>            End If
>>
>>        End If
>>
>>    End If
>>
>> End Function
>>
>>
>> Sub OnObjectFocus(accObj)
>>
>>    Dim eventWin : Set eventWin = Nothing
>>
>>    Dim accRole : Set accRole = Nothing
>>
>>    Dim accParent : Set accParent = Nothing
>>
>>    Dim accParentRole : Set accParentRole = Nothing
>>
>>    Dim handledEvent : handledEvent = False
>>
>>
>>    ' Begin
>>
>>    On Error Resume Next
>>
>>    accObj.Prefetch apAll
>>
>>    On Error Goto 0
>>
>>
>>    If Not accObj Is Nothing Then
>>
>>        Set eventWin = accObj.Window
>>
>>        If Not eventWin Is Nothing Then
>>
>>            Set accRole = accObj.Role
>>
>>            If Not accRole Is Nothing Then
>>
>>                Set accParent = accObj.Parent
>>
>>                If Not accParent Is Nothing Then
>>
>>                    Set accParentRole = accParent.Role
>>
>>                    If Not accParentRole Is Nothing Then
>>
>>                        If eventWin.ClassName = "WLXDUI" And
>>
>> eventWin.ModuleName = "WLMAIL" Then
>>
>>                            If accRole.Value = role_SYSTEM_LISTITEM Then
>>
>>                                If accParentRole.Value =
>> role_SYSTEM_WINDOW
>>
>> And accParent.Name = "ABFrame" Then
>>
>>                                    Dim parts : parts =
>>
>> Split(accObj.Description, vbCr)
>>
>>                                    Dim contact
>>
>>                                    If Trim(accObj.Name) <> 
>> Trim(parts(0))
>>
>> Then
>>
>>                                        contact = accObj.Name & ". " &
>>
>> parts(0)
>>
>>                                    Else
>>
>>                                        contact = parts(0)
>>
>>                                    End If
>>
>>                                    Queue "MySpeak", contact
>>
>>                                    handledEvent = True
>>
>>                                End If
>>
>>                            End If
>>
>>                        End If
>>
>>                    End If
>>
>>                End If
>>
>>            End If
>>
>>        End If
>>
>>    End If
>>
>>
>>    If Not accObj Is Nothing Then
>>
>>        If Not handledEvent Then
>>
>>            accObj.SimulateEvent event_OBJECT_FOCUS, apAll
>>
>>        End If
>>
>>    End If
>>
>> End Sub
>>
>>
>> Sub MySpeak(str)
>>
>>    ' Begin
>>
>>    If str <> lastSpoken Then
>>
>>        Silence
>>
>>        Queue "MyBraille", str
>>
>>        Speak str
>>
>>    End If
>>
>>    lastSpoken = str
>>
>> End Sub
>>
>>
>> Sub MyBraille(str)
>>
>>    Dim bDisplay, padding
>>
>>
>>    ' Begin
>>
>>    Set bDisplay = Nothing
>>
>>    If SharedObjects("com.GWMicro.GWToolkit.Version")() >= "8.5.1" Then
>>
>>        If myBrailleObj is Nothing Then
>>
>>            Set myBrailleObj =
>>
>> SharedObjects("com.GWMicro.GWToolkit.CustomBraille").NewBraille()
>>
>>        End If
>>
>>        If Not myBrailleObj is Nothing Then
>>
>>            myBrailleObj.Display str
>>
>>            ConnectKeyDown
>>
>>        End If
>>
>>    Else
>>
>>        On Error Resume Next
>>
>>        Set bDisplay = BrailleDisplays.Active
>>
>>        On Error Goto 0
>>
>>        If Not bDisplay Is Nothing Then
>>
>>            If bDisplay.Type <> bdtNone Then
>>
>>                padding = Braille.ActiveCellCount
>>
>>                If Len(str) < padding Then
>>
>>                    padding = padding - Len(str)
>>
>>                End If
>>
>>                If padding > Len(str) Then
>>
>>                    str = str & String(padding, " ")
>>
>>                End If
>>
>>                Braille.Display str
>>
>>            End If
>>
>>        End If
>>
>>    End If
>>
>> End Sub
>>
>>
>> Sub TriggerMoveToDialog(wObj)
>>
>>    Dim ribbon, item
>>
>>
>>    ' Begin
>>
>>    On Error Resume Next ' Because MSAA
>>
>>    Set ribbon = GetRibbon()
>>
>>    If Not ribbon Is Nothing Then
>>
>>        ' NOTE: This won't work if the Home tab is NOT the active tab!
>>
>>        Set item = GetRibbonItem(ribbon,
>> myStrings("HOME_RIBBON_TAB_NAME"),
>>
>> myStrings("HOME_ACTIONS_RIBBON_GROUP_NAME"),
>>
>> myStrings("HOME_ACTIONS_MOVETO_ITEM_NAME"))
>>
>>        If Not item Is Nothing Then
>>
>>            item.DoDefaultAction()
>>
>>            If Err.Number <> 0 Then
>>
>>                Silence
>>
>>                Speak myStrings("MOVE_UNAVAILABLE")
>>
>>            End If
>>
>>        End If
>>
>>    End If
>>
>>    On Error Goto 0
>>
>> End Sub
>>
>>
>> Function GetRibbon()
>>
>>    ' Begin
>>
>>    Set GetRibbon = DrillDown(ActiveWindow.Accessible, role_SYSTEM_PANE,
>>
>> myStrings("LOWER_RIBBON"))
>>
>> End Function
>>
>>
>> Function GetRibbonItem(ribbon, tabName, groupName, itemName)
>>
>>    Dim child, tabObj, groupObj, itemObj
>>
>>
>>    ' Begin
>>
>>    Set itemObj = Nothing
>>
>>    Set tabObj = Nothing
>>
>>    Set groupObj = Nothing
>>
>>
>>    If Not ribbon Is Nothing Then
>>
>>        For Each child In ribbon.Children(1).Children
>>
>>            If tabObj Is Nothing Then
>>
>>                If child.Name = tabName Then
>>
>>                    Set tabObj = child
>>
>>                    Exit For
>>
>>                End If
>>
>>            End If
>>
>>        Next
>>
>>        If Not tabObj Is Nothing Then
>>
>>            For Each child In tabObj.Children
>>
>>                If groupObj Is Nothing Then
>>
>>                    If child.Name = groupName Then
>>
>>                        Set groupObj = child
>>
>>                        Exit For
>>
>>                    End If
>>
>>                End If
>>
>>            Next
>>
>>        End If
>>
>>
>>        If Not groupObj Is Nothing Then
>>
>>            For Each child In groupObj.Children
>>
>>                If itemObj Is Nothing Then
>>
>>                    If child.Name = itemName Then
>>
>>                        Set itemObj = child
>>
>>                        Exit For
>>
>>                    End If
>>
>>                End If
>>
>>            Next
>>
>>        End If
>>
>>    End If
>>
>>    Set GetRibbonItem = itemObj
>>
>> End Function
>>
>>
>> Function DrillDown(accObj, role, name)
>>
>>    Dim child, result
>>
>>
>>    ' Begin
>>
>>    On Error Resume Next
>>
>>    If accObj.Role.Value = role Then
>>
>>        If accObj.Name = name Then
>>
>>            Set DrillDown = accObj
>>
>>            Exit Function
>>
>>        End If
>>
>>    End If
>>
>>
>>    For Each child In accObj.Children
>>
>>        If child.Role.Value = role Then
>>
>>            If child.Name = name Then
>>
>>                Set DrillDown = child
>>
>>                Exit Function
>>
>>            End If
>>
>>        End If
>>
>>        If child.Children.Count > 0 Then
>>
>>            Set result = DrillDown(child, role, name)
>>
>>            If Not result Is Nothing Then
>>
>>                Set DrillDown = result
>>
>>                Exit Function
>>
>>            End If
>>
>>        End If
>>
>>    Next
>>
>>    On Error Goto 0
>>
>>    Set DrillDown = Nothing
>>
>> End Function
>>
>>
>> Function OnKeyDown(vk, km, wObj)
>>
>>    Dim kDisp
>>
>>
>>    ' Begin
>>
>>    kDisp = kdProcess
>>
>>    If keyPressTimer <> 0 Then
>>
>>        StopTimer keyPressTimer
>>
>>        keyPressTimer = 0
>>
>>    End If
>>
>>    If FocusedWindow.ModuleName = "WLMAIL" And FocusedWindow.ClassName =
>>
>> "WLXDUI" Then
>>
>>        ' Start keeping track of key presses. When the timer fires, then
>>
>> look
>>
>>        ' for the string entered.
>>
>>        km = km And Not kmShift And Not kmNumpad And Not kmNumlock
>>
>>        If (vk = 32 Or (vk >= 48 And vk <= 126)) And km = 0 Then
>>
>>            firstLetterNavStr = firstLetterNavStr & ChrW(vk)
>>
>>            keyPressTimer = StartTimer(250, "FirstLetterNav",
>>
>> firstLetterNavStr)
>>
>>            kDisp = kdDiscard
>>
>>        Else
>>
>>            firstLetterNavStr = ""
>>
>>            keyPressTimer = 0
>>
>>        End If
>>
>>    Else
>>
>>        firstLetterNavStr = ""
>>
>>        keyPressTimer = 0
>>
>>    End If
>>
>>    OnKeyDown = kDisp
>>
>> End Function
>>
>>
>> Sub ConnectKeyDown
>>
>>    If keyProcessedDownEventForBraille = 0 Then
>>
>>        keyProcessedDownEventForBraille = ConnectEvent(Keyboard,
>>
>> "OnKeyProcessedDown", "OnKeyProcessedDown")
>>
>>    End If
>>
>> End Sub
>>
>>
>> Sub DisconnectKeyDown
>>
>>    If keyProcessedDownEventForBraille <> 0 Then
>>
>>        Disconnect keyProcessedDownEventForBraille
>>
>>        keyProcessedDownEventForBraille = 0
>>
>>    End If
>>
>> End Sub
>>
>>
>> Sub OnKeyProcessedDown(vk, km)
>>
>>    If Not myBrailleObj Is Nothing Then
>>
>>        myBrailleObj.ReleaseDisplay
>>
>>        DisconnectKeyDown
>>
>>    End If
>>
>> End Sub
>>
>>
>>
>> Sub FirstLetterNav(navStr)
>>
>>    Dim focusAccObj, folderlist, folderInfo, nextFolderListID, nextIndex,
>>
>> currIndex, currFolderListID, selectedFolder, found
>>
>>
>>    ' Begin
>>
>>    found = False
>>
>>
>>    If myKeyDownEvent <> 0 Then
>>
>>        Disconnect myKeyDownEvent
>>
>>        myKeyDownEvent = 0
>>
>>    End If
>>
>>
>>    If keyPressTimer <> 0 Then
>>
>>        StopTimer keyPressTimer
>>
>>        keyPressTimer = 0
>>
>>    End If
>>
>>
>>    Set focusAccObj = FocusedWindow.Accessible
>>
>>    Do
>>
>>        ' Get the current hash of visible folder names and index of the
>>
>> selected item
>>
>>        Set folderList = DrillDown(focusAccObj, role_SYSTEM_OUTLINE,
>>
>> myStrings("FOLDER_TREE_LIST_PANE"))
>>
>>        If Not folderList Is Nothing Then
>>
>>            folderInfo =
>>
>> GetSelectedFolderInfo(folderList.Children.FilterByRoleAndState(role_SYSTEM_OUTLINEITEM))
>>  
>>
>>
>>
>>            If IsArray(folderInfo) And UBound(folderInfo) > 0 Then
>>
>>                currfolderListID = folderInfo(0)
>>
>>                currIndex = folderInfo(1)
>>
>>            End If
>>
>>        End If
>>
>>
>>        ' Then send a down arrow. use Down and Up because InsertKey is
>>
>> synchronous, and too slow
>>
>>        Keyboard.InsertKeyDown vk_DOWN
>>
>>        Keyboard.InsertKeyUp vk_DOWN
>>
>>
>>        ' Get the new hash of visible folder names and index of the
>> selected
>>
>> item
>>
>>        Set folderList = DrillDown(focusAccObj, role_SYSTEM_OUTLINE,
>>
>> myStrings("FOLDER_TREE_LIST_PANE"))
>>
>>        If Not folderList Is Nothing Then
>>
>>            folderInfo =
>>
>> GetSelectedFolderInfo(folderList.Children.FilterByRoleAndState(role_SYSTEM_OUTLINEITEM))
>>  
>>
>>
>>
>>            If IsArray(folderInfo) And UBound(folderInfo) Then
>>
>>                nextFolderListID = folderInfo(0)
>>
>>                nextIndex = folderInfo(1)
>>
>>            End If
>>
>>        End If
>>
>>        ' See if we have a match
>>
>>        If IsArray(folderInfo) And UBound(folderInfo) > 1 Then
>>
>>            If Left(LCase(folderInfo(2)), Len(navStr)) = LCase(navStr)
>> Then
>>
>>                ' Found a match!
>>
>>                found = True
>>
>>                Exit Do
>>
>>            End If
>>
>>        End If
>>
>>    Loop While currFolderListID & currIndex <> nextFolderListID &
>> nextIndex
>>
>>
>>    If Not found Then
>>
>>        Keyboard.InsertKey vk_HOME, kmControl
>>
>>        Silence
>>
>>        Speak myStrings("NO_MATCH")
>>
>>    End If
>>
>>
>>    myKeyDownEvent = ConnectEventWithParameter(Keyboard, "OnKeyDown",
>>
>> "OnKeyDown", ActiveWindow)
>>
>>
>>    firstLetterNavStr = ""
>>
>> End Sub
>>
>>
>> Function GetSelectedFolderInfo(folderList)
>>
>>    Dim result, index, folder, folderName, folderState
>>
>>
>>    ' Begin
>>
>>    index = 1
>>
>>    result = Array("", index, "")
>>
>>    Set folderState = Nothing
>>
>>    If Not folderList is Nothing Then
>>
>>        For Each folder In folderList
>>
>>            If Not folder is Nothing Then
>>
>>                folderName = folder.Name
>>
>>                result(0) = result(0) & Replace(folderName, " ", "")
>>
>>                On Error Resume Next
>>
>>                Set folderState = folder.State
>>
>>                On Error Goto 0
>>
>>                If Not folderState Is Nothing Then
>>
>>                    If folderState.Selected Then
>>
>>                        result(1) = index
>>
>>                        result(2) = folderName
>>
>>                    End If
>>
>>                End If
>>
>>            End If
>>
>>            index = index + 1
>>
>>        Next
>>
>>    End If
>>
>>    GetSelectedFolderInfo = result
>>
>> End Function
>>
>> '' SIG '' Begin signature block
>>
>> '' SIG '' MIIZwAYJKoZIhvcNAQcCoIIZsTCCGa0CAQExCzAJBgUr
>>
>> '' SIG '' DgMCGgUAMGcGCisGAQQBgjcCAQSgWTBXMDIGCisGAQQB
>>
>> '' SIG '' gjcCAR4wJAIBAQQQTvApFpkntU2P5azhDxfrqwIBAAIB
>>
>> '' SIG '' AAIBAAIBAAIBADAhMAkGBSsOAwIaBQAEFMOtHpDd0pTH
>>
>> '' SIG '' tywr8b101OTiYaeioIIUIzCCBBQwggL8oAMCAQICCwQA
>>
>> '' SIG '' AAAAAS9O4VLXMA0GCSqGSIb3DQEBBQUAMFcxCzAJBgNV
>>
>> '' SIG '' BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNh
>>
>> '' SIG '' MRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9i
>>
>> '' SIG '' YWxTaWduIFJvb3QgQ0EwHhcNMTEwNDEzMTAwMDAwWhcN
>>
>> '' SIG '' MjgwMTI4MTIwMDAwWjBSMQswCQYDVQQGEwJCRTEZMBcG
>>
>> '' SIG '' A1UEChMQR2xvYmFsU2lnbiBudi1zYTEoMCYGA1UEAxMf
>>
>> '' SIG '' R2xvYmFsU2lnbiBUaW1lc3RhbXBpbmcgQ0EgLSBHMjCC
>>
>> '' SIG '' ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJTv
>>
>> '' SIG '' Zfi1V5+gUw00BusJH7dHGGrL8Fvk/yelNNH3iRq/nrHN
>>
>> '' SIG '' EkFuZtSBoIWLZFpGL5mgjXex4rxc3SLXamfQu+jKdN6L
>>
>> '' SIG '' Tw2wUuWQW+tHDvHnn5wLkGU+F5YwRXJtOaEXNsq5oIwb
>>
>> '' SIG '' TwgZ9oExrWEWpGLmtECew/z7lfb7tS6VgZjg78Xr2AJZ
>>
>> '' SIG '' eHf3quNSa1CRKcX8982TZdJgYSLyBvsy3RZR+g79ijDw
>>
>> '' SIG '' Fwmnu/MErquQ52zfeqn078RiJ19vmW04dKoRi9rfxxRM
>>
>> '' SIG '' 6YWy7MJ9SiaP51a6puDPklOAdPQD7GiyYLyEIACDG6Hu
>>
>> '' SIG '' tHQFwSmOYtBHsfrwU8wY+S47+XB+tCUCAwEAAaOB5TCB
>>
>> '' SIG '' 4jAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB
>>
>> '' SIG '' /wIBADAdBgNVHQ4EFgQURtg+/9zjvv+D5vSFm7DdatYU
>>
>> '' SIG '' qcEwRwYDVR0gBEAwPjA8BgRVHSAAMDQwMgYIKwYBBQUH
>>
>> '' SIG '' AgEWJmh0dHBzOi8vd3d3Lmdsb2JhbHNpZ24uY29tL3Jl
>>
>> '' SIG '' cG9zaXRvcnkvMDMGA1UdHwQsMCowKKAmoCSGImh0dHA6
>>
>> '' SIG '' Ly9jcmwuZ2xvYmFsc2lnbi5uZXQvcm9vdC5jcmwwHwYD
>>
>> '' SIG '' VR0jBBgwFoAUYHtmGkUNl8qJUC99BM00qP/8/UswDQYJ
>>
>> '' SIG '' KoZIhvcNAQEFBQADggEBAE5eVpAeRrTZSTHzuxc5KBvC
>>
>> '' SIG '' Ft39QdwJBQSbb7KimtaZLkCZAFW16j+lIHbThjTUF8xV
>>
>> '' SIG '' OseC7u+ourzYBp8VUN/NFntSOgLXGRr9r/B4XOBLxRjf
>>
>> '' SIG '' OiQe2qy4qVgEAgcw27ASXv4xvvAESPTwcPg6XlaDzz37
>>
>> '' SIG '' Dbz0xe2XnbnU26UnhOM4m4unNYZEIKQ7baRqC6GD/Sjr
>>
>> '' SIG '' 2u8o9syIXfsKOwCr4CHr4i81bA+ONEWX66L3mTM1fsua
>>
>> '' SIG '' irtFTec/n8LZivplsm7HfmX/6JLhLDGi97AnNkiPJm87
>>
>> '' SIG '' 7k12H3nD5X+WNbwtDswBsI5//1GAgKeS1LNERmSMh08W
>>
>> '' SIG '' YwcxS2Ow3/MwggSfMIIDh6ADAgECAhIRIQaggdM/2Hrl
>>
>> '' SIG '' gkzBa1IJTgMwDQYJKoZIhvcNAQEFBQAwUjELMAkGA1UE
>>
>> '' SIG '' BhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2Ex
>>
>> '' SIG '' KDAmBgNVBAMTH0dsb2JhbFNpZ24gVGltZXN0YW1waW5n
>>
>> '' SIG '' IENBIC0gRzIwHhcNMTUwMjAzMDAwMDAwWhcNMjYwMzAz
>>
>> '' SIG '' MDAwMDAwWjBgMQswCQYDVQQGEwJTRzEfMB0GA1UEChMW
>>
>> '' SIG '' R01PIEdsb2JhbFNpZ24gUHRlIEx0ZDEwMC4GA1UEAxMn
>>
>> '' SIG '' R2xvYmFsU2lnbiBUU0EgZm9yIE1TIEF1dGhlbnRpY29k
>>
>> '' SIG '' ZSAtIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
>>
>> '' SIG '' CgKCAQEAsBeuotO2BDBWHlgPse1VpNZUy9j2czrsXV6r
>>
>> '' SIG '' Jf02pfqEw2FAxUa1WVI7QqIuXxNiEKlb5nPWkiWxfSPj
>>
>> '' SIG '' BrOHOg5D8NcAiVOiETFSKG5dQHI88gl3p0mSl9RskKB2
>>
>> '' SIG '' p/243LOd8gdgLE9YmABr0xVU4Prd/4AsXximmP/Uq+yh
>>
>> '' SIG '' RVmyLm9iXeDZGayLV5yoJivZF6UQ0kcIGnAsM4t/aIAq
>>
>> '' SIG '' taFda92NAgIpA6p8N7u7KU49U5OzpvqP0liTFUy5LauA
>>
>> '' SIG '' o6Ml+6/3CGSwekQPXBDXX2E3qk5r09JTJZ2Cc/os+XKw
>>
>> '' SIG '' qRk5KlD6qdA8OsroW+/1X1H0+QrZlzXeaoXmIwRCrwID
>>
>> '' SIG '' AQABo4IBXzCCAVswDgYDVR0PAQH/BAQDAgeAMEwGA1Ud
>>
>> '' SIG '' IARFMEMwQQYJKwYBBAGgMgEeMDQwMgYIKwYBBQUHAgEW
>>
>> '' SIG '' Jmh0dHBzOi8vd3d3Lmdsb2JhbHNpZ24uY29tL3JlcG9z
>>
>> '' SIG '' aXRvcnkvMAkGA1UdEwQCMAAwFgYDVR0lAQH/BAwwCgYI
>>
>> '' SIG '' KwYBBQUHAwgwQgYDVR0fBDswOTA3oDWgM4YxaHR0cDov
>>
>> '' SIG '' L2NybC5nbG9iYWxzaWduLmNvbS9ncy9nc3RpbWVzdGFt
>>
>> '' SIG '' cGluZ2cyLmNybDBUBggrBgEFBQcBAQRIMEYwRAYIKwYB
>>
>> '' SIG '' BQUHMAKGOGh0dHA6Ly9zZWN1cmUuZ2xvYmFsc2lnbi5j
>>
>> '' SIG '' b20vY2FjZXJ0L2dzdGltZXN0YW1waW5nZzIuY3J0MB0G
>>
>> '' SIG '' A1UdDgQWBBTUooRKOFoYf7pPMFC9ndV6h9YJ9zAfBgNV
>>
>> '' SIG '' HSMEGDAWgBRG2D7/3OO+/4Pm9IWbsN1q1hSpwTANBgkq
>>
>> '' SIG '' hkiG9w0BAQUFAAOCAQEAgDLcB40coJydPCroPSGLWaFN
>>
>> '' SIG '' fsxEzgO+fqq8xOZ7c7tL8YjakE51Nyg4Y7nXKw9UqVbO
>>
>> '' SIG '' dzmXMHPNm9nZBUUcjaS4A11P2RwumODpiObs1wV+Vip7
>>
>> '' SIG '' 9xZbo62PlyUShBuyXGNKCtLvEFRHgoQ1aSicDOQfFBYk
>>
>> '' SIG '' +nXcdHJuTsrjakOvz302SNG96QaRLC+myHH9z73YnSGY
>>
>> '' SIG '' /K/b3iKMr6fzd++d3KNwS0Qa8HiFHvKljDm13IgcN+2t
>>
>> '' SIG '' FPUHCya9vm0CXrG4sFhshToN9v9aJwzF3lPnVDxWTMlO
>>
>> '' SIG '' TDD28lz7GozCgr6tWZH2G01Ve89bAdz9etNvI1wyR5sB
>>
>> '' SIG '' 88FRFEaKmzCCBVYwggQ+oAMCAQICEEA59jCxrMC4Ucmz
>>
>> '' SIG '' YXAhHYwwDQYJKoZIhvcNAQEFBQAwgbQxCzAJBgNVBAYT
>>
>> '' SIG '' AlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0G
>>
>> '' SIG '' A1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazE7MDkG
>>
>> '' SIG '' A1UECxMyVGVybXMgb2YgdXNlIGF0IGh0dHBzOi8vd3d3
>>
>> '' SIG '' LnZlcmlzaWduLmNvbS9ycGEgKGMpMTAxLjAsBgNVBAMT
>>
>> '' SIG '' JVZlcmlTaWduIENsYXNzIDMgQ29kZSBTaWduaW5nIDIw
>>
>> '' SIG '' MTAgQ0EwHhcNMTUwMzI3MDAwMDAwWhcNMTYwMzI2MjM1
>>
>> '' SIG '' OTU5WjCBhzELMAkGA1UEBhMCVVMxEDAOBgNVBAgTB1Zl
>>
>> '' SIG '' cm1vbnQxGjAYBgNVBAcTEU1hbmNoZXN0ZXIgQ2VudGVy
>>
>> '' SIG '' MSQwIgYDVQQKFBtBbGdvcml0aG1pYyBJbXBsZW1lbnRh
>>
>> '' SIG '' dGlvbnMxJDAiBgNVBAMUG0FsZ29yaXRobWljIEltcGxl
>>
>> '' SIG '' bWVudGF0aW9uczCCASIwDQYJKoZIhvcNAQEBBQADggEP
>>
>> '' SIG '' ADCCAQoCggEBANUpyZy7NBZmLl3P+1wLci8YFyJ3eAdK
>>
>> '' SIG '' pomRza9BHZWN0HpukPbGQLqRWNZYMqgRsXWRwLSdFTdW
>>
>> '' SIG '' YuQx0XG1yZpmxP8xN6plK7pe0LuCKg3DSoPhOxUPuyF+
>>
>> '' SIG '' 0re+bdLkUZdseLZSM9q+TbI3XTMtv4dYGXW1EyrZ5H7j
>>
>> '' SIG '' 9SzMM6BcjjsdWqg6ewpSNim/0Y5z2kBfsd4KF9w8sBVW
>>
>> '' SIG '' wIhyo+jUgARnFN3DHBNpjt9Cypn9p6x/ECcNlQrESe3H
>>
>> '' SIG '' GprUffrvHX680360yzF5+qiQ2/peyvfhpdNclh8vnB1/
>>
>> '' SIG '' Is2arACrbhwy/GabI7rbeB87qnP9QqJXAMpWbKK79y3N
>>
>> '' SIG '' dvcCAwEAAaOCAY0wggGJMAkGA1UdEwQCMAAwDgYDVR0P
>>
>> '' SIG '' AQH/BAQDAgeAMCsGA1UdHwQkMCIwIKAeoByGGmh0dHA6
>>
>> '' SIG '' Ly9zZi5zeW1jYi5jb20vc2YuY3JsMGYGA1UdIARfMF0w
>>
>> '' SIG '' WwYLYIZIAYb4RQEHFwMwTDAjBggrBgEFBQcCARYXaHR0
>>
>> '' SIG '' cHM6Ly9kLnN5bWNiLmNvbS9jcHMwJQYIKwYBBQUHAgIw
>>
>> '' SIG '' GQwXaHR0cHM6Ly9kLnN5bWNiLmNvbS9ycGEwEwYDVR0l
>>
>> '' SIG '' BAwwCgYIKwYBBQUHAwMwVwYIKwYBBQUHAQEESzBJMB8G
>>
>> '' SIG '' CCsGAQUFBzABhhNodHRwOi8vc2Yuc3ltY2QuY29tMCYG
>>
>> '' SIG '' CCsGAQUFBzAChhpodHRwOi8vc2Yuc3ltY2IuY29tL3Nm
>>
>> '' SIG '' LmNydDAfBgNVHSMEGDAWgBTPmanqeyb0S8mOj9fwBSbv
>>
>> '' SIG '' 49KnnTAdBgNVHQ4EFgQUchQRcYoquAN+2ATKzxpTAuW/
>>
>> '' SIG '' GkQwEQYJYIZIAYb4QgEBBAQDAgQQMBYGCisGAQQBgjcC
>>
>> '' SIG '' ARsECDAGAQEAAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQCa
>>
>> '' SIG '' +lsppq/uH5TvbHZAY71rRxHA5DvZX4nQVOwjRkIJmtuM
>>
>> '' SIG '' Vxy4MOBBA9iKmb9i/oQeNAtW7tBb7A3eYP9uxmIW77Hw
>>
>> '' SIG '' ftq30AGSZyMEZo7F2yuW+V/r8w5H8ZGbzsN+S3snssZT
>>
>> '' SIG '' 4LKOpbGuBsq6ZFKUz65h+RfAJwaTquyznVjliehFuqfd
>>
>> '' SIG '' OhFCyh9l7MpeWPXaGgke7MAUAzO16PjCa4oDwlHsDfB/
>>
>> '' SIG '' qhV9AEDcptlvnjrgGCVMlX8SoUbHY2AfJnSESTMs/mRT
>>
>> '' SIG '' QSJ1nggwCnw+P7Ww9c0AOGSsMzp53o6jh8rLLU5lGGFL
>>
>> '' SIG '' pVF2orIIbmAGjLQvKreu0p6z0d5n6MpWMIIGCjCCBPKg
>>
>> '' SIG '' AwIBAgIQUgDlqiVW/BqG7ZbJ1EszxzANBgkqhkiG9w0B
>>
>> '' SIG '' AQUFADCByjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZl
>>
>> '' SIG '' cmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBU
>>
>> '' SIG '' cnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBW
>>
>> '' SIG '' ZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVz
>>
>> '' SIG '' ZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAz
>>
>> '' SIG '' IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0
>>
>> '' SIG '' aG9yaXR5IC0gRzUwHhcNMTAwMjA4MDAwMDAwWhcNMjAw
>>
>> '' SIG '' MjA3MjM1OTU5WjCBtDELMAkGA1UEBhMCVVMxFzAVBgNV
>>
>> '' SIG '' BAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJp
>>
>> '' SIG '' U2lnbiBUcnVzdCBOZXR3b3JrMTswOQYDVQQLEzJUZXJt
>>
>> '' SIG '' cyBvZiB1c2UgYXQgaHR0cHM6Ly93d3cudmVyaXNpZ24u
>>
>> '' SIG '' Y29tL3JwYSAoYykxMDEuMCwGA1UEAxMlVmVyaVNpZ24g
>>
>> '' SIG '' Q2xhc3MgMyBDb2RlIFNpZ25pbmcgMjAxMCBDQTCCASIw
>>
>> '' SIG '' DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPUjS16l
>>
>> '' SIG '' 14q7MunUV/fv5Mcmfq0ZmP6onX2U9jZrENd1gTB/BGh/
>>
>> '' SIG '' yyt1Hs0dCIzfaZSnN6Oce4DgmeHuN01fzjsU7obU0PUn
>>
>> '' SIG '' NbwlCzinjGOdF6MIpauw+81qYoJM1SHaG9nx44Q7iipP
>>
>> '' SIG '' hVuQAU/Jp3YQfycDfL6ufn3B3fkFvBtInGnnwKQ8PEEA
>>
>> '' SIG '' Pt+W5cXklHHWVQHHACZKQDy1oSapDKdtgI6QJXvPvz8c
>>
>> '' SIG '' 6y+W+uWHd8a1VrJ6O1QwUxvfYjT/HtH0WpMoheVMF05+
>>
>> '' SIG '' W/2kk5l/383vpHXv7xX2R+f4GXLYLjQaprSnTH69u08M
>>
>> '' SIG '' PVfxMNamNo7WgHbXGS6lzX40LYkCAwEAAaOCAf4wggH6
>>
>> '' SIG '' MBIGA1UdEwEB/wQIMAYBAf8CAQAwcAYDVR0gBGkwZzBl
>>
>> '' SIG '' BgtghkgBhvhFAQcXAzBWMCgGCCsGAQUFBwIBFhxodHRw
>>
>> '' SIG '' czovL3d3dy52ZXJpc2lnbi5jb20vY3BzMCoGCCsGAQUF
>>
>> '' SIG '' BwICMB4aHGh0dHBzOi8vd3d3LnZlcmlzaWduLmNvbS9y
>>
>> '' SIG '' cGEwDgYDVR0PAQH/BAQDAgEGMG0GCCsGAQUFBwEMBGEw
>>
>> '' SIG '' X6FdoFswWTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4D
>>
>> '' SIG '' AhoEFI/l0xqGrI2Oa8PPgGrUSBgsexkuMCUWI2h0dHA6
>>
>> '' SIG '' Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMDQG
>>
>> '' SIG '' A1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwudmVyaXNp
>>
>> '' SIG '' Z24uY29tL3BjYTMtZzUuY3JsMDQGCCsGAQUFBwEBBCgw
>>
>> '' SIG '' JjAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AudmVyaXNp
>>
>> '' SIG '' Z24uY29tMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEF
>>
>> '' SIG '' BQcDAzAoBgNVHREEITAfpB0wGzEZMBcGA1UEAxMQVmVy
>>
>> '' SIG '' aVNpZ25NUEtJLTItODAdBgNVHQ4EFgQUz5mp6nsm9EvJ
>>
>> '' SIG '' jo/X8AUm7+PSp50wHwYDVR0jBBgwFoAUf9Nlp8Ld7Lvw
>>
>> '' SIG '' MAnzQzn6Aq8zMTMwDQYJKoZIhvcNAQEFBQADggEBAFYi
>>
>> '' SIG '' 5jSkxGHLSLkBrVaoZA/ZjJHEu8wM5a16oCJ/30c4Si1s
>>
>> '' SIG '' 0X9xGnzscKmx8E/kDwxT+hVe/nSYSSSFgSYckRRHsExj
>>
>> '' SIG '' jLuhNNTGRegNhSZzA9CpjGRt3HGS5kUFYBVZUTn8WBRr
>>
>> '' SIG '' /tSk7XlrCAxBcuc3IgYJviPpP0SaHulhncyxkFz8PdKN
>>
>> '' SIG '' rEI9ZTbUtD1AKI+bEM8jJsxLIMuQH12MTDTKPNjlN9Zv
>>
>> '' SIG '' pSC9NOsm2a4N58Wa96G0IZEzb4boWLslfHQOWP51G2M/
>>
>> '' SIG '' zjF8m48blp7FU3aEW5ytkfqs7ZO6XcghU8KCU2OvEg1Q
>>
>> '' SIG '' hxEbPVRSloosnD2SGgiaBS7Hk6VIkdMxggUJMIIFBQIB
>>
>> '' SIG '' ATCByTCBtDELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZl
>>
>> '' SIG '' cmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBU
>>
>> '' SIG '' cnVzdCBOZXR3b3JrMTswOQYDVQQLEzJUZXJtcyBvZiB1
>>
>> '' SIG '' c2UgYXQgaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3Jw
>>
>> '' SIG '' YSAoYykxMDEuMCwGA1UEAxMlVmVyaVNpZ24gQ2xhc3Mg
>>
>> '' SIG '' MyBDb2RlIFNpZ25pbmcgMjAxMCBDQQIQQDn2MLGswLhR
>>
>> '' SIG '' ybNhcCEdjDAJBgUrDgMCGgUAoHAwEAYKKwYBBAGCNwIB
>>
>> '' SIG '' DDECMAAwGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw
>>
>> '' SIG '' HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwIwYJ
>>
>> '' SIG '' KoZIhvcNAQkEMRYEFCBVTuUSJD0Zl8eaiIuwnoCMSRs4
>>
>> '' SIG '' MA0GCSqGSIb3DQEBAQUABIIBAFMkHoOHu+zPBRjU/ACP
>>
>> '' SIG '' 1nmbe53IZmDNMzlq4En+o0QH5BGavsBaaA5bCJEE7xG6
>>
>> '' SIG '' Am0iMUHN7P52iy6tlaZ335RSLSQlxy9ShjeK1Nrm7IV7
>>
>> '' SIG '' R3GNbwGMINfq627h7pW6V5mo6Jg95d9XDNx9pW9Tpmmo
>>
>> '' SIG '' 5kLVxcaIKC3K6JwG0cYGeOxOg1GwEBL0/SqcMMFx3m4C
>>
>> '' SIG '' B3iMQJrVEYlsGmwjqYJRtgL/MACXR3UWYW5PYYZpqr4x
>>
>> '' SIG '' dBEeV+ioIRWDiOSvdo1asLs8bK+hPyWslvVrQdrvMxRq
>>
>> '' SIG '' t4/N54QR07cRZ7pmBjtjc9lCyIEA7MrOoo9v84wGM6Vj
>>
>> '' SIG '' VWR8R3/eyaTngjGhggKiMIICngYJKoZIhvcNAQkGMYIC
>>
>> '' SIG '' jzCCAosCAQEwaDBSMQswCQYDVQQGEwJCRTEZMBcGA1UE
>>
>> '' SIG '' ChMQR2xvYmFsU2lnbiBudi1zYTEoMCYGA1UEAxMfR2xv
>>
>> '' SIG '' YmFsU2lnbiBUaW1lc3RhbXBpbmcgQ0EgLSBHMgISESEG
>>
>> '' SIG '' oIHTP9h65YJMwWtSCU4DMAkGBSsOAwIaBQCggf0wGAYJ
>>
>> '' SIG '' KoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0B
>>
>> '' SIG '' CQUxDxcNMTYwMTI4MTYyMDUzWjAjBgkqhkiG9w0BCQQx
>>
>> '' SIG '' FgQUi4S2g2cg9GBy+nyT3L8ejs+k4fcwgZ0GCyqGSIb3
>>
>> '' SIG '' DQEJEAIMMYGNMIGKMIGHMIGEBBSzYwi01M3tT8+9ZrlV
>>
>> '' SIG '' +uO/sSwp5jBsMFakVDBSMQswCQYDVQQGEwJCRTEZMBcG
>>
>> '' SIG '' A1UEChMQR2xvYmFsU2lnbiBudi1zYTEoMCYGA1UEAxMf
>>
>> '' SIG '' R2xvYmFsU2lnbiBUaW1lc3RhbXBpbmcgQ0EgLSBHMgIS
>>
>> '' SIG '' ESEGoIHTP9h65YJMwWtSCU4DMA0GCSqGSIb3DQEBAQUA
>>
>> '' SIG '' BIIBACCR8iH1eglTwPY+rljLnDN4OyeBKu35t6nWsH9d
>>
>> '' SIG '' 7jdY03nwX5g3D4ELmj36CbIBSFpTLyTIIHsB7sDta1zO
>>
>> '' SIG '' SAgLPsQT1yt5A7hQw3lnil+lTrd4OdANtBSQtbH44vUW
>>
>> '' SIG '' iZrVivTAvZV+XSpyHEkp3rDnSWS2oc+3QgPy4o1p5/tH
>>
>> '' SIG '' CnWZp1r85qjk6Q2pDyEiOE+ue9TdGk5qltyHUtQUMcfI
>>
>> '' SIG '' +P5kneBERq4NZZborwJ5u6bQ2g7QhB7wRpTMyclpTBHG
>>
>> '' SIG '' g3D6qfg18xc/hXd2+gsHfLBBWOgPnJYkKyt7yrP0ru33
>>
>> '' SIG '' zt72aJAWo+qXdQCwqBnzg6yz5O7dMKA89I48m0w=
>>
>> '' SIG '' End signature block
>>
>> ---------------------------------------------------
>>
>> Thanks in advance.
>>
>>
>> -----Original Message-----
>> From: Pamela Dominguez via Talk
>>
>> Sent: Sunday, November 10, 2019 12:33 AM
>>
>> To: Window-Eyes Discussion List
>>
>> Cc: Pamela Dominguez
>>
>> Subject: Re: email
>>
>>
>> Really?  I can still use window eyes with windows live mail, and I
>> haven't
>>
>> noticed a difference.  So I don't know what you mean about window eyes
>>
>> stopped tracking the cursor.  Pam.
>>
>>
>> -----Original Message-----
>> From: Rod Hutton via Talk
>>
>> Sent: Saturday, November 09, 2019 8:17 AM
>>
>> To: Window-Eyes Discussion List
>>
>> Cc: Rod Hutton
>>
>> Subject: RE: email
>>
>>
>> Hi Darrell,
>>
>>
>> Thunderbird worked great for me until Window-Eyes stopped tracking the
>>
>> cursor.
>>
>> This was the second email client which did this to me.
>>
>> The previous one was Windows Live Mail.
>>
>> Since I switched to Office 365 Outlook, this has not happened.
>>
>> I know that Office 365 costs money on an ongoing basis, but Microsoft
>>
>> regularly improves its accessibility, and so staying with it gives you
>> the
>>
>> best opportunity to use accessible email software on Windows and the
>> Apple
>>
>> Mac.
>>
>> I know, I say this all the time. Smile
>>
>>
>> With respect,
>>
>>
>> Rod
>>
>>
>> Sent from Outlook for Windows
>>
>>
>> -----Original Message-----
>>
>> From: Talk <
>> [email protected]
>>> On
>>
>> Behalf Of Darrell Bowles via Talk
>>
>> Sent: November 7, 2019 8:48 PM
>>
>> To: Window-Eyes Discussion List <
>> [email protected]
>>>
>>
>> Cc: Darrell Bowles <
>> [email protected]
>>>
>>
>> Subject: RE: email
>>
>>
>> How about thunderbird?
>>
>>
>>
>> -----Original Message-----
>>
>> From: Talk <
>> [email protected]
>>> On Behalf
>>
>> Of tony c via Talk
>>
>> Sent: Thursday, November 7, 2019 8:13 PM
>>
>> To: Window-Eyes Discussion List <
>> [email protected]
>>>
>>
>> Cc: tony c <
>> [email protected]
>>>
>>
>> Subject: RE: email
>>
>>
>> I know outlook is accessible, but I don’t need office 365. I use very
>> little
>>
>> of anything except Microsoft word on a rare occasion. I just hate the
>> mail
>>
>> program that’s with win 10. I do use it but it’s not totally accessible.
>>
>>
>> Sent from Mail for Windows 10
>>
>>
>> From: joseph hudson via Talk
>>
>> Sent: Thursday, November 7, 2019 2:49 PM
>>
>> To: Window-Eyes Discussion List
>>
>> Cc: joseph hudson
>>
>> Subject: Re: email
>>
>>
>> Hi Tony, Outlook is very accessible.
>>
>>
>>
>> joseph hudson
>>
>>
>> Technology support for the blind or better known as Mack, IOS and 
>> Windows
>>
>> support
>>
>>
>> FaceTime, iMessage, and email
>>
>>
>> [email protected]
>>
>>
>> Telephone/what's up messenger
>>
>>
>> 254-300-7667
>>
>>
>> Emergency cell
>>
>>
>> 254-813-2461
>>
>>
>> Twitter
>>
>> https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftwitter.com%2Fjosephhudson89&amp;data=02%7C01%7C%7Cc244c73ce10444eaf5f708d763e8c44e%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637087723679719753&amp;sdata=jsjRGciWdVuDVRH5GINvRpgeuZ5NM%2FPTPoOhbUtys2I%3D&amp;reserved=0
>>  
>>
>>
>>
>>
>> Facebook
>>
>>
>> https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.facebook.com%2Fjoseph.hudson.9404&amp;data=02%7C01%7C%7Cc244c73ce10444eaf5f708d763e8c44e%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637087723679719753&amp;sdata=TE8%2Fenq1ezhWNwKx62BDgNVxRZS2GWbdXLKSII5yjIQ%3D&amp;reserved=0
>>  
>>
>>
>>
>>
>>> On Nov 7, 2019, at 1:26 PM, tony c via Talk <
>> [email protected]
>>>
>>
>>> wrote:
>>
>>>
>>
>>> Hi, I need a accessible email program. I’m using the one that on 
>>> windows
>>
>>> 10, it is useable but just barely. Lol Tony
>>
>>>
>>
>>> Sent from Mail for Windows 10
>>
>>>
>>
>>> _______________________________________________
>>
>>> Any views or opinions presented in this email are solely those of the
>>
>>> author and do not necessarily represent those of Ai Squared.
>>
>>>
>>
>>> For membership options, visit
>>
>>>
>> https://nam12.safelinks.protection.outlook.com/?url=http%3A%2F%2Flists.window-eyes.com%2Foptions.cgi%2Ftalk-window-eyes.com%2Fjhud7789%2540twc.com&amp;data=02%7C01%7C%7Cc244c73ce10444eaf5f708d763e8c44e%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637087723679719753&amp;sdata=9bjIZ689aihYWPqqvcnFmyM9xmjh4slVEoxboYiP9l0%3D&amp;reserved=0
>>  
>>
>>
>> .
>>
>>> For subscription options, visit
>>
>>>
>> https://nam12.safelinks.protection.outlook.com/?url=http%3A%2F%2Flists.window-eyes.com%2Flistinfo.cgi%2Ftalk-window-eyes.com&amp;data=02%7C01%7C%7Cc244c73ce10444eaf5f708d763e8c44e%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637087723679719753&amp;sdata=W0Im4gfNzqKxokPur1%2Bi8S4KCrie5pS%2FGUWkeKrlbCY%3D&amp;reserved=0
>>  
>>
>>
>>
>>> List archives can be found at
>>
>>>
>> https://nam12.safelinks.protection.outlook.com/?url=http%3A%2F%2Flists.window-eyes.com%2Fprivate.cgi%2Ftalk-window-eyes.com&amp;data=02%7C01%7C%7Cc244c73ce10444eaf5f708d763e8c44e%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637087723679719753&amp;sdata=dlNeDOctdjTtEzjqJvmGIfalKfWKK%2FF6Ow%2FdGqML2hc%3D&amp;reserved=0
>>  
>>
>>
>>
>>
>> _______________________________________________
>>
>> Any views or opinions presented in this email are solely those of the
>> author
>>
>> and do not necessarily represent those of Ai Squared.
>>
>>
>> For membership options, visit
>>
>> https://nam12.safelinks.protection.outlook.com/?url=http%3A%2F%2Flists.window-eyes.com%2Foptions.cgi%2Ftalk-window-eyes.com%2Ftch828%2540mediacombb.net&amp;data=02%7C01%7C%7Cc244c73ce10444eaf5f708d763e8c44e%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637087723679719753&amp;sdata=0LhtRp8fslCR0vRFkpbWbo6%2F9uc0Qm8HKKv%2FIke%2FVvA%3D&amp;reserved=0
>>  
>>
>>
>> .
>>
>> For subscription options, visit
>>
>> https://nam12.safelinks.protection.outlook.com/?url=http%3A%2F%2Flists.window-eyes.com%2Flistinfo.cgi%2Ftalk-window-eyes.com&amp;data=02%7C01%7C%7Cc244c73ce10444eaf5f708d763e8c44e%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637087723679719753&amp;sdata=W0Im4gfNzqKxokPur1%2Bi8S4KCrie5pS%2FGUWkeKrlbCY%3D&amp;reserved=0
>>  
>>
>>
>>
>> List archives can be found at
>>
>> https://nam12.safelinks.protection.outlook.com/?url=http%3A%2F%2Flists.window-eyes.com%2Fprivate.cgi%2Ftalk-window-eyes.com&amp;data=02%7C01%7C%7Cc244c73ce10444eaf5f708d763e8c44e%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637087723679719753&amp;sdata=dlNeDOctdjTtEzjqJvmGIfalKfWKK%2FF6Ow%2FdGqML2hc%3D&amp;reserved=0
>>  
>>
>>
>>
>>
>> _______________________________________________
>>
>> Any views or opinions presented in this email are solely those of the
>> author
>>
>> and do not necessarily represent those of Ai Squared.
>>
>>
>> For membership options, visit
>>
>> https://nam12.safelinks.protection.outlook.com/?url=http%3A%2F%2Flists.window-eyes.com%2Foptions.cgi%2Ftalk-window-eyes.com%2Fdgbowles%2540msn.com&amp;data=02%7C01%7C%7Cc244c73ce10444eaf5f708d763e8c44e%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637087723679729758&amp;sdata=9B6HvLE%2Fa%2BPKJXT3kl1rPyzsDgP0D1%2BMTrhNHMcoWgo%3D&amp;reserved=0
>>  
>>
>>
>> .
>>
>> For subscription options, visit
>>
>> https://nam12.safelinks.protection.outlook.com/?url=http%3A%2F%2Flists.window-eyes.com%2Flistinfo.cgi%2Ftalk-window-eyes.com&amp;data=02%7C01%7C%7Cc244c73ce10444eaf5f708d763e8c44e%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637087723679729758&amp;sdata=kTzxo%2B7QLkTekkgvd7S6Qwvd6IwnKL3EftPFFD79tW0%3D&amp;reserved=0
>>  
>>
>>
>>
>> List archives can be found at
>>
>> https://nam12.safelinks.protection.outlook.com/?url=http%3A%2F%2Flists.window-eyes.com%2Fprivate.cgi%2Ftalk-window-eyes.com&amp;data=02%7C01%7C%7Cc244c73ce10444eaf5f708d763e8c44e%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637087723679729758&amp;sdata=0UCfjeZuxNAyWL0x7RavHnbKGRVM%2BTCjrwOkmlnmMps%3D&amp;reserved=0
>>  
>>
>>
>>
>> _______________________________________________
>>
>> Any views or opinions presented in this email are solely those of the
>> author
>>
>> and do not necessarily represent those of Ai Squared.
>>
>>
>> For membership options, visit
>>
>> http://lists.window-eyes.com/options.cgi/talk-window-eyes.com/rod_hutton%40hotmail.com
>>  
>>
>>
>> .
>>
>> For subscription options, visit
>>
>> http://lists.window-eyes.com/listinfo.cgi/talk-window-eyes.com
>>
>> List archives can be found at
>>
>> http://lists.window-eyes.com/private.cgi/talk-window-eyes.com
>>
>> _______________________________________________
>>
>> Any views or opinions presented in this email are solely those of the
>> author
>>
>> and do not necessarily represent those of Ai Squared.
>>
>>
>> For membership options, visit
>>
>> http://lists.window-eyes.com/options.cgi/talk-window-eyes.com/pammygirl99%40gmail.com
>>  
>>
>>
>> .
>>
>> For subscription options, visit
>>
>> http://lists.window-eyes.com/listinfo.cgi/talk-window-eyes.com
>>
>> List archives can be found at
>>
>> http://lists.window-eyes.com/private.cgi/talk-window-eyes.com
>>
>>
>> _______________________________________________
>>
>> Any views or opinions presented in this email are solely those of the
>> author
>>
>> and do not necessarily represent those of Ai Squared.
>>
>>
>> For membership options, visit
>>
>> http://lists.window-eyes.com/options.cgi/talk-window-eyes.com/peter.chinpk%40gmail.com
>>  
>>
>>
>> .
>>
>> For subscription options, visit
>>
>> http://lists.window-eyes.com/listinfo.cgi/talk-window-eyes.com
>>
>> List archives can be found at
>> _______________________________________________
>> Any views or opinions presented in this email are solely those of the
>> author and do not necessarily represent those of Ai Squared.
>>
>> For membership options, visit
>> http://lists.window-eyes.com/options.cgi/talk-window-eyes.com/trailerdavid%40hotmail.com.
>>  
>>
>> For subscription options, visit
>> http://lists.window-eyes.com/listinfo.cgi/talk-window-eyes.com
>> List archives can be found at
>> http://lists.window-eyes.com/private.cgi/talk-window-eyes.com
> _______________________________________________
> Any views or opinions presented in this email are solely those of the 
> author and do not necessarily represent those of Ai Squared.
>
> For membership options, visit 
> http://lists.window-eyes.com/options.cgi/talk-window-eyes.com/peter.chinpk%40gmail.com.
> For subscription options, visit 
> http://lists.window-eyes.com/listinfo.cgi/talk-window-eyes.com
> List archives can be found at 
> http://lists.window-eyes.com/private.cgi/talk-window-eyes.com
> .
>
_______________________________________________
Any views or opinions presented in this email are solely those of the author 
and do not necessarily represent those of Ai Squared.

For membership options, visit 
http://lists.window-eyes.com/options.cgi/talk-window-eyes.com/archive%40mail-archive.com.
For subscription options, visit 
http://lists.window-eyes.com/listinfo.cgi/talk-window-eyes.com
List archives can be found at 
http://lists.window-eyes.com/private.cgi/talk-window-eyes.com

Reply via email to