请教一个数据库notify的问题

Peter_Wang_Autodesk 2009-07-15 12:03:55
我的程序里希望修改联系人信息(添加,修改,删除)之后能够收到一个notify进行逻辑处理。我的做法如下:
首先在create window的时候打开数据库。

HANDLE OpenWinceDatabase () // 打开数据库的对象标识符
{
CREATE_INVALIDGUID(&guid);
if (!CeMountDBVolEx(&guid, _T("pim.vol"), NULL, OPEN_EXISTING))
{
return NULL;
}

CEOID oid = 0;
HANDLE hDatabase = CeOpenDatabaseInSession(NULL, &guid, &oid,
_T("Contacts Database"), NULL,
CEDB_AUTOINCREMENT, NULL);

// 返回打开的数据库句柄
return hDatabase;
}

然后在winproc里注册WM_DBNOTIFICATION消息,接收notify信息,进行逻辑处理

最后再destroy的时候关闭数据库。



但是运行的时候一直没有受到WM_DBNOTIFICATION的消息,请问是否还需要什么操作?
...全文
37 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
dlbingosoft 2009-07-15
  • 打赏
  • 举报
回复
open的时候参数传的不正确,最后一个参数不能设为NULL。设为NULL就不能取得通知消息。

CENOTIFYREQUEST pRequest;
pRequest.hwnd = hWnd;
pRequest.dwSize = sizeof(CENOTIFYREQUEST);
pRequest.dwFlags = CEDB_EXNOTIFICATION;
pRequest.hHeap = NULL;
HANDLE hDatabase = CeOpenDatabaseInSession(NULL, &guid, &oid,
_T("Contacts Database"), NULL,
CEDB_AUTOINCREMENT, &pRequest);

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧