Peter, Just a thought.
Since you tell there is a few other things wrong with your computer, what immediately popped into my mind, would be to roll back your computer a few weeks. That is, unless you would happen to remember if you installed, uninstalled or modified any piece of software - prior to the issues on your computer starting to show up. If you now happen to remember approximately when all of these things started to occur, you could try to restore your computer to a date prior to that time. That would mean you rolling back any updates and so forth, and before doing any attempt, I would suggest you make sure to back up all your personal data. Then restore the system a month or two back, and let it run all updates anew. Sometimes an update - even from trusted sources like Microsoft, could fail slightly. By rolling back your system, and letting it reinstall all the latest updates, you might smoothen out such issues. A wild guess, but without knowing what you are facing kind of issues, it really might not be possible to fully assist you. Did you get your CMos battery changed? By the way, have you checked your anti-malware, to see if it has quaranteened anything on your computer? Mine happend to complain one of the apps in WinEyes, for weeks. No matter if I reinstalled the app several times, it still kept complaining. Running some thorough scans, and actually uninstalling some of the anti-ware, seems to have fixed that issue. Will be interesting to see what happens when I reinstall the actual anti-ware. If you are running something like for instance MalwareBytes, it would be worth having it checked up, since it has had some tendency to quarantine some of the stuff from the screen reader. Even some anti-virus software might every now and then cause false positives, meaning that it seemingly detects a virus where no virus is to be found. Avast, AVG and McAFee, they all have had issues toward screen readers, down through history. Well, not that they are the only ones, just to give you some examples. Checking the quarantine vault of your anti-ware, might sometimes be a challenge with the screen reader. So if you have two eyes dropping by, it might be worth to let them assist you. Is there any of the other apps under WinEyes, that causes you trouble? Knowing that, might give us some further clue what could possibly be going on. Lastly, have you tried to turn off all apps under WinEyes, and then turning them back on - one by one? Make sure always to start out with the GWToolkit app, since most other apps depend on routines taken from there. Being a bit tidious, turning on one app at a time, might help you trace which app nests the real bird-egg. And believe me, computers most definately have their cuckoobirds, that throw their eggs here, there and everywhere. Detecting them might sometimes be that hard, people end up kicking out all the chicks, and reinstalling their whole computer system afresh. Sorry if all of this ends up being blahblah in your case, but wanted to just drop the idea on the board, that you at least might keep every door open. Hope for you to sort out your issues soon. deff David On 11/30/2019 4:58 AM, peter Chin via Talk wrote: > Hello Tom, > > I have tried your revised version of the app with no better results. I > don't believe there is nything wrong with your app. I think there is > something else wrom with my computer as yours is not the only app that > is not working. So, just relax and forget about it. Thanks very much > for tryin to help. > > -----Original Message----- From: Tom Kingston via Talk > Sent: Tuesday, November 26, 2019 8:52 PM > To: peter Chin via Talk > Cc: Tom Kingston > Subject: Re: email > > Hi Peter, > Ah yes, the age old fix one problem and cause another routine. It is the > eternal battle for programmers. > This one is very strange though. So I've built another package wherein > all I did was comment out the line that calls the braille display print > function, which is where the error was. I can't remember, but I thought > you weren't using a braille display anyway. But regardless, I would > install this one to see if it fixes the new problems. If not, something > else is wrong because, as I said, I just eliminated the calling of the > braille string function which is only called from within the speak > string function. I changed nothing else. > I hope it works. Just let me know if you are using a braille display and > I'll dig into it some more. > https://www.dropbox.com/s/xe7xm7ma2604ovb/windowslivemail.wepm?dl=1 > Regards, > Tom > > > On 11/25/2019 10:36 PM, peter Chin via Talk wrote: >> Hello Tom, >> >> Just to inform you that I have now installed your version of the >> WLM app and the error has not occurred since. I thank you very much >> for your help. Unfortunately, certain features of the app do not >> appear to be working any more, such as the "Goto Folder" facility >> and the "Move File to Folder" facility. Never mind. I can live with >> that. >> >> Thanks again. >> >> -----Original Message----- From: Tom Kingston via Talk >> Sent: Thursday, November 14, 2019 10:16 AM >> To: Rod Hutton via Talk >> Cc: Tom Kingston >> Subject: Re: email >> >> Hi Peter, >> Unfortunately Rod's suggestion to disable your braille display won't >> work. The function containing the conditional block that's throwing the >> error is run regardless because it's where it checks to see if you're >> using a braille display. >> Fortunately all the conditional block is doing is seeing if you have a >> newer version of the GW toolkit, which you do. The change was made >> several versions back. >> I believe the problem is due to a Windows security update that made type >> checking in VBScript more strict. >> So I removed every instance of that conditional block along with the >> alternative code for the old version of the toolkit. I've built a new >> installer package: windowslivemail.wepm. >> * First, close Windows Live Mail and uninstall the Windows Live Mail >> app! >> Then activate the link below to download my new installer from my >> Dropbox. It should open a "Save as" dialog in your browser. >> After downloading the file, focus it in explorer. >> Press the Applications key to open the context menu. >> Press R for properties. >> Tab down to Unblock and press space to uncheck it. >> Tab to the Apply button and press space. >> Tab to the OK button and press space. >> Now just press Enter on the wepm file to install it. >> During the installation you should be prompted to accept the license >> agreement. I did this to let you and anyone else who uses it know that >> it's the new installer. I also changed the version from 1.3.2 to 1.3.3. >> >> https://www.dropbox.com/s/32q204ix9ixmv2r/windowslivemail.wepm?dl=1 >> >> Let me know if you get any new errors. Now that I say this I should have >> changed the app so it would send error reports to me. Oh well. Too late >> now, which is to say, I'm lazy. Hahaahaaha! >> Hth, >> Tom >> >> >> On 11/13/2019 5:30 AM, Rod Hutton via Talk wrote: >>> Hi Peter, >>> >>> In the version of the Windows Live Mail app I have, which is 1.3.2, >>> line 700 is working with braille. >>> Are you using a braille display? >>> If so, you can try disabling your braille display within Window-Eyes >>> just for a bit in order to test if this could be causing the problem. >>> >>> Hth, >>> >>> Rod >>> >>> Sent from Outlook for Windows >>> >>> -----Original Message----- >>> From: Talk >>> <[email protected]> On >>> Behalf Of peter Chin via Talk >>> Sent: November 12, 2019 11:23 PM >>> To: peter Chin via Talk <[email protected]> >>> Cc: peter Chin <[email protected]> >>> Subject: Re: email >>> >>> 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&data=02%7C01%7C%7Cc244c73ce10444eaf5f708d763e8c44e%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637087723679719753&sdata=jsjRGciWdVuDVRH5GINvRpgeuZ5NM%2FPTPoOhbUtys2I%3D&reserved=0 >>>> >>>> >>>> >>>> >>>> >>>> Facebook >>>> >>>> >>>> https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.facebook.com%2Fjoseph.hudson.9404&data=02%7C01%7C%7Cc244c73ce10444eaf5f708d763e8c44e%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637087723679719753&sdata=TE8%2Fenq1ezhWNwKx62BDgNVxRZS2GWbdXLKSII5yjIQ%3D&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&data=02%7C01%7C%7Cc244c73ce10444eaf5f708d763e8c44e%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637087723679719753&sdata=9bjIZ689aihYWPqqvcnFmyM9xmjh4slVEoxboYiP9l0%3D&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&data=02%7C01%7C%7Cc244c73ce10444eaf5f708d763e8c44e%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637087723679719753&sdata=W0Im4gfNzqKxokPur1%2Bi8S4KCrie5pS%2FGUWkeKrlbCY%3D&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&data=02%7C01%7C%7Cc244c73ce10444eaf5f708d763e8c44e%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637087723679719753&sdata=dlNeDOctdjTtEzjqJvmGIfalKfWKK%2FF6Ow%2FdGqML2hc%3D&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&data=02%7C01%7C%7Cc244c73ce10444eaf5f708d763e8c44e%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637087723679719753&sdata=0LhtRp8fslCR0vRFkpbWbo6%2F9uc0Qm8HKKv%2FIke%2FVvA%3D&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&data=02%7C01%7C%7Cc244c73ce10444eaf5f708d763e8c44e%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637087723679719753&sdata=W0Im4gfNzqKxokPur1%2Bi8S4KCrie5pS%2FGUWkeKrlbCY%3D&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&data=02%7C01%7C%7Cc244c73ce10444eaf5f708d763e8c44e%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637087723679719753&sdata=dlNeDOctdjTtEzjqJvmGIfalKfWKK%2FF6Ow%2FdGqML2hc%3D&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&data=02%7C01%7C%7Cc244c73ce10444eaf5f708d763e8c44e%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637087723679729758&sdata=9B6HvLE%2Fa%2BPKJXT3kl1rPyzsDgP0D1%2BMTrhNHMcoWgo%3D&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&data=02%7C01%7C%7Cc244c73ce10444eaf5f708d763e8c44e%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637087723679729758&sdata=kTzxo%2B7QLkTekkgvd7S6Qwvd6IwnKL3EftPFFD79tW0%3D&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&data=02%7C01%7C%7Cc244c73ce10444eaf5f708d763e8c44e%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637087723679729758&sdata=0UCfjeZuxNAyWL0x7RavHnbKGRVM%2BTCjrwOkmlnmMps%3D&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/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/tom.kingston%40charter.net. >>> 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/tom.kingston%40charter.net. >> 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/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/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
