江西广告网
标题:
Windows Mobile 2003 Second Edition 中 ActiveSync 编程模型的增强功能
[打印本页]
作者:
蓝信子
时间:
2008-12-24 11:59
标题:
Windows Mobile 2003 Second Edition 中 ActiveSync 编程模型的增强功能
简介
已经为同步服务提供程序 (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 接口使开发人员能够在用户启用和禁用同步服务提供程序时为其提供更为健壮的体验。该接口无须实现,因为并非所有同步服务提供程序都需要实现该功能。 <
欢迎光临 江西广告网 (http://bbs.jxadw.com/)
Powered by Discuz! X3.2