kirya> HANDLE COMport;
kirya> Что это!? Я объявил переменную типа HANDLE?
Это объявление переменной COMport типа HANDLE. И даже знать не нужно, чо именно она представляет. Определается тип набором операций. Точно так же, как и int или char. Внутри же это указатель на некоторый объект, с которым работает ОС.
kirya> Что особенного в этой новой переменной, чем она например отличается от int или float?
Тип другой. Соответственно, другие операции. Вот int, к примеру, отличается от float хотя бы по операции деления. Но эти два типа более привычны. А указатель уже менее привычен и операции другие.
kirya> После такого объвлния я могу использовать такую функцию:
kirya> char p[5];
kirya> COMport=CreateFile(p,GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_FLAG_OVERLAPPED,NULL);
1. Пропущена операция инициализации p. Без неё не будет работать.
2. ОС создала файл (в более широком смысле, чем файл на диске). Чтобы знать, с каким файлом программа хочет работать, надо этому файлу присвоить какой-то ID. Вот CreateFile этот ID и возвращает. И он присваивается в переменную COMport.
3. Программы ввода-вывода работают одинаково для разных файлов. Поэтому они должны знать с каким именно файлом работать. Для этого у них есть параметр такого же типа HANDLE.
kirya> Видимо CreateFile как-то завязана с HANDLE. Где например узнать какие функции еще в HANDLE есть, и вообще правильно ли я выражаюсь!? Как назвать HANDLE правильно - структура,тип,класс,дескриптор!?
В HANDLE нет функций (здесь не ООП). Есть операции с типом и/или функции с параметром такого типа. Какие функции в int?
kirya> Только просьба не посылать читать литературу, я исследую конкретный пример, по нему буду учится. Если нет желания и возможности ответить, не отвечайте.
Это дорога в оба конца. Без чтения не обойтись. Никто не будет разжёвывать все-все подробности. Нет столько времени.