亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? forwardmgrdlg.cpp

?? windows mobile下
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
// ForwardMgrDlg.cpp : implementation file
//

#include "stdafx.h"
#include "ForwardMgr.h"
#include "ForwardMgrDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

void FAR PASCAL CForwardMgrDlg::lineCallback(DWORD hDevice,DWORD dwMsg,DWORD dwCallbackInstance,
											 DWORD dwParam1,DWORD dwParam2,DWORD dwParam3)
{
	switch(dwMsg)
	{
		case LINE_DEVSPECIFIC:
		{
			break;
		}
		case LINE_REPLY:
		{
			CString		strError;

			switch(dwParam2)
			{
				case 0:								strError	= TEXT("");								break;
				case LINEERR_INVALLINEHANDLE:		strError	= TEXT("LINEERR_INVALLINEHANDLE");		break;
				case LINEERR_NOMEM:					strError	= TEXT("LINEERR_NOMEM");				break;
				case LINEERR_OPERATIONUNAVAIL:		strError	= TEXT("LINEERR_OPERATIONUNAVAIL");		break;
				case LINEERR_OPERATIONFAILED:		strError	= TEXT("LINEERR_OPERATIONFAILED");		break;
				case LINEERR_RESOURCEUNAVAIL:		strError	= TEXT("LINEERR_RESOURCEUNAVAIL");		break;
				case LINEERR_INVALPOINTER:			strError	= TEXT("LINEERR_INVALPOINTER");			break;
				case LINEERR_INVALPARAM:			strError	= TEXT("LINEERR_INVALPARAM");			break;
				case LINEERR_UNINITIALIZED:			strError	= TEXT("LINEERR_UNINITIALIZED");		break;
				default:							strError.Format(TEXT("Error: %x"),dwParam2);		break;
			}

			if(strError.GetLength() > 0)
				AfxMessageBox(strError);

			break;
		}
	}
}


// CForwardMgrDlg dialog

CForwardMgrDlg::CForwardMgrDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CForwardMgrDlg::IDD, pParent)
	, m_strAllCallsNumber(_T(""))
	, m_strNoAnswerNumber(_T(""))
	, m_strUnAvailNumber(_T(""))
	, m_strBusyNumber(_T(""))
{
	m_hIcon				= AfxGetApp()->LoadIcon(IDR_MAINFRAME);
	m_hLineApp			= NULL;
	m_dwDevices			= 0;
	m_dwCellularId		= 0;
	m_dwExtVersion		= 0;
	m_dwAPIVersion		= 0;
	m_dwLowAPIVersion	= 0;
	m_dwAddressId		= 0;
	m_hCellularLine		= NULL;
}

void CForwardMgrDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_ALL_CALLS, m_wndAllCalls);
	DDX_Control(pDX, IDC_NOANSWER, m_wndNoAnswer);
	DDX_Control(pDX, IDC_UNAVAIL, m_wndUnAvail);
	DDX_Control(pDX, IDC_BUSY, m_wndBusy);
	DDX_Text(pDX, IDC_ALLCALLS_NUMBER, m_strAllCallsNumber);
	DDX_Text(pDX, IDC_NOANSWER_NUMBER, m_strNoAnswerNumber);
	DDX_Text(pDX, IDC_UNAVAIL_NUMBER, m_strUnAvailNumber);
	DDX_Text(pDX, IDC_BUSY_NUMBER, m_strBusyNumber);
	DDX_Control(pDX, IDC_AFTERSECONDS, m_wndSeconds);
}

BEGIN_MESSAGE_MAP(CForwardMgrDlg, CDialog)
	ON_WM_SIZE()
	ON_WM_DESTROY()

	//}}AFX_MSG_MAP
	ON_BN_CLICKED(IDC_ALL_CALLS, &CForwardMgrDlg::OnBnClickedAllCalls)
	ON_WM_TIMER()
	ON_BN_CLICKED(IDC_NOANSWER, &CForwardMgrDlg::OnBnClickedNoanswer)
END_MESSAGE_MAP()


// CForwardMgrDlg message handlers

BOOL CForwardMgrDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon

	AddSecondsToComboBox(&m_wndSeconds);

	if(0 == InitializeTAPI())
	{
		m_dwCellularId	= GetCellularLineId();
	}

	if(0xFFFFFFFF != m_dwCellularId)
	{
		m_hCellularLine	= OpenTAPILine(m_dwCellularId);

		if(m_hCellularLine)
		{
			CString	strAddress(TEXT("9746495065"));

			LONG lError = lineGetAddressID(m_hCellularLine,&m_dwAddressId,LINEADDRESSMODE_DIALABLEADDR,
										   strAddress,strAddress.GetLength());

			if(lError == 0)
			{
				SetTimer(ID_TIMER_GETINFO,100,NULL);
			}
		}
	}
	
	return TRUE;  // return TRUE  unless you set the focus to a control
}

void CForwardMgrDlg::OnSize(UINT nType, int cx, int cy)
{
	CDialog::OnSize(nType,cx,cy);
}

void CForwardMgrDlg::OnDestroy()
{
	ShutdownTAPI();

	CDialog::OnDestroy();
}

long CForwardMgrDlg::InitializeTAPI()
{
	LINEINITIALIZEEXPARAMS	sLineParam;

	memset(&sLineParam,0,sizeof(LINEINITIALIZEEXPARAMS));

	sLineParam.dwTotalSize	= sizeof(LINEINITIALIZEEXPARAMS);
	sLineParam.dwOptions	= LINEINITIALIZEEXOPTION_USEHIDDENWINDOW; 

	m_dwLowAPIVersion		= TAPI_CURRENT_VERSION;

	long	lReturn	= lineInitializeEx(&m_hLineApp,
									   theApp.m_hInstance,
									   lineCallback,
									   TAPI_FRIENDLY_NAME,
									   &m_dwDevices,
									   &m_dwLowAPIVersion,
									   &sLineParam);

	return lReturn;
}

void CForwardMgrDlg::ShutdownTAPI()
{
	if(m_hCellularLine)
	{
		lineClose(m_hCellularLine);
	}

	if(m_hLineApp)
	{
		lineShutdown(m_hLineApp);
	}

	m_hLineApp		= NULL;
	m_hCellularLine	= NULL;
}

DWORD CForwardMgrDlg::GetCellularLineId()
{
	DWORD				dwReturn		= 0xFFFFFFFF;
	long				lResult			= 0;
	LINEEXTENSIONID		sLineExt		= {0};
	LPLINEDEVCAPS		lpLineDevCaps	= NULL;	
	BOOL				bContinue		= TRUE;

	for(DWORD dwLine=0; dwLine<m_dwDevices && bContinue; ++dwLine)
	{
		lResult		= lineNegotiateAPIVersion(m_hLineApp,dwLine,m_dwLowAPIVersion,TAPI_CURRENT_VERSION,&m_dwAPIVersion,&sLineExt);

		if(0 == lResult)
		{
			lpLineDevCaps	= (LPLINEDEVCAPS)LocalAlloc(LPTR,sizeof(LINEDEVCAPS));
			lResult			= LINEERR_STRUCTURETOOSMALL;

			lpLineDevCaps->dwTotalSize	= sizeof(LINEDEVCAPS);
			lpLineDevCaps->dwNeededSize	= sizeof(LINEDEVCAPS);

			while(LINEERR_STRUCTURETOOSMALL == lResult)
			{
				lResult	= lineGetDevCaps(m_hLineApp,dwLine,TAPI_CURRENT_VERSION,0,lpLineDevCaps);

				if(LINEERR_STRUCTURETOOSMALL == lResult || lpLineDevCaps->dwTotalSize < lpLineDevCaps->dwNeededSize)
				{
					lpLineDevCaps	= (LPLINEDEVCAPS)LocalReAlloc(lpLineDevCaps,lpLineDevCaps->dwNeededSize,LMEM_MOVEABLE);
					lResult			= LINEERR_STRUCTURETOOSMALL;

					lpLineDevCaps->dwTotalSize	= lpLineDevCaps->dwNeededSize;
				}
			}

			if(0 == lResult)
			{
				TCHAR szName[512];

				memcpy((PVOID)szName,(PVOID)((BYTE*)lpLineDevCaps + lpLineDevCaps ->dwLineNameOffset), 
					    lpLineDevCaps->dwLineNameSize);

				szName[lpLineDevCaps->dwLineNameSize]	= 0;

				if(_tcscmp(szName,CELLTSP_LINENAME_STRING) == 0)
				{
					dwReturn	= dwLine;
					bContinue	= FALSE;
				}
			}

			LocalFree((HLOCAL)lpLineDevCaps);
		}
	}

	return dwReturn;
}

HLINE CForwardMgrDlg::OpenTAPILine(DWORD dwLineId)
{
	DWORD	dwMediaMode = LINEMEDIAMODE_INTERACTIVEVOICE;
	HLINE	hLine		= NULL;
	long	lReturn		= lineOpen(m_hLineApp,m_dwCellularId,&hLine,
								   TAPI_CURRENT_VERSION,0,(DWORD)this,
								   LINECALLPRIVILEGE_OWNER,dwMediaMode,0);

	lReturn				= lineNegotiateExtVersion(m_hLineApp,m_dwCellularId,m_dwAPIVersion,EXT_API_LOW_VERSION,EXT_API_HIGH_VERSION,&m_dwExtVersion);

	return hLine;
}

BOOL CForwardMgrDlg::GetAddressStatus(DWORD dwAddress,PFORWARDINFOLIST pList)
{
	PCALLFORWARDING_INFO	pInfo	= NULL;
	LPLINEADDRESSSTATUS		pStatus	= (LPLINEADDRESSSTATUS)LocalAlloc(LPTR,sizeof(LPLINEADDRESSSTATUS)); 

	pStatus->dwTotalSize	= sizeof(LINEGENERALINFO);
	
	LONG				lReturn	= LINEERR_STRUCTURETOOSMALL;

	while(LINEERR_STRUCTURETOOSMALL == lReturn)
	{
		lReturn	= lineGetAddressStatus(m_hCellularLine,dwAddress,pStatus);

		if(LINEERR_STRUCTURETOOSMALL == lReturn || pStatus->dwTotalSize < pStatus->dwNeededSize)
		{
			pStatus	= (LPLINEADDRESSSTATUS)LocalReAlloc(pStatus,pStatus->dwNeededSize,LMEM_MOVEABLE);
			lReturn	= LINEERR_STRUCTURETOOSMALL;

			pStatus->dwTotalSize	= pStatus->dwNeededSize;
		}
	}

	int	nForwardCount			= 0;

	if(0 == lReturn)
	{
		LPLINEFORWARD	pForward				= (LPLINEFORWARD)((BYTE*)pStatus + pStatus->dwForwardOffset);
		LPLINEFORWARD	pForwardTemp			= NULL;
		TCHAR			szAddress[MAX_PATH]		= {0};

		nForwardCount			= (int)(pStatus->dwForwardNumEntries);

		for(int nForward=0; nForward<nForwardCount; ++nForward)
		{
			pForwardTemp		= &(pForward[nForward]);

			DWORD	dwOffset	= pForwardTemp->dwDestAddressOffset;
			DWORD	dwSize		= pForwardTemp->dwDestAddressSize;
			DWORD	dwMode		= pForwardTemp->dwForwardMode;
			CString	strMode		= TEXT("");
			CString	strMessage	= TEXT("");

			for(int i = 0; i <(signed)(dwSize/2); ++i)
			{
				szAddress[i]	= (char)(*((unsigned short *)(pStatus) + i + dwOffset/2));
				szAddress[i+1]	= NULL;
			}

			pInfo				= new CALLFORWARDING_INFO;
			pInfo->dwMode		= dwMode;
			pInfo->nSeconds		= pStatus->dwNumRingsNoAnswer;
			pInfo->strNumber	= szAddress;

			pList->Add(pInfo);
		}
	}

	LocalFree(pStatus);

	return (nForwardCount > 0);
}

void CForwardMgrDlg::ForwardModeToString(DWORD dwMode,CString& strMode)
{
	switch(dwMode)
	{
		case LINEFORWARDMODE_BUSY:				strMode	= TEXT("Forward all calls on busy");						break;
		case LINEFORWARDMODE_BUSYEXTERNAL:		strMode	= TEXT("Forward all external calls on busy");				break;
		case LINEFORWARDMODE_BUSYINTERNAL:		strMode	= TEXT("Forward all internal calls on busy");				break;
		case LINEFORWARDMODE_BUSYNA:			strMode	= TEXT("Forward all calls on busy/no answer");				break;
		case LINEFORWARDMODE_BUSYNAEXTERNAL:	strMode	= TEXT("Forward all external calls on busy/no answer");		break;
		case LINEFORWARDMODE_BUSYNAINTERNAL:	strMode	= TEXT("Forward all internal calls on busy/no answer");		break;
		case LINEFORWARDMODE_BUSYNASPECIFIC:	strMode	= TEXT("Forward on busy/no answer all calls (selective)");	break;
		case LINEFORWARDMODE_BUSYSPECIFIC:		strMode	= TEXT("Forward on busy all calls (specific)");				break;
		case LINEFORWARDMODE_NOANSW:			strMode	= TEXT("Forward all calls on no answer");					break;
		case LINEFORWARDMODE_NOANSWEXTERNAL:	strMode	= TEXT("Forward all external calls on no answer");			break;
		case LINEFORWARDMODE_NOANSWINTERNAL:	strMode	= TEXT("Forward all internal calls on no answer");			break;
		case LINEFORWARDMODE_NOANSWSPECIFIC:	strMode	= TEXT("Forward on no answer all calls (specific)");		break;
		case LINEFORWARDMODE_UNAVAIL:			strMode	= TEXT("Calls are unavailable forwarded");					break;
		case LINEFORWARDMODE_UNCOND:			strMode	= TEXT("Forward all calls unconditionally");				break;
		case LINEFORWARDMODE_UNCONDEXTERNAL:	strMode	= TEXT("Forward all external calls unconditionally");		break;
		case LINEFORWARDMODE_UNCONDINTERNAL:	strMode	= TEXT("Forward all internal calls unconditionally");		break;
		case LINEFORWARDMODE_UNCONDSPECIFIC:	strMode	= TEXT("Unconditionally forward all calls (specific)");		break;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区不卡视频在线观看 | 中文字幕在线观看一区二区| 欧美精品aⅴ在线视频| 99精品视频一区二区三区| 老司机免费视频一区二区| 亚洲综合激情小说| 亚洲视频一二三区| 国产精品乱码人人做人人爱| 欧美成人官网二区| 日韩免费观看2025年上映的电影| 91精品麻豆日日躁夜夜躁| 欧洲av一区二区嗯嗯嗯啊| 成人禁用看黄a在线| 成人一区二区在线观看| 国产精品99久久不卡二区| 美女爽到高潮91| 亚洲国产一区在线观看| 亚洲一区二区三区视频在线播放| 亚洲精品一二三| 亚洲乱码国产乱码精品精98午夜| 久久精品视频在线免费观看| 久久精品免视看| 欧美xxxx老人做受| 91精品国产aⅴ一区二区| 91精品中文字幕一区二区三区 | 国产精品久久夜| 久久久亚洲午夜电影| 国产视频一区在线观看| 国产欧美精品日韩区二区麻豆天美| 久久久久久9999| 中文字幕不卡一区| 亚洲另类在线一区| 午夜精品福利视频网站| 天堂久久久久va久久久久| 美女国产一区二区| 国产毛片精品一区| www.日韩大片| a美女胸又www黄视频久久| 日本精品一区二区三区四区的功能| 91蜜桃在线免费视频| 麻豆国产精品视频| 99久久99久久精品免费看蜜桃| 亚洲国产日韩综合久久精品| 日韩专区欧美专区| 中文字幕一区视频| 日韩精品中文字幕在线一区| 中文字幕免费一区| 国产精品福利一区| 一区二区三区中文字幕电影| 日本va欧美va欧美va精品| 久久国产福利国产秒拍| 成人高清在线视频| 国产蜜臀97一区二区三区| 亚洲成人综合网站| 九九九久久久精品| 99在线精品免费| 欧美视频自拍偷拍| 久久久久综合网| 亚洲欧美另类图片小说| 国产精品一区专区| 岛国一区二区三区| 在线综合+亚洲+欧美中文字幕| 欧美成人猛片aaaaaaa| 国产精品卡一卡二| 经典三级一区二区| 99国产精品国产精品久久| 不卡大黄网站免费看| 欧美裸体一区二区三区| 日韩精品专区在线| 国产伦精品一区二区三区视频青涩| 大胆欧美人体老妇| 色诱亚洲精品久久久久久| 欧美大片在线观看| 天天亚洲美女在线视频| 成人a区在线观看| 精品国产1区二区| 午夜日韩在线电影| 波多野结衣的一区二区三区| 性做久久久久久久免费看| 国产99久久久久| 欧美一区二区免费视频| 亚洲第一二三四区| 91日韩一区二区三区| 欧美国产禁国产网站cc| 国产美女久久久久| 精品国产欧美一区二区| 热久久国产精品| 欧美日韩的一区二区| 亚洲一区二区在线播放相泽| 色综合天天狠狠| 中文字幕一区二区三区视频| 成人久久18免费网站麻豆 | 欧日韩精品视频| 中文字幕亚洲不卡| 丁香一区二区三区| 亚洲国产精品ⅴa在线观看| 国产精品996| 国产日产欧美一区| 国产成人免费在线| 国产日韩欧美一区二区三区乱码 | 午夜免费久久看| 在线国产亚洲欧美| 亚洲免费观看高清完整版在线| 成人av在线资源| 最新中文字幕一区二区三区| 成人av午夜电影| 亚洲欧美在线观看| 91久久奴性调教| 成人欧美一区二区三区在线播放| 高清不卡在线观看| 中文字幕亚洲不卡| 91福利在线播放| 亚洲国产三级在线| 日韩一区二区在线观看视频播放| 麻豆免费精品视频| 国产亚洲精品福利| 国产精品福利电影一区二区三区四区| 粉嫩蜜臀av国产精品网站| 中文字幕在线一区免费| 色综合久久88色综合天天6 | 国产老女人精品毛片久久| 国产性色一区二区| 国产91综合网| 亚洲免费看黄网站| 欧美一级片在线看| 国产在线麻豆精品观看| 国产精品传媒入口麻豆| 91激情五月电影| 免费成人小视频| 日韩视频在线永久播放| 成人综合在线观看| 国产成人精品在线看| 在线观看成人小视频| 中文字幕中文乱码欧美一区二区| 色婷婷激情一区二区三区| 日韩精品电影在线| 欧美国产日韩在线观看| 91久久线看在观草草青青| 亚洲小说春色综合另类电影| 日韩欧美一区二区不卡| 不卡一卡二卡三乱码免费网站| 亚洲二区视频在线| 久久精品一区二区三区av| 91久久线看在观草草青青| 老司机精品视频导航| 亚洲图片欧美激情| 日韩欧美一级二级三级| 91丝袜呻吟高潮美腿白嫩在线观看| 性欧美大战久久久久久久久| 久久综合色之久久综合| 色综合中文字幕国产 | 欧美精品123区| 91麻豆精品国产91久久久久| 欧美一区日本一区韩国一区| 精品99一区二区| 国产精品久久久久7777按摩| 懂色av一区二区在线播放| 另类欧美日韩国产在线| 欧亚洲嫩模精品一区三区| 欧美美女喷水视频| 精品久久国产字幕高潮| 欧美国产成人精品| 亚洲一区二区三区四区在线免费观看| 日韩一区精品视频| 丁香亚洲综合激情啪啪综合| 久久久综合九色合综国产精品| 成人综合婷婷国产精品久久免费| 一区二区三区日本| 亚洲一区二区三区四区五区黄| 久久综合九色综合欧美就去吻| 日本久久一区二区| 国产91丝袜在线播放九色| 首页国产欧美久久| 亚洲三级视频在线观看| 2023国产精品| 欧美肥妇毛茸茸| 在线观看91精品国产入口| 懂色av中文一区二区三区 | 久久精品久久久精品美女| 一区二区在线看| 中文字幕一区二区三| 久久久亚洲午夜电影| 精品国精品国产尤物美女| 欧美日韩国产天堂| 欧美亚男人的天堂| 91在线观看污| 不卡的电影网站| 国产伦理精品不卡| 国产在线精品一区二区不卡了 | 91亚洲精华国产精华精华液| 高清av一区二区| 久久99久久精品| 青青草成人在线观看| 亚洲成av人片观看| 99riav久久精品riav| 不卡免费追剧大全电视剧网站| 国产ts人妖一区二区| 国产99久久精品| 国产不卡视频一区二区三区| 国产成人精品一区二区三区网站观看|