术语:
HSINT(Hook Switch Int): 翻盖接听,再合上盖挂机,像座机一样
mic: 话筒,麦克风 (声音输入)
handset:电话听筒 (声音输出)
loudspeaker: 扩音器, 喇叭,扬声器 (声音输出)
应用例子Windows Mobile 6 SDK/Samples/Common/CPP/Win32/CellCore/CeDialer,要改一下,否则跑不起来。
//lpCallParams->dwMediaMode = LINEMEDIAMODE_DATAMODEM;
lpCallParams->dwMediaMode = LINEMEDIAMODE_INTERACTIVEVOICE;
// 打开/关闭扬声器
#define FILE_DEVICE_SPEAKER 32770
#define IOCTL_SPEAKER_ADD_NOTIFY_HWND CTL_CODE( FILE_DEVICE_SPEAKER, 2052, METHOD_BUFFERED, FILE_ANY_ACCESS )
#define IOCTL_SPEAKER_REMOVE_NOTIFY_HWND CTL_CODE( FILE_DEVICE_SPEAKER, 2053, METHOD_BUFFERED, FILE_ANY_ACCESS )
#define IOCTL_SPEAKER_GETMODE CTL_CODE( FILE_DEVICE_SPEAKER, 2054, METHOD_BUFFERED, FILE_ANY_ACCESS )
#define IOCTL_SPEAKER_SETMODE CTL_CODE( FILE_DEVICE_SPEAKER, 2055, METHOD_BUFFERED, FILE_ANY_ACCESS )
case IDC_OPEN_SPEAKER:
{
HANDLE hSpk = CreateFile(TEXT("SPK1:"), 0, 0, NULL, OPEN_EXISTING, 0, NULL);
if(INVALID_HANDLE_VALUE != hSpk)
{
DWORD dwSpkMode = TRUE;
DeviceIoControl(hSpk, IOCTL_SPEAKER_SETMODE, &dwSpkMode, sizeof(dwSpkMode),
NULL, 0, NULL, NULL);
CloseHandle(hSpk);
}
}
break;
case IDC_CLOSE_SPEAKER:
{
HANDLE hSpk = CreateFile(TEXT("SPK1:"), 0, 0, NULL, OPEN_EXISTING, 0, NULL);
if(INVALID_HANDLE_VALUE != hSpk)
{
DWORD dwSpkMode = FALSE;
DeviceIoControl(hSpk, IOCTL_SPEAKER_SETMODE, &dwSpkMode, sizeof(dwSpkMode),
NULL, 0, NULL, NULL);
CloseHandle(hSpk);
}
}
break;
//
2629

被折叠的 条评论
为什么被折叠?



