7,655
社区成员
发帖
与我相关
我的任务
分享
#include <snapi.h>
#define UM_PHONESTATE_NOTIFY WM_USER+1000
HREGNOTIFY hNotify = NULL;
LRESULT RegistryNotifyWindowProc(HWND hDlg, UINT msg, UINT wParam, LONG lParam)
{
LRESULT lRet = FALSE;
DWORD dwStatus;
switch (msg)
{
case WM_CREATE:
RegistryNotifyWindow(SN_PHONERADIOPRESENT_ROOT,
SN_PHONERADIOPRESENT_PATH,
SN_PHONERADIOPRESENT_VALUE,
hDlg,
UM_PHONESTATE_NOTIFY,
0,
NULL,
&hNotify);
lRet = 0;
break;
case UM_PHONESTATE_NOTIFY:
// You can read the full location with the RegistryGetString function.
RegistryGetString(SN_PHONERADIOPRESENT_ROOT,
SN_PHONERADIOPRESENT_PATH,
SN_PHONERADIOPRESENT_VALUE,
&dwStatus);
// Add your own processing statements here.
if (dwStatus && SN_PHONERADIOPRESENT_BITMASK)
{
}
else if (dwStatus && SN_PHONERADIOOFF_BITMASK)
{
}
lRet = TRUE;
break;
case WM_DESTROY:
RegistryCloseNotification(hNotify);
lRet = 0;
break;
// Add your own statements for handling other messages, here.
return lRet;
}
#include <snapi.h>
#include <regext.h>
#define UM_PHONESTATE_NOTIFY WM_USER+1000
HREGNOTIFY hNotify = NULL;
LRESULT RegistryNotifyWindowProc(HWND hDlg, UINT msg, UINT wParam, LONG lParam)
{
LRESULT lRet = FALSE;
DWORD dwStatus;
switch (msg)
{
case WM_CREATE:
RegistryNotifyWindow(SN_PHONERADIOPRESENT_ROOT,
SN_PHONERADIOPRESENT_PATH,
SN_PHONERADIOPRESENT_VALUE,
hDlg,
UM_PHONESTATE_NOTIFY,
0,
NULL,
&hNotify);
lRet = 0;
break;
case UM_PHONESTATE_NOTIFY:
RegistryGetDWORD(SN_PHONERADIOPRESENT_ROOT,
SN_PHONERADIOPRESENT_PATH,
SN_PHONERADIOPRESENT_VALUE,
&dwStatus);
// Add your own processing statements here.
if (dwStatus & SN_PHONEMISSEDCALL_BITMASK)
{
//有未接电话
}
else if (dwStatus & SN_PHONEINCOMINGCALL_BITMASK)
{
//有来电
}
else if (dwStatus & SN_PHONECALLTALKING_BITMASK)
{
//正在通话中
}
else
{
//其它
}
lRet = TRUE;
break;
case WM_DESTROY:
RegistryCloseNotification(hNotify);
lRet = 0;
break;
// Add your own statements for handling other messages, here.
return lRet;
}