Your program was, no doubt, compiled as a 16 bit EXE.
Windows NT barely tolerates 16 bit programs. If at all possible, they should not be used under NT.
The problem you are experiencing is due to the fact that the 16 bit NT Comm Driver does not support obtaining Modem Status. The 16 bit Comm API does not provide a means to obtain Modem Status. Microsoft provides an undocumented workaround which works fine in Win 3.x and Win 95/98. Apparently, however, Microsoft decided that Windows NT would not support this undocumented method of obtaining Modem Status.
PhoneMonitor and DialNumber both make a call to IsCd to determine if a Carrier with a remote modem has been established. IsCd, in turn, calls ModemStat to determine the current state of the Modem Status Register. The Modem Status Register provides a Bit Map that allows you to determine if there is a Carrier Signal. In a 16 bit program running under NT, ModemStat returns 0 which causes IsCd to return 0, which causes the Phone Monitor and DialNumber to fail to realize that a Connection has been established.
The only solution is to use the 32 bit Comm Driver which requires that your program be compiled as a 32 bit program using the 32 bit CLACom DLL.
