Chinaunix首页 | 论坛 | 博客
  • 博客访问: 646008
  • 博文数量: 751
  • 博客积分: 5000
  • 博客等级: 大校
  • 技术积分: 4990
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-28 09:48
文章分类

全部博文(751)

文章存档

2011年(1)

2008年(750)

我的朋友

分类:

2008-10-28 09:49:37


  简介
  已经为同步服务提供程序 (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 Mobile 2003 Second Edition 中。
  
  小结
  IReplStore2 接口使开发人员能够在用户启用和禁用同步服务提供程序时为其提供更为健壮的体验。该接口无须实现,因为并非所有同步服务提供程序都需要实现该功能。
【责编:admin】

--------------------next---------------------

阅读(308) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~