yakin

有了舞台就好好表演,没有舞台就静静地做观众

导航

RAPI的应用

RAPI:Remote Application Programming Interface

RAPI是基于ActiveSync的.所以在Device要加ActiveSync的组件,同时PC端要装ActiveSync。这样Device是server端,PC是Client端。
我是用VC6.0作为工具编写PC端APP来控制Device的。当然我们原来的VC中并没有包含RAPI的相关API实现,所以要添加RAPI的相关lib文件和头文件:RAPI.lib和RAPI.h。同时要在project\settings里面设置连接RAPI.lib。
相关编程环境建立后就可以开始编程了。

1) 初始化RAPI。
   开始编写的时候忘了这一点,结果总是不行。后来在网上狂搜,搜到了微软日本的一篇相关文章,才搞明白。日语里面有很多汉字,大体还知道他在说什么,看来武大郎的故事有可能是真的哦!
   HRESULT hr = CeRapiInit(); //must initilize RAPI first before performing other operation.
    if ( hr != ERROR_SUCCESS )
      { return; }

2) 下面以修改蓝牙注册表为例:
    打开注册表:
    wcscpy((wchar_t *)Name, L"Software\\Microsoft\\Bluetooth\\HCI\\psKey");
   if ((lRet = CeRegOpenKeyEx(HKEY_LOCAL_MACHINE, (wchar_t *)Name, 0, 0, &hChildKey))             == ERROR_SUCCESS)
   {.......}
   RAPI的函数都使用unicode,所以所有字符串都必须是unicode形式。这一点要注意。

   查询注册表的值:
   if (ERROR_SUCCESS == (lRet = CeRegQueryValueEx(hChildKey,
  L"Pskey2", NULL, &dwType, (LPBYTE)Data,
  &dwSize)))

   修改注册表的值:
   if(ERROR_SUCCESS == (lRet = CeRegSetValueEx(hChildKey,
  L"Pskey2", NULL, NULL, (LPBYTE)&wData,
  sizeof(wData))))

   然后关闭注册表项:
   CeRegCloseKey(hChildKey);

3) 关闭RAPI
   CeRapiUninit();


我对RAPI的了解只是皮毛。随着了解的深入,我们可以用它写出强大的应用程序,比如完美的通过ActiveSync的升级程序。

posted on 2005-07-20 13:52  yakin  阅读(3300)  评论(3编辑  收藏  举报