Чтобы узнать тип соединения, юзай InternetGetConnectedState Если у тебя только один сетевой интефейс, то она скорее всего вернет правильное значение. Если интерфейсов больше, юзай GetIfTable Вопрос по поводу скорости не корректен. С разными хостами в интернете у тебя будет разная скорость связи (это зависит от толщины канала у тебя и у них). Самый тупой способ узнать скорость соединения с хостом - это пропинговать его. Для этого почитай rfc 792 Если ты хочешь узнать максимальную скорость интерфейса, юзай GetIfTable Еще поиск по форуму иногда рулит. Эта тема по-моему уже раз сто поднималась.