Консультация № 55203
12.09.2006, 20:53
0.00 руб.
0 1 1
Здраствуйте!!!
Поясните пожалуйста, человеческим языком кусок программы из приложения. Тоесть что зачем и как мы делаем в каждой из строк кода!!!

Приложение:
HCALL hCall; LPLINECALLINFO pLineCallInfo; LPSTR pPhoneNumber; DWORD dwSize, i; LONG r; . . . (здесь должно быть какое-нибудь получение hCall) dwSize = sizeof(LINECALLINFO); pLineCallInfo = (LPLINECALLINFO)GlobalAlloc(GPTR, dwSize); if(!pLineCallInfo) { . . . (грязная ругань) } pLineCallInfo->dwTotalSize = dwSize; r = lineGetCallInfo(hCall, pLineCallInfo); if( r!=0 && r!=LINEERR_STRUCTURETOOSMALL) { . . . (см. выше) } dwSize = pLineCallInfo->dwNeededSize; GlobalFree(pLineCallInfo); pLineCallInfo = (LPLINECALLINFO)GlobalAlloc(GPTR, dwSize); if(!pLineCallInfo) { . . . } pLineCallInfo->dwTotalSize = dwSize; r = lineGetCallInfo(hCall, pLineCallInfo); if(r) { . . . } if(pLineCallInfo->dwCallerIDFlags & LINECALLPARTYID_UNAVAIL) { . . . (при таком раскладе CallerID вообще недоступен) } else if(pLineCallInfo->dwCallerIDFlags & LINECALLPARTYID_UNKNOWN) { . . . (CallerID еще не получен, но есть надежда... ) } else if(pLineCallInfo->dwCallerIDFlags & LINECALLPARTYID_ADDRESS) { // здесь есть CallerID. По вкусу можно проверить // флаг LINECALLPARTYID_PARTIAL, говорящий о том, // что данные о номере неполные pPhoneNumber = (LPSTR)GlobalAlloc(GPTR, pLineCallInfo->dwCallerIDSize+1); if(!pPhoneNumber) { . . . } for(i=0;i<pLineCallInfo->dwCallerIDSize;i++) { pPhoneNumber[i] = *(LPSTR)(((DWORD)pLineCallInfo)+ pLineCallInfo->dwCallerIDOffset+i); } pPhoneNumber[i]=0; } else { . . . // всякие варианты типа BLOCKED и т.п. } . . .

Обсуждение

Неизвестный
12.09.2006, 22:48
общий
это ответ
Здравствуйте, chikanok!
TAPI - штука серьезная. Трудно судить по этому куску программы как линия, которую Вы хотите мониторить была активизирована. Советую почитать книгу Chris Sells "Windows Telephony Programming". Он же написал TFX-библиотеку, так называемую "обертку" для чистых TAPI-функций, что существенно облегчает жизнь в процессе написания программ. TFX можно добыть здесь
http://www.sellsbrothers.com/.

Для общего развития:
http://www.i-b-a-m.de/Andreas_Marschall‘s_TAPI_and_TSPI_FAQ.htm
Форма ответа