Private Sub GE_kill_fetch_error_Timer()
'************************************************************************************

'This procedure receives control from the GE_kill_fetch_error timer control every
'second

'The input parameters are:

'       None

'Notes on this procedure:

'       o This routine relies on a characteristic of GE that we have dicovered,
'         namely that when the GE fetch error window is visible its handle is
'         always the one that finds its way through FindWindow, not the original
'         main GE window
'       o Note that this routine just kills the first GE window it finds with
'         the title "Google Earth" that is not the main GE window - there are some
'         other GE windows aside from the GE fetch error window that meet this
'         criteria which will be zapped by this routine if they show themselves
'         first
'       o This does not appear to be too problematic although it may appear a little
'         skitzoid to a user - a small price to pay for automatically getting rid
'         of the vast majority of GE fetch error windows
'       o This is all rather slimey  - some simple refinement of GE, e.g. putting
'         a unique title on the GE fetch error window ("Google Earth Fetch Error"?)
'         would take the haphazard element out of it - even better what about an
'         option in GE to allow the user to permanently suppress fetch error
'         windows - even better some form of event notification from GE when a
'         fetch error occurs with a capability to programmatically respond

'************************************************************************************

    'Get handle of window with title Google Earth
    hWindow& = FindWindow(vbNullString, "Google Earth")
    
    'If it is not handle of main GE window...
    If hWindow& <> GE_main_window_handle Then
        
        'Assume it is the GE fetch error window and kill it by posting a message
        'to the window to force it to close - use PostMessage rather than SendMessage
        'because SendMessage waits for a response (which may never come if something
        'is stuffed) while PostMessage just sends a message and doesn't wait
        rc& = PostMessage(hWindow&, WM_CLOSE, 0&, 0&)
    
        'Theoretically there will be only 1 GE fetch error raised per instance of
        'GE so it should be OK to terminate this timer now
        GE_kill_fetch_error.Enabled = False
    
    End If

End Sub