次の方法で共有


ISyncMgrHandler::Activate メソッド (syncmgr.h)

ハンドラーのアクティブ化または非アクティブ化を要求します。 アクティブなハンドラーは同期できます。非アクティブなハンドラーはできません。

構文

HRESULT Activate(
  [in] BOOL fActivate
);

パラメーター

[in] fActivate

種類: BOOL

アクティブにする場合は TRUE アクティブ化する場合は FALSE。

戻り値

型: HRESULT

このメソッドは、成功すると S_OK を返します。 そうでない場合は、HRESULT エラー コードを返します。

解説

アクティブなハンドラーが Sync Center フォルダーに表示され、同期できます。 非アクティブなハンドラーは同期セットアップ フォルダーに表示され、同期する前にアクティブにする必要があります (同期センター フォルダーに移動します)。

アクティブ化の状態は、有効な状態と混同しないでください。 アクティブなハンドラーは無効にすることができます。 これは、同期センター フォルダーにまだ表示されますが、同期できないことを意味します。

Sync Center は、次の 2 つのインスタンスでこのメソッドを呼び出します。

  • ユーザーが [セットアップの同期] フォルダーでハンドラーを選択し、その セットアップ タスクを起動するとします。 ハンドラーが SYNCMGR_OBJECTID_QueryBeforeActivate オブジェクトをサポートしている場合、このメソッドは、ハンドラーをアクティブ化するかどうかをユーザーに確認するダイアログで構成される UI 操作が成功した場合にのみ呼び出されます。
  • ユーザーが Sync Center フォルダー内のハンドラーを選択し、 その Delete タスクを起動したとき(ただし、ハンドラーが 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