if(ThreadID != (unsigned long) -1) {...}
#define INVALID_HANDLE_VALUE ((HANDLE)(LONG_PTR)-1)
Но я так делаю, код понятнее становится.
if(ThreadID != INVALID_HANDLE_VALUE) {...}
Да и вообще, конструкция выше, это убожество какое-то, если человек под Win пишет!
Ничего кроме смеха, подобные вещи вызвать не могут. Ну ещё кучу мата иногда.