Tienes razon en ese caso, si ya has echo una conexion a internet con la lan, esta ya queda marcada "Connected" ya que lo normal es tener habilitada el DHCP o con IP fijas, pero luego de verificar que ya esta configurada una conexion a internet activa, lo que podes hacer es una prueba de navegacion, para eso utilizamos nuevamente la API, agrega esto en las declaraciones del modulo:
Private Const FLAG_ICC_FORCE_CONNECTION = &H1
Private Declare Function InternetCheckConnection Lib "wininet.dll" Alias "InternetCheckConnectionA" (ByVal lpszUrl As String, ByVal dwFlags As Long, ByVal dwReserved As Long) As Long
Global ConexionOK As Boolean
ahora agrega esto entre las lineas de la rutina anterior
If InternetGetConnectedState(dwflags, 0&) Then
'agregado
If InternetCheckConnection("
http://www.microsoft.com/", FLAG_ICC_FORCE_CONNECTION, 0&) = 0 Then
ConexionOK = False
Else
ConexionOK = True
End If
'continua lo anterior
If dwflags And INTERNET_CONNECTION_CONFIGURED Then
asi primero verifica la conexion, de lo contrario al intentar navegar se te puede abrir la ventana de conexion o discado a internet, luego de verificar que hay una conexion se hace un prueba de navegacion, asi te queda en la variable "ConexionOK" en verdader si se pudo conectar, fijate que puedes utilizar cuaquier pagina de internet, te he puesto la de Microsoft porque esa es casi imposible que en elgun momento este fuera de servicio.