>How does one detect a valid TAPI device is installed? Because of the
>unimodem stack built in to XP, functions like lineInitialize and lineOpen
>work fine, but fail to actually do anything! TIA,
I suppose it depends on what it is you want to do with the line.
From the example code (includes exe) linked from here
EnumTAPI sample application
http://tapifaq.pennypacker.org/
It looks like you might want
// Make sure the "comm/datamodem" device class is supported
lReturn = lineGetID(hLine, 0, 0, LINECALLSELECT_LINE,
(VARSTRING*)&SmallVarString, "comm/datamodem");
if (lReturn)
bSupportsDataComm = FALSE;
else
CloseHandle((HANDLE) SmallVarString.handle);
// Print the comm/datamodem results.
if (bSupportsDataComm)
MyPrintf("Y, ");
else
MyPrintf("N, ");
XP results:
G:\>enumtapi
Installed TAPI Version is 2.2
Installed TAPI Service Providers
<- dwPermanentProviderID
<- ProviderFilename
0x00000001 unimdm.tsp
0x00000002 kmddsp.tsp
0x00000003 ndptsp.tsp
0x00000004 ipconf.tsp
0x00000005 h323.tsp
0x00000006 hidphone.tsp
Installed TAPI line Devices
<- dwDeviceID
| <- Max dwAPIVersion
| | <- dwNumAddresses
| | | <- dwPermanentLineID
| | | | <- Capable of making voice comm/datamodem calls?
| | | | | <- Capable of making automated voice calls?
| | | | | | <- Call in progress?
| | | | | | | <- Any application waiting for calls?
| | | | | | | | <- Service Povider - Line Device Name
V V V V V V V V
0 , 2.2, 1, 0x0002CE56, Y, N, N, N, unimdm.tsp - Conexant D480 MDC V.92 Modem - COM3
1 , 1.3, 1, 0x00000001, N, N, ?, ?, kmddsp.tsp - RAS PPPoE Line0000
2 , 1.3, 1, 0x00000003, N, N, ?, ?, kmddsp.tsp - RAS VPN Line 0
3 , 2.2, 1, 0x2182AD70, N, N, N, N, ndptsp.tsp - WAN Miniport (L2TP)
4 , 2.2, 1, 0x00040000, N, N, N, N, ipconf.tsp - IPCONF LINE
5 , 2.2, 1, 0x00050000, N, N, N, N, h323.tsp - H323 Line
G:\>