注册
 找回密码
 注册
江西广告网
查看: 286|回复: 0
打印 上一主题 下一主题

Windows Mobile 2003 Second Edition 中 ActiveSync 编程模型的增强功能

[复制链接]

该用户从未签到

1
跳转到指定楼层
发表于 2008-12-24 11:59:06 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
  简介   已经为同步服务提供程序 (SSP) 添加了附加接口。这些接口可以帮助同步服务提供程序更好地与用户进行交互。OnSSPEnable 和 OnSSPDisable 使 SSP 能够对在选项对话框中单击启用复选框的用户作出反应。如果多个 SSP 需要彼此交互,或者 SSP 需要在其被启用或禁用时通知其他进程,这将十分有用。      IReplStore2 接口使 SSP 能够在所有情况下显示设置对话框。如果 SSP 没有实现该接口,并且在显示选项对话框之前没有启用 SSP,则 ActiveSync 将不会显示设置。      这些接口可用于 ActiveSync 版本 3.7.1 及更高版本。      详细的接口说明   OnSSPEnable   这是 SSP 可以导出的一个新函数。在 ActiveSync 选项对话框中启用 SSP 时,系统将调用该函数。      该函数的原型是:      HRESULT WINAPI OnSSPEnable (HWND hwndParent);      • hwndParent 在该函数被调用时,SSP 应该用于为所显示的任何对话框提供父级窗口的 HWND。      • Return Value ActiveSync 引擎不处理返回值。该函数应该返回 S_OK。      备注:在该函数被调用之前,可能尚未调用 IReplStore::Initialize 函数,因此您不能使用任何依赖于 IReplStore::Initialize 调用的内部变量。      以下为已导出该函数的示例 .def 文件:      LIBRARY   "STSYNC"   EXPORTS       DllCanUnloadNow  PRIVATE       DllGetClassObject PRIVATE       DllRegisterServer PRIVATE       DllUnregisterServer PRIVATE       OnSSPEnable       OnSSPDisable      OnSSPDisable   这是 SSP 可以导出的一个新函数。在 ActiveSync 选项对话框中禁用 SSP 时,系统将调用该函数。      该函数使用以下原型:      HRESULT WINAPI OnSSPDisable (HWND hwndParent);      • hwndParent 在该函数被调用时,SSP 应该用于为所显示的任何对话框提供父级窗口的 HWND。      • Return Value ActiveSync 引擎不处理返回值。该函数应该返回 S_OK。      备注:在该函数被调用之前,可能尚未调用 IReplStore::Initialize 函数,因此您不能使用任何依赖于 IReplStore::Initialize 调用的内部变量。      以下为已导出该函数的示例 .def 文件:      LIBRARY   "STSYNC"   EXPORTS       DllCanUnloadNow  PRIVATE       DllGetClassObject PRIVATE       DllRegisterServer PRIVATE       DllUnregisterServer PRIVATE       OnSSPEnable       OnSSPDisable      IReplStore2   这是一个派生自 IReplStore 的新接口,它使 SSP 能够在启用之前显示其设置对话框。      该接口定义如下:      //   //=========== IReplStore2 ==============   //   DEFINE_GUID (IID_IReplStore2,      // 4a696d00-f75f-11d2-b549-00c04f5b9a11     0x4a696d00,     0xf75f,     0x11d2,     0xb5, 0x49, 0x00, 0xc0, 0x4f, 0x5b, 0x9a, 0x11   );      #undef INTERFACE   #define INTERFACE  IReplStore2   DECLARE_INTERFACE_( IReplStore2, IReplStore )   {     // *** IReplStore2 methods ***        // UI related routines     STDMETHOD(DoOptionsDialog)        ( THIS_ HWND hwndParent, LPCSTR lpszObjType,         IReplNotify * pntfy) PURE;   };   HRESULT DoOptionsDialog (HWND hwndParent, LPCSTR lpszObjType, IReplNotify * pntfy);      • hwndParent 在该函数被调用时,SSP 应该用于为所显示的任何对话框提供父级窗口的 HWND。      • lpszObjType要显示设置的文件夹的名称。      • Pntfy IReplNotify 的指针。      • Return Value该函数应该返回下列值之一。      NOERROR   User selected OK to save the changes   RERR_CANCEL   User selected Cancel      备注:在该函数被调用之前,可能尚未调用 IReplStore::Initialize 函数,因此您不能使用任何依赖于 IReplStore::Initialize 调用的内部变量。      必须将 SSP 标记为版本 3 才能使用该接口。当您注册 SSP 时,请在 HKEY CLASSES ROOT\{prog id} 下创建一个名为“Version”、值为 0x00030000 的 DWORD 注册表值。      示例:      [HKEY_CLASSES_ROOT\MS.WinCE.StockPor2]   @="StockPor"   "Display Name"="Stock Sample"   "Version"=dword:00030000:      IReplStore2 接口定义在新的 cesync.h 头文件中,该文件包含在 Developer Resources for Windows Mobile 2003 Second Edition 中。      小结   IReplStore2 接口使开发人员能够在用户启用和禁用同步服务提供程序时为其提供更为健壮的体验。该接口无须实现,因为并非所有同步服务提供程序都需要实现该功能。 <
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表