1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58:
| var R : LongInt; DC : Cardinal; I : Integer; Lo, Hi, V : DWord; LeId : TLineExtensionID; LDC : PLineDevCaps; NSize : DWord;
aName : array[0..500] of AnsiChar;
begin Lo := $00010003; Hi := $00030000; R := -2;
R := lineInitialize( @Luh, HInstance, @LineCallBack, PChar( 'Test' ), DC ); if R = 0 then begin for I := 0 to DC-1 do begin R := lineNegotiateAPIVersion( Luh, I, Lo, Hi, V, LeId );
if R = 0 then begin if I < 10 then foTapiV[ I ] := V; LDC := AllocMem( SizeOf(TLineDevCaps) ); LDC^.dwTotalSize := SizeOf( TLineDevCaps ); R := lineGetDevCaps( Luh, I, V, 0, LDC );
if LDC^.dwTotalSize < LDC^.dwNeededSize then begin NSize := LDC^.dwNeededSize; FreeMem( LDC ); LDC := AllocMem( NSize ); LDC^.dwTotalSize := NSize; R := lineGetDevCaps( Luh, I, V, 0, LDC ); end; if LDC^.dwLineNameSize > 0 then begin if LDC^.dwLineNameSize > 500 then LDC^.dwLineNameSize := 500; FillChar(aName, SizeOf(aName), #0); StrLCopy(aName,PAnsiChar(LDC)+LDC^.dwLineNameOffset,LDC^.dwLineNameSize); ComboBox1.Items.Add( aName ); if IsVoiceLine( LDC ) then begin foTapiVoice[ ComboBox2.Items.Count ] := I; ComboBox2.Items.Add( aName ); end; end; FreeMem( LDC, LDC^.dwTotalSize ); end; end; Memo1.Lines := ComboBox2.Items; R := lineShutdown( Luh ); Luh := 0; end; end; |