5263|11

75

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

急問!!TAPI的回調函數無法作用 [复制链接]

小弟寫個TAPI打電話FUNCTION,電話可以打出去~~但是沒有辦法得到CALLBACK的訊息
小弟貼個源碼請高手幫忙一下!!看哪裡有問題!!感激不盡!!
只要知道如何讓源碼有辦法得到CALLBACK的訊息立刻結帖

makecall()
{
LINEINITIALIZEEXPARAMS        liep =
{
  sizeof (LINEINITIALIZEEXPARAMS),        //dwTotalSize
  0,                                        //dwNeededSize
  0,                                        //dwUsedSize
  LINEINITIALIZEEXOPTION_USEEVENT,        //dwOptions:
  LINEINITIALIZEEXOPTION_USEHIDDENWINDOW
  0,                                        //Handles
  0                                        //dwCompletionKey
};       

lineInitializeEx(&g_hLineApp, g_hInst, (LINECALLBACK) MylineCallbackFunc, g_szAppName, &g_dwNumDevs,

&g_dwAPIVersion, &liep);

for (dwLineID = 0; dwLineID < g_dwNumDevs; ++dwLineID)
{  
    LPWST lpszTSPName = L"Cellular TAPI Service Provider";

    lineNegotiateAPIVersion (
        g_hLineApp,                   // TAPI registration handle
        dwLineID,                     // Line device to be queried
        EARLY_TAPI_VERSION,           // Least recent API version
        TAPI_CURRENT_VERSION,         // Most recent API version
        &(lpLineInfo->dwAPIVersion),  // Negotiated API version
        NULL))                        // Must be NUL

    lineGetDevCaps(g_hLineApp, dwCurrentDeviceID, g_dwAPIVersion, g_dwExtVersion, lpLineDevCaps);

      lpszProviderInfo = (LPWSTR)((DWORD)lpLineDevCaps + lpLineDevCaps->dwProviderInfoOffset);                                
       lpszDevName = (LPTSTR)((LPBYTE)lpLineDevCaps + lpLineDevCaps->dwLineNameOffset);       

if (0 == (wcscmp(lpszLineName, lpszTSPName)))
{
    LPLINECALLPARAMS lpCallParams;

    lineOpen(g_hLineApp, g_dwTSPILineDeviceID, &g_hLine, g_dwAPIVersion, g_dwExtVersion, g_dwCallbackInstance,
        LINECALLPRIVILEGE_MONITOR | LINECALLPRIVILEGE_OWNER, LINEMEDIAMODE_DATAMODEM , NULL);

    if (!(lpCallParams = (LPLINECALLPARAMS) LocalAlloc (LPTR, dwSizeOfCallParams)))
        {
            MessageBox(TEXT("%s: MakeCall_Paramsfail faild %x\n"), g_szAppName, MB_OK);
        }
        ZeroMemory(lpCallParams, dwSizeOfCallParams);
        lpCallParams->dwTotalSize      = dwSizeOfCallParams;
        lpCallParams->dwBearerMode     = LINEBEARERMODE_VOICE;
        lpCallParams->dwMediaMode      = LINEMEDIAMODE_DATAMODEM;
        lpCallParams->dwCallParamFlags = LINECALLPARAMFLAGS_IDLE;
        lpCallParams->dwAddressMode    = LINEADDRESSMODE_ADDRESSID;
        lpCallParams->->dwAddressID    = g_dwCurrentLineAddr;
        lpCallParams->dwDisplayableAddressSize = lpTransOutput->dwDisplayableStringSize;
        lpCallParams->dwDisplayableAddressOffset = sizeof (LINECALLPARAMS);

        lineMakeCall(g_hLine, &g_hCall, TEXT("0955110211"), 0, lpCallParams);

}//end if (0 == (wcscmp(lpszLineName, lpszTSPName)))

}//end for (dwLineID = 0; dwLineID < g_dwNumDevs; ++dwLineID)
}//end makecall

最新回复

mark!做个“标记”真的能标记上么,下次能直接访问?  详情 回复 发表于 2010-6-11 13:49
点赞 关注

回复
举报

72

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
lineInitializeEx返回成功了么
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
所有的function都返回成功!!
電話可以打~就是回調函式沒作用
 
 
 

回复

94

帖子

0

TA的资源

一粒金砂(初级)

4
 
請高手們不吝回答阿~~
小弟搞了好幾天了~><
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

5
 
再頂上去~~高手們~~
幫一下忙吧~~><
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

6
 
你在LINEINITIALIZEEXPARAMS liep这个参数里设置了LINEINITIALIZEEXOPTION_USEEVENT,那么tpai就不会调你设置的回调函数了,而是你要开个线程去监听这个事件才能得到tapi发给你的消息。如果你要用回调,那个参数应该设为LINEINITIALIZEEXOPTION_USEHIDDENWINDOW。
推荐你到网上找个tpai打电话例子结合msdn的文档看看,这样调通会快很多。
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

7
 
E大~多謝你的回答~~
不過我把參數改成你所說的~~
依然不會回調~~
還是我哪裡有漏掉了~
謝謝!!
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

8
 
找个例子是最简单的办法,想tapi这些东东api参数n多,那个设置不对了就会出问题。一般的方法是google搜一个例子出来,然后在这个例子的基础上改成自己需要的东西。我帮你找了两个例子,你可以参考下:
1. 用回调方法的例子
  http://msdn.microsoft.com/en-us/library/ms880691.aspx
  这个例子在你装了mobile或者ce6.0后就会自带的
2. 用事件方法的例子
http://www.codeproject.com/KB/IP/TAPISample.aspx?fid=138981&df=90&mpp=25&noise=3&sort=Position&view=Quick&fr=26&select=1004219
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

9
 
多謝E大出手幫忙!!!小弟立刻試試!!^^
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

10
 
先結帖!!^^
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

11
 
做个标记
 
 
 

回复

52

帖子

0

TA的资源

一粒金砂(初级)

12
 
mark!做个“标记”真的能标记上么,下次能直接访问?
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表