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