ISyncMgrControl::UpdateEvents メソッド (syncmgr.h)

特定のハンドラーまたはアイテムに対してイベントが追加されたことを同期センターに通知します。

構文

HRESULT UpdateEvents(
  [in] LPCWSTR               pszHandlerID,
  [in] LPCWSTR               pszItemID,
  [in] SYNCMGR_CONTROL_FLAGS nControlFlags
);

パラメーター

[in] pszHandlerID

種類: LPCWSTR

項目を管理するハンドラーの一意の ID を含むバッファーへのポインター。 この文字列は、終端の null 文字を含む最大長MAX_SYNCMGR_IDです。

[in] pszItemID

種類: LPCWSTR

項目の一意の ID を含むバッファーへのポインター。 この文字列は、終端の null 文字を含む最大長MAX_SYNCMGR_IDです。 イベントが特定の項目ではなくハンドラーで発生した場合、このパラメーターは NULL にすることができます。

[in] nControlFlags

種類: SYNCMGR_CONTROL_FLAGS

更新を同期的または非同期的に実行するかどうかを指定する 、SYNCMGR_CONTROL_FLAGS 列挙の値。

戻り値

種類: HRESULT

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

解説

SYNCMGR_CF_WAITが nControlFlags パラメーターに設定されている場合、UpdateEvents は、指定したハンドラーを読み込み、ハンドラーのイベント ストアを取得し、そのストアからすべてのイベントを再読み込みするまで、UpdateEvents は返されません。 ハンドラー コレクションによってハンドラーが提供される場合、ハンドラー コレクションも読み込まれ、ハンドラーが再読み込みされます。

次の例は、ハンドラーのプロシージャによる ISyncMgrControl::UpdateEvents の使用方法を示しています。

void CMyDeviceHandler::Synchronize(...)
{
    ...
    // Add events to the event store.

    // 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 that we added events to our event store.
        // By passing NULL in pszItemID, we tell Sync Center that the event
        // occurred on the handler rather than a specific item.
        hr = pControl->UpdateEvents(s_szMyDeviceSyncHandlerID, 
                                    NULL,
                                    SYNCMGR_CF_NOWAIT);
        pControl->Release();
    }

    ...

}

要件

   
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー syncmgr.h