ISyncMgrHandler::Activate 方法 (syncmgr.h)

请求激活或停用处理程序。 可以同步活动处理程序;非活动处理程序不能。

语法

HRESULT Activate(
  [in] BOOL fActivate
);

参数

[in] fActivate

类型: BOOL

若要激活,则为 TRUE;如果为 FALSE,则停用。

返回值

类型: HRESULT

如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。

注解

活动处理程序显示在同步中心文件夹中,可以同步。 非活动处理程序显示在“同步安装程序”文件夹中,必须激活 (将其移动到同步中心文件夹) ,然后才能进行同步。

激活状态不应与已启用状态混淆。 可以禁用活动处理程序。 这意味着它仍显示在“同步中心”文件夹中,但无法同步。

同步中心在以下两个实例中调用此方法。

  • 当用户选择“同步设置”文件夹中的处理程序并启动其 “安装” 任务时。 如果处理程序支持 SYNCMGR_OBJECTID_QueryBeforeActivate 对象,则仅当 UI 操作(由要求用户确认是否要激活处理程序的对话框组成)成功时,才会调用此方法。
  • 当用户选择“同步中心”文件夹中的处理程序并启动其 “删除” 任务时,但前提是处理程序尚未设置 SYNCMGR_HPM_PREVENT_DEACTIVATE 标志。 如果处理程序支持 SYNCMGR_OBJECTID_QueryBeforeDeactivate 对象,则只有在 UI 操作成功时才会调用此方法。
如果在 ISyncMgrHandler::GetCapabilities 检索的值中设置了SYNCMGR_HPM_PREVENT_ACTIVATE标志,则调用此方法请求激活处理程序将失败。

可以通过调用 IsActive 找到单个处理程序的激活状态。

如果处理程序在激活时不需要执行任何操作,它可以返回S_OK或E_NOTIMPL,如以下示例所示。

示例

以下示例演示此方法的简单实现。

STDMETHODIMP CMyDeviceHandler::Activate(__in BOOL fActivate)
{
    return E_NOTIMPL;
}

要求

   
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 syncmgr.h

另请参阅

ISyncMgrHandler

ISyncMgrHandler::GetObject

ISyncMgrUIOperation::Run