Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как получить зарегистрированные в системе TAPI-линии


d@vinchi ©   (2009-03-04 23:18:00) 

Как получить список провайдеров телефоний (те что в панели управлениея -> телефон и модем -> вкладка дополнительно) и список TAPI линий который каждый из них зарегистрировал в системе?


GanibalLector   (2009-03-09 17:06:00) [1]

Качни TApi.pas и примерно так(код большой, поэтому привожу нужную часть)


//
 I:=LineInitialize(FLineApp, 0, @LineCallback, nil, FDeviceCount);
 if (I=0) and (FDeviceCount<>0) then
 begin
   // получаем имена модемов
   GetMem(LDC, DevCapsAllocSize);
   try
     for I:=0 to FDeviceCount-1 do
     begin
       if not TapiFailed(LineNegotiateAPIVersion(FLineApp, I,
         $10003, $10003 ,TApiV, ExtId)) then  //{$20000}
       begin
         ZeroMemory(LDC, DevCapsAllocSize);
         LDC.dwTotalSize := DevCapsAllocSize;
         if not TapiFailed(LineGetDevCaps(FLineApp, I, TApiV, 0, LDC)) then
         begin
           if (LDC.dwMediaModes and LINEMEDIAMODE_DATAMODEM) =
            LINEMEDIAMODE_DATAMODEM then
           begin
             {$WARNINGS OFF}
             SetString(LineName, PChar(Integer(LDC)+LDC.dwLineNameOffset),
               LDC.dwLineNameSize - 1);
             {$WARNINGS ON}  
             FListDevice.AddObject(LineName,TObject(I));
           end;
         end;
       end;
     end;
   finally
     FreeMem(LDC);
   end;
   //


Наверх

Титульная страница Поиск, карта сайта Написать письмо