Данный кусок кода, который я выложил, получает список COM портов из системы, а потом перебирает его, пытаясь открыть порты из полученного списка.
Если "файл" не удаётся создать, значит, порт помечается, как занятый или недоступный. В перебор можно добавить и запрос на свободных портах. Получив ответ, можно вернуть основной программе номер порта. (считайте, HANDLE уже открыт. Можно продолжать работу.)


