Форум: "WinAPI";
Текущий архив: 2009.03.15;
Скачать: [xml.tar.bz2];
ВнизTapi -> LineGetId Найти похожие ветки
← →
kolj (2008-03-27 11:43) [0]Возникла проблема с ф-й LineGetId, если кто-то работал исправьте где не правильно. Спасибо .
Значення яке повертає err = - 2743123651
var
hlin:hline;
hCal : HCALL;
DeviceID :^tvarstring;
err,l:longint;
begin
l:= sizeof(deviceid^);
GetMem(deviceid,l);
deviceid.dwTotalSize := l;
err:=linegetid ( 0 , 0, Hcal , LINECALLSELECT_LINE , @deviceid,"wave/out");
if deviceid.dwTotalSize < deviceid.dwNeededSize then begin
l:=deviceid.dwNeededSize;
getmem(deviceid,l);
deviceid.dwTotalSize:=l;
err:=linegetid( 0 , 0 , HCal,LINECALLSELECT_LINE,@deviceid,"wave/out");
end;
← →
han_malign © (2008-03-27 13:39) [1]- выдернуто из контекста, но надеюсь разберешься
var sz: DWORD;
lpDeviceID: PVarString;
begin
sz:=sizeof(TVarString); lpDeviceID:=nil;
repeat
if(lpDeviceID<>nil)then FreeMem(lpDeviceID);
GetMem(lpDeviceID,sz);fillchar(lpDeviceID^,sz,0);
lpDeviceID.dwTotalSize:=sz;
Result:=lineGetId(F_hLine,dwAddressID,hCall,dwSelect,lpDeviceID,Pointer(lpszDevi ceClass));
sz:=lpDeviceID.dwNeededSize;
until((Result<>0)or(lpDeviceID.dwTotalSize>=lpDeviceID.dwNeededSize));
if(lpDeviceID<>nil)then begin
FreeMem(lpDeviceID);
end;
end;
← →
han_malign © (2008-03-27 13:42) [2]а не - вру - не поможет, у тебя и так почти тоже самое, ща посмотрю, что за ошибка
← →
han_malign © (2008-03-27 13:50) [3]значение err - левое, а вот нахрена ты второй раз адрес указателя берешь - непонятно...
собаку убери...
← →
kolj (2008-03-27 16:21) [4]to han_malign.
Попробовал твой пример, значение result = - 2743123565.
> значение err - левое
ф-я дает неправильное значение ?
подкажы пожалуйста как со структруи VARSTRING взять идентификатор устройства.
← →
kolj (2008-03-27 16:31) [5]какие надо параметры передавать в ф-ю linegetid ?
← →
han_malign © (2008-03-27 16:52) [6]
> какие надо параметры передавать в ф-ю linegetid ?
для начала надо lineInitializeEx сделать, а вот зачем и почему - читай хелпы.
Я тут вольный перевод MSDN-а делать не нанимался...
← →
GanibalLector © (2008-03-27 20:33) [7]У меня так :
LINECALLSTATE_CONNECTED:
begin
if Call<>0 then
begin
lVarString := AllocMem(sizeof(lVarString^));
lVarString^.dwTotalSize := sizeof(lVarString^);
lineGetID(0, 0, Call, LINECALLSELECT_CALL, lVarString, "comm/datamodem");
if lVarString^.dwNeededSize > lVarString^.dwTotalSize then
begin
ReallocMem(lVarString, lVarString^.dwNeededSize);
lVarString^.dwTotalSize := lVarString^.dwNeededSize;
I := lineGetID(0, 0, Call, LINECALLSELECT_CALL, lVarString, "comm/datamodem");
if TApiFailed(I) then
begin
lineDrop(Call,nil,0);
end;
end;
end;
end;
← →
kolj (2008-03-28 09:19) [8]Дайте пожалуйста пример использования ф-и lineInitializeEx , и покажите где берете входные параметры
← →
GanibalLector © (2008-03-29 11:20) [9]>Дайте пожалуйста пример использования ф-и lineInitializeEx
Получай:
var R:Longint;
ExParams:pLineInitializeExParams;
begin
ExParams:=AllocMem(SizeOf(TLineInitializeExParams)+1000);
ExParams^.dwTotalSize:=SizeOf(TLineInitializeExParams)+1000;
ExParams^.dwOptions:=FInitOpt;
try
R:=LineInitializeEx(PHLINEAPP(@FAppHandle),hInstance,CallBackFunc,PChar(FAppName ),FNumDev,FAPIHiVer,ExParams^);
if R <>0 then RaiseTAPILineError(R);
case ExParams^.dwOptions of
LINEINITIALIZEEXOPTION_USEEVENT:
begin
FEvent:=ExParams^.Handles.hEvent;
FThread:=TTAPIThread.Create(FAppHandle,FEvent);
end;
end;
finally
FreeMem(ExParams);
end;
end;
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2009.03.15;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.046 c