Windows API был разработан для использования на C-программах.Который до C99 не имел типа bool .И все еще не полностью, C99 никогда не был реализован компилятором Microsoft, например.Поэтому им пришлось придумать обходной путь, который очень совместим с тем, как компиляторы C работают с логическими значениями.Int, где 0 - false, а все остальное - true.Таким образом, совет.
VB6 имеет выделенный логический тип и ключевые слова для литеральных значений True и False, поэтому не совсем такая же проблема.Однако вы все еще можете столкнуться с проблемами плохо написанных COM-серверов.Основным целочисленным значением для True является -1, что крайне несовместимо с реализацией многих других языков логического логического типа.Включая C. Есть веская причина, по которой VB6 является чудаком, его операторы «И» и «ИЛИ» не различают логическое и арифметическое и / или.Делая True равным -1 и False равным 0, нет никакой разницы.Проблемы могут возникнуть, когда COM-сервер возвращает 1, чтобы указать true вместо VARIANT_TRUE.
Но, прежде всего, написание If booleanVariable = True Then
просто уродливо и утомляет многих программистов.Просто напишите If booleanVariable Then
и покончите с этим.