ISyncMgrControl::ActivateHandler 方法 (syncmgr.h)

激活或停用处理程序。

语法

HRESULT ActivateHandler(
  [in] BOOL                  fActivate,
  [in] LPCWSTR               pszHandlerID,
  [in] HWND                  hwndOwner,
  [in] SYNCMGR_CONTROL_FLAGS nControlFlags
);

参数

[in] fActivate

类型: BOOL

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

[in] pszHandlerID

类型: LPCWSTR

指向包含处理程序的唯一 ID 的缓冲区的指针。 此字符串的最大长度MAX_SYNCMGR_ID包括终止 null 字符。

[in] hwndOwner

类型:HWND

窗口的句柄,处理程序可以使用该句柄来显示任何必要的 UI。 此值可以为 NULL

[in] nControlFlags

类型: SYNCMGR_CONTROL_FLAGS

SYNCMGR_CONTROL_FLAGS枚举中的值,该值指定是应以同步还是异步方式执行处理程序的激活或停用。

返回值

类型: HRESULT

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

注解

活动处理程序显示在“同步中心”文件夹中;同步安装程序文件夹中会显示一个非活动处理程序。

如果指定的处理程序在 GetCapabilities 方法返回的掩码中返回SYNCMGR_HCM_QUERY_BEFORE_ACTIVATESYNCMGR_HCM_QUERY_BEFORE_DEACTIVATE,则会在激活或停用处理程序之前请求查询操作。 如果未请求查询 UI,或者在用户确认操作后,将调用处理程序的 Activate 方法。

如果在 nControlFlags 参数中设置了SYNCMGR_CF_WAIT,则在同步中心处理此通知之前, ActivateHandler 不会返回。

示例

以下示例演示处理程序过程使用 ISyncMgrControl::ActivateHandler

void MiscProc(...)
{
    ...

    // Get the Sync Center control object.
    ISyncMgrControl *pControl = NULL;
    
    hr = CoCreateInstance(CLSID_SyncMgrControl, 
                          CLSCTX_SERVER, 
                          IID_PPV_ARGS(&pControl));
    if (SUCCEEDED(hr))
    {
        // Tell Sync Center to activate our handler.
        hr = pControl->ActivateHandler(TRUE, 
                                       s_szMySyncHandlerID, 
                                       hwndOwner,
                                       SYNCMGR_CF_NOWAIT);
        pControl->Release();
    }

    ...

}

要求

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