我正在开发一个管理联系人信息的桌面应用程序,我希望能够使其与 Windows Mobile 设备上的联系人列表同步。我需要了解哪些命名空间/API 才能做到这一点?我更喜欢 .NET 紧凑框架中的一些东西,但我也可以使用 Win32。我正在寻找一种完全独立的方法,即不依赖于单独的应用程序,例如 Outlook。谢谢
3 回答
如果您可以使用最新的紧凑框架,那么您可以使用WindowsMobile 类库。
如果您必须使用旧版本的框架或想要支持旧硬件,您可以使用 Interop访问本机ActiveSync API 。所有C++ API都可以通过 Interop/PInvoke 或 COM Interop 访问。一个例子是here。
ActiveSync 没有托管 API。ActiveSync SDK 文件夹中有一个名为“stockpor”的示例(默认情况下,它位于 C:\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Pocket PC SDK\Activesync\Activesync 股票投资组合示例),它为您提供了一个示例如何进行自定义项目同步。
编辑:第二种选择是在设备端使用POOM,并创建一个您可以与之交互的自定义 RAPI DLL(不建议尝试直接打开联系人数据库,因为不能保证记录格式保持不变跨 WinMo 版本)。您必须自己解决冲突等,但以这种方式获取设备上的联系信息可能更容易。
还可以考虑查看Microsoft SyncFramework。同步是一个比人们意识到的要困难得多的问题,构建一个满足所有边缘情况的解决方案可能非常困难。IIRC 他们甚至有从 Outlook 同步到 Pocket PC 的示例。
如果您决定走 RAPI 路线 OpenNETCF 有一个不错的 RAPI C# 库,请参见此处。