Windows_Mobile_来电防火墙实现
来源:互联网 发布:php禁止查看源码 编辑:程序博客网 时间:2024/04/28 00:10
1。初始化线路并对线路进行监控
代码:
--------------------------------------------------------------------------------
DWORD LineHandleCount=0;HLINE *LineHandles=NULL;HLINEAPP LineApp;VOID CALLBACK LineCallback(DWORD hDevice, DWORD dwMsg, DWORD dwCallbackInstance, DWORD dwParam1, DWORD dwParam2, DWORD dwParam3){}if ( lineInitialize( &LineApp, g_hInst, (LINECALLBACK)LineCallback, g_szAppWndClass, &LineHandleCount ) == 0 ) { LineHandles = new HLINE[LineHandleCount]; for(DWORD i = 0; i < LineHandleCount; i++) { int rc; DWORD ver; LINEEXTENSIONID extensionID; if ( lineNegotiateAPIVersion( LineApp, i, 0x00010000, 0x00020000, &ver, &extensionID ) == 0 ) { rc = lineOpen( LineApp, i, &LineHandles[ i ], ver, 0, (DWORD)0,LINECALLPRIVILEGE_MONITOR|LINECALLPRIVILEGE_OWNER, LINEMEDIAMODE_INTERACTIVEVOICE,NULL); } } }
--------------------------------------------------------------------------------
2。取得来电号码
代码:
--------------------------------------------------------------------------------
VOID CALLBACK LineCallback(DWORD hDevice, DWORD dwMsg, DWORD dwCallbackInstance, DWORD dwParam1, DWORD dwParam2, DWORD dwParam3){switch(dwMsg) { case LINE_CALLINFO: { switch(dwParam1) { case LINECALLINFOSTATE_CALLERID: { LINECALLINFO *lpCallInfo; lpCallInfo = (LINECALLINFO *)malloc(sizeof(LINECALLINFO)+1000); memset(lpCallInfo, 0, sizeof(LINECALLINFO)+1000); lpCallInfo->dwTotalSize = sizeof(LINECALLINFO)+1000; while (1) { lineGetCallInfo( (HCALL)hDevice, lpCallInfo); if (lpCallInfo->dwTotalSize < lpCallInfo->dwNeededSize) lpCallInfo = (LINECALLINFO *)realloc(lpCallInfo,lpCallInfo->dwNeededSize); else break; } TCHAR szPhoneNumber[30]; lstrcpy(szPhoneNumber,(LPTSTR)((LPSTR)((DWORD)lpCallInfo+(DWORD)lpCallInfo->dwCallerIDOffset))); free(lpCallInfo); // szPhoneNumber ---- 这就是呼入的电话号码 } } } break;}}
--------------------------------------------------------------------------------
3。if这个号码你不想接那就
lineDrop((HCALL)hDevice,NULL,0); //挂断电话
或者重新构建回应信息让对方听到关机、不在服务区或者Y正在通话的消息发送给TAPI。
代码:
--------------------------------------------------------------------------------
This 部分的程序 I 还没有 complete
--------------------------------------------------------------------------------
4。如果你觉得老是看着谁来电累了的话,那就
代码:
--------------------------------------------------------------------------------
void ReleaseLine(){ for ( DWORD i=0; i<LineHandleCount; i++ ) lineClose( LineHandles[ i ] ); delete[] LineHandles; lineShutdown( LineApp ); }
--------------------------------------------------------------------------------
代码:
--------------------------------------------------------------------------------
DWORD LineHandleCount=0;HLINE *LineHandles=NULL;HLINEAPP LineApp;VOID CALLBACK LineCallback(DWORD hDevice, DWORD dwMsg, DWORD dwCallbackInstance, DWORD dwParam1, DWORD dwParam2, DWORD dwParam3){}if ( lineInitialize( &LineApp, g_hInst, (LINECALLBACK)LineCallback, g_szAppWndClass, &LineHandleCount ) == 0 ) { LineHandles = new HLINE[LineHandleCount]; for(DWORD i = 0; i < LineHandleCount; i++) { int rc; DWORD ver; LINEEXTENSIONID extensionID; if ( lineNegotiateAPIVersion( LineApp, i, 0x00010000, 0x00020000, &ver, &extensionID ) == 0 ) { rc = lineOpen( LineApp, i, &LineHandles[ i ], ver, 0, (DWORD)0,LINECALLPRIVILEGE_MONITOR|LINECALLPRIVILEGE_OWNER, LINEMEDIAMODE_INTERACTIVEVOICE,NULL); } } }
--------------------------------------------------------------------------------
2。取得来电号码
代码:
--------------------------------------------------------------------------------
VOID CALLBACK LineCallback(DWORD hDevice, DWORD dwMsg, DWORD dwCallbackInstance, DWORD dwParam1, DWORD dwParam2, DWORD dwParam3){switch(dwMsg) { case LINE_CALLINFO: { switch(dwParam1) { case LINECALLINFOSTATE_CALLERID: { LINECALLINFO *lpCallInfo; lpCallInfo = (LINECALLINFO *)malloc(sizeof(LINECALLINFO)+1000); memset(lpCallInfo, 0, sizeof(LINECALLINFO)+1000); lpCallInfo->dwTotalSize = sizeof(LINECALLINFO)+1000; while (1) { lineGetCallInfo( (HCALL)hDevice, lpCallInfo); if (lpCallInfo->dwTotalSize < lpCallInfo->dwNeededSize) lpCallInfo = (LINECALLINFO *)realloc(lpCallInfo,lpCallInfo->dwNeededSize); else break; } TCHAR szPhoneNumber[30]; lstrcpy(szPhoneNumber,(LPTSTR)((LPSTR)((DWORD)lpCallInfo+(DWORD)lpCallInfo->dwCallerIDOffset))); free(lpCallInfo); // szPhoneNumber ---- 这就是呼入的电话号码 } } } break;}}
--------------------------------------------------------------------------------
3。if这个号码你不想接那就
lineDrop((HCALL)hDevice,NULL,0); //挂断电话
或者重新构建回应信息让对方听到关机、不在服务区或者Y正在通话的消息发送给TAPI。
代码:
--------------------------------------------------------------------------------
This 部分的程序 I 还没有 complete
--------------------------------------------------------------------------------
4。如果你觉得老是看着谁来电累了的话,那就
代码:
--------------------------------------------------------------------------------
void ReleaseLine(){ for ( DWORD i=0; i<LineHandleCount; i++ ) lineClose( LineHandles[ i ] ); delete[] LineHandles; lineShutdown( LineApp ); }
--------------------------------------------------------------------------------
- Windows_Mobile_来电防火墙实现
- wince 来电防火墙静音实现的几种办法
- wince 来电防火墙静音实现的几种办法
- Android手机来电防火墙
- Wince5.0来电防火墙实现回复对方是空号或者已经关机
- 如何用.net的Compact Framework实现简单的来电防火墙?
- 如何用.net的Compact Framework实现简单的来电防火墙?
- S40手机上的来电防火墙
- 来电防火墙——学习记录
- 来电防火墙——学习记录
- 模拟来电的实现
- 拒绝骚扰:黑莓来电防火墙(含时间大法)
- 5800xm手机上的信安易来电防火墙下载
- Android 代码实现来电拦截
- 用代码实现来电拦截
- Android 代码实现来电拦截
- 来电拦截、来电挂断,通过反射实现一键挂断
- Android实现来电自动挂断实现机制
- 发布软件:小伟工程施工日记
- 再试发
- RadioButtonList1对于数据库的调用
- CSS中expression使用简介 http://vod.sjtu.edu.cn/help/Article_Show.asp?ArticleID=2224
- 休闲的艺术
- Windows_Mobile_来电防火墙实现
- 关于QQ软件无法安装的问题
- [原创]ADO.NET
- About "Destructor Function"
- MSDN中对进程和线程的一些基本概念的描述
- Windows mobile 下读取手机SIM卡信息
- PhotoShop的六大功能
- Asp.net2.0身份验证技术学习入门---角色管理(一)
- 簡易的程式平行化方法-OpenMP(一)簡介