Win32 API 日本語リファレンス
ホームUI.Shell › ISyncMgrControl

ISyncMgrControl

COM
IID9b63616c-36b2-46bc-959f-c1593952d19b継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

アプリケーションまたはハンドラーが同期を開始または停止したり、ハンドラーやアイテムのセットへの変更を同期センターに通知したり、プロパティ値の変更を通知したりできるメソッドを公開します。

解説(Remarks)

ISyncMgrControl は同期センターによって実装されます。アプリケーションまたはハンドラーは、これを CLSID_SyncMgrControl オブジェクトとしてインスタンス化できます。このオブジェクトは Component Object Model (COM) のローカルサーバーとして実装されています。そのため、ISyncMgrControl メソッドの呼び出しにはかなりの時間がかかる可能性があります。これらの呼び出しは UI スレッドで行うべきではありません。

このインターフェイスのすべてのメソッドは、要求を同期センターにキューイングします。

ISyncMgrControlISyncMgrSynchronizeInvoke の代替です。

メソッド 15

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT StartHandlerSync(LPWSTR pszHandlerID, HWND hwndOwner, IUnknown* punk, SYNCMGR_SYNC_CONTROL_FLAGS nSyncControlFlags, ISyncMgrSyncResult* pResult)

特定のハンドラーが管理するすべてのアイテムの同期を開始します。

pszHandlerIDLPWSTRin同期するハンドラーの一意の ID を含むバッファーへのポインター。この文字列は、終端の null 文字を含めて最大長 MAX_SYNCMGR_ID です。
hwndOwnerHWNDinハンドラーが必要な UI を表示するために使用できるウィンドウのハンドル。この値は NULL にすることができます。
punkIUnknown*inSynchronize に渡される IUnknown へのポインター。このパラメーターは NULL にすることができます。
nSyncControlFlagsSYNCMGR_SYNC_CONTROL_FLAGSinSYNCMGR_SYNC_CONTROL_FLAGS 列挙型のメンバー。現在の同期とキューに入れられた同期の両方に含まれるアイテムを、キューに入れられた同期の実行時に再度同期するかどうかを指定します。
pResultISyncMgrSyncResult*inISyncMgrSyncResult のインスタンスへのポインター。その Result メソッドは、同期が成功、失敗、またはキャンセルのいずれかで終了したときに呼び出されます。Result メソッドは、ハンドラー同期の集約された状態とともに呼び出されます。このパラメーターは NULL にすることができます。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 4 HRESULT StartItemSync(LPWSTR pszHandlerID, LPWSTR* ppszItemIDs, DWORD cItems, HWND hwndOwner, IUnknown* punk, SYNCMGR_SYNC_CONTROL_FLAGS nSyncControlFlags, ISyncMgrSyncResult* pResult)

特定のハンドラーが管理する指定されたアイテムの同期を開始します。

pszHandlerIDLPWSTRinアイテムを管理するハンドラーの一意の ID を含むバッファーへのポインター。この文字列は、終端の null 文字を含めて最大長 MAX_SYNCMGR_ID です。
ppszItemIDsLPWSTR*in同期するアイテムの ID の配列を含むバッファーへのポインターのアドレス。各 ID は、終端の null 文字を含めて最大長 MAX_SYNCMGR_ID です。この配列は Synchronize に渡されます。
cItemsDWORDinppszItemIDs 内の ID の数。
hwndOwnerHWNDinアイテムが必要な UI を表示するために使用できるウィンドウのハンドル。この値は NULL にすることができます。
punkIUnknown*inSynchronize に渡される IUnknown へのポインター。このパラメーターは NULL にすることができます。
nSyncControlFlagsSYNCMGR_SYNC_CONTROL_FLAGSinSYNCMGR_SYNC_CONTROL_FLAGS 列挙型のメンバー。現在の同期とキューに入れられた同期の両方に含まれるアイテムを、キューに入れられた同期の実行時に再度同期するかどうかを指定します。
pResultISyncMgrSyncResult*inISyncMgrSyncResult のインスタンスへのポインター。その Result メソッドは、同期が成功、失敗、またはキャンセルのいずれかで終了したときに呼び出されます。Result メソッドは、ハンドラー同期の集約された状態とともに呼び出されます。このパラメーターは NULL にすることができます。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

このメソッドは UpdateItems に相当します。

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

void CMyDeviceHandler::MiscProc(...)
{
    ...

    // Get the Sync Center control object.
    ISyncMgrControl *pControl = NULL;
    
    hr = CoCreateInstance(CLSID_SyncMgrControl, 
                          CLSCTX_SERVER,
                          IID_PPV_ARGS(&pControl));
    if (SUCCEEDED(hr))
    {
        // Synchronize one sync item for the sync handler.
        hr = pControl->StartItemSync(s_szMySyncHandlerID,
                                     s_szMySyncHandlerMusicContentID,
                                     1,
                                     _hwnd,
                                     NULL,
                                     NULL);
        pControl->Release();
    }

    ...

}
vtbl 5 HRESULT StartSyncAll(HWND hwndOwner)

すべてのハンドラーが管理するすべてのアイテムを同期します。

hwndOwnerHWNDinハンドラーまたはアイテムが必要な UI を表示するために使用できるウィンドウのハンドル。この値は NULL にすることができます。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

このメソッドは UpdateAll に相当します。

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

void CMyDeviceHandler::MiscProc(...)
{
    ...

    // Get the Sync Center control object.
    ISyncMgrControl *pControl = NULL;
    
    hr = CoCreateInstance(CLSID_SyncMgrControl, 
                          CLSCTX_SERVER,
                          IID_PPV_ARGS(&pControl));
    if (SUCCEEDED(hr))
    {
        // Synchronize all sync items for all sync handlers.
        hr = pControl->StartSyncAll(_hwnd);
        pControl->Release();
    }

    ...

}
vtbl 6 HRESULT StopHandlerSync(LPWSTR pszHandlerID)

指定されたハンドラーの同期を停止します。

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

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 7 HRESULT StopItemSync(LPWSTR pszHandlerID, LPWSTR* ppszItemIDs, DWORD cItems)

特定のハンドラーが管理する指定されたアイテムの同期を停止します。

pszHandlerIDLPWSTRinハンドラーの一意の ID を含むバッファーへのポインター。この文字列は、終端の null 文字を含めて最大長 MAX_SYNCMGR_ID です。
ppszItemIDsLPWSTR*in同期を停止するアイテムの ID の配列を含むバッファーへのポインターのアドレス。各 ID は、終端の null 文字を含めて最大長 MAX_SYNCMGR_ID です。
cItemsDWORDinppszItemIDs 内の ID の数。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 8 HRESULT StopSyncAll()

すべてのハンドラーが管理するすべてのアイテムの同期を停止します。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 9 HRESULT UpdateHandlerCollection(GUID* rclsidCollectionID, SYNCMGR_CONTROL_FLAGS nControlFlags)

ハンドラーコレクションを再列挙するよう同期センターに指示するか、ハンドラーコレクション内のハンドラーのプロパティが変更されたことを通知します。

rclsidCollectionIDGUID*inハンドラーコレクションの CLSID への参照。
nControlFlagsSYNCMGR_CONTROL_FLAGSinSYNCMGR_CONTROL_FLAGS 列挙型の値。更新を同期的に行うか非同期的に行うかを指定します。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

nControlFlags パラメーターに SYNCMGR_CF_WAIT が設定されている場合、UpdateHandlerCollection は、同期センターが指定されたハンドラーコレクションを読み込み、すべてのハンドラーおよびアイテムの情報を再読み込みするまで戻りません。

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

void CMyDeviceHandler::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 that a new computer has been added.
        hr = pControl->UpdateHandlerCollection(CLSID_FRSHandlerCollection,
                                               SYNCMGR_CF_NOWAIT);
        pControl->Release();
    }

    ...

}
vtbl 10 HRESULT UpdateHandler(LPWSTR pszHandlerID, SYNCMGR_CONTROL_FLAGS nControlFlags)

ハンドラーが管理するアイテムを再列挙するよう同期センターに指示するか、ハンドラーのプロパティが変更されたことを通知します。

pszHandlerIDLPWSTRinハンドラーの一意の ID を含むバッファーへのポインター。この文字列は、終端の null 文字を含めて最大長 MAX_SYNCMGR_ID です。
nControlFlagsSYNCMGR_CONTROL_FLAGSinSYNCMGR_CONTROL_FLAGS 列挙型の値。更新を同期的に行うか非同期的に行うかを指定します。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

nControlFlags パラメーターに SYNCMGR_CF_WAIT が設定されている場合、UpdateHandler は、同期センターが指定されたハンドラーを読み込み、すべてのハンドラーおよびアイテムの情報を再読み込みするまで戻りません。ハンドラーがハンドラーコレクションによって提供されている場合は、ハンドラーを再読み込みするためにハンドラーコレクションも読み込まれます。

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

void CMyDeviceHandler::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 that properties on the handler have changed.
        hr = pControl->UpdateHandler(s_szMySyncHandlerID, SYNCMGR_CF_WAIT);
        pControl->Release();
    }

    ...

}
vtbl 11 HRESULT UpdateItem(LPWSTR pszHandlerID, LPWSTR pszItemID, SYNCMGR_CONTROL_FLAGS nControlFlags)

同期アイテムのプロパティが変更されたことを同期センターに通知します。

pszHandlerIDLPWSTRinアイテムを管理するハンドラーの一意の ID を含むバッファーへのポインター。この文字列は、終端の null 文字を含めて最大長 MAX_SYNCMGR_ID です。
pszItemIDLPWSTRinアイテムの一意の ID を含むバッファーへのポインター。この文字列は、終端の null 文字を含めて最大長 MAX_SYNCMGR_ID です。
nControlFlagsSYNCMGR_CONTROL_FLAGSinSYNCMGR_CONTROL_FLAGS 列挙型の値。更新を同期的に行うか非同期的に行うかを指定します。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

nControlFlags パラメーターに SYNCMGR_CF_WAIT が設定されている場合、UpdateItem は、同期センターが指定されたハンドラーを読み込み、すべてのハンドラーおよびアイテムの情報を再読み込みするまで戻りません。ハンドラーがハンドラーコレクションによって提供されている場合は、ハンドラーを再読み込みするためにハンドラーコレクションも読み込まれます。

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

void CMyDeviceHandler::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 that properties of the item have changed.
        hr = pControl->UpdateItem(s_szMySyncHandlerID,
                                  s_szMySyncHandlerMusicContentID,
                                  SYNCMGR_CF_WAIT);
        pControl->Release();
    }

    ...

}
vtbl 12 HRESULT UpdateEvents(LPWSTR pszHandlerID, LPWSTR pszItemID, SYNCMGR_CONTROL_FLAGS nControlFlags)

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

pszHandlerIDLPWSTRinアイテムを管理するハンドラーの一意の ID を含むバッファーへのポインター。この文字列は、終端の null 文字を含めて最大長 MAX_SYNCMGR_ID です。
pszItemIDLPWSTRinアイテムの一意の ID を含むバッファーへのポインター。この文字列は、終端の null 文字を含めて最大長 MAX_SYNCMGR_ID です。イベントが特定のアイテムではなくハンドラー上で発生した場合、このパラメーターは NULL にすることができます。
nControlFlagsSYNCMGR_CONTROL_FLAGSinSYNCMGR_CONTROL_FLAGS 列挙型の値。更新を同期的に行うか非同期的に行うかを指定します。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

nControlFlags パラメーターに SYNCMGR_CF_WAIT が設定されている場合、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();
    }

    ...

}
vtbl 13 HRESULT UpdateConflict(LPWSTR pszHandlerID, LPWSTR pszItemID, ISyncMgrConflict* pConflict, SYNCMGR_UPDATE_REASON nReason)
pszHandlerIDLPWSTRin競合が属するハンドラを識別するハンドラ ID 文字列を指定する。
pszItemIDLPWSTRin競合が属するアイテムを識別するアイテム ID 文字列を指定する。
pConflictISyncMgrConflict*in更新する競合情報を表す ISyncMgrConflict インターフェイスへのポインタである。
nReasonSYNCMGR_UPDATE_REASONin競合を更新する理由を示す SYNCMGR_UPDATE_REASON 値を指定する。
vtbl 14 HRESULT UpdateConflicts(LPWSTR pszHandlerID, LPWSTR pszItemID, SYNCMGR_CONTROL_FLAGS nControlFlags)

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

pszHandlerIDLPWSTRinアイテムを管理するハンドラーの一意の ID を含むバッファーへのポインター。この文字列は、終端の null 文字を含めて最大長 MAX_SYNCMGR_ID です。
pszItemIDLPWSTRinアイテムの一意の ID を含むバッファーへのポインター。この文字列は、終端の null 文字を含めて最大長 MAX_SYNCMGR_ID です。イベントが特定のアイテムではなくハンドラー上で発生した場合、このパラメーターは NULL にすることができます。
nControlFlagsSYNCMGR_CONTROL_FLAGSinSYNCMGR_CONTROL_FLAGS 列挙型の値。更新を同期的に行うか非同期的に行うかを指定します。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

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

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

void CMyDeviceHandler::Synchronize(...)
{
    ...
    // Add conflicts 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 conflict
        // occurred on the handler rather than a specific item.
        hr = pControl->UpdateConflicts(s_szMyDeviceSyncHandlerID, 
                                       NULL,
                                       SYNCMGR_CF_NOWAIT);
        pControl->Release();
    }

    ...

}
vtbl 15 HRESULT ActivateHandler(BOOL fActivate, LPWSTR pszHandlerID, HWND hwndOwner, SYNCMGR_CONTROL_FLAGS nControlFlags)

ハンドラーをアクティブ化または非アクティブ化します。

fActivateBOOLinアクティブ化する場合は TRUE、非アクティブ化する場合は FALSE
pszHandlerIDLPWSTRinハンドラーの一意の ID を含むバッファーへのポインター。この文字列は、終端の null 文字を含めて最大長 MAX_SYNCMGR_ID です。
hwndOwnerHWNDinハンドラーが必要な UI を表示するために使用できるウィンドウのハンドル。この値は NULL にすることができます。
nControlFlagsSYNCMGR_CONTROL_FLAGSinSYNCMGR_CONTROL_FLAGS 列挙型の値。ハンドラーのアクティブ化または非アクティブ化を同期的に行うか非同期的に行うかを指定します。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

アクティブなハンドラーは同期センターフォルダーに表示され、非アクティブなハンドラーは同期セットアップフォルダーに表示されます。

指定されたハンドラーが GetCapabilities メソッドから返されるマスクに SYNCMGR_HCM_QUERY_BEFORE_ACTIVATE または SYNCMGR_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();
    }

    ...

}
vtbl 16 HRESULT EnableHandler(BOOL fEnable, LPWSTR pszHandlerID, HWND hwndOwner, SYNCMGR_CONTROL_FLAGS nControlFlags)

ハンドラーを有効または無効にします。

fEnableBOOLin有効にする場合は TRUE、無効にする場合は FALSE
pszHandlerIDLPWSTRinハンドラーの一意の ID を含むバッファーへのポインター。この文字列は、終端の null 文字を含めて最大長 MAX_SYNCMGR_ID です。
hwndOwnerHWNDinハンドラーが必要な UI を表示するために使用できるウィンドウのハンドル。この値は NULL にすることができます。
nControlFlagsSYNCMGR_CONTROL_FLAGSinSYNCMGR_CONTROL_FLAGS 列挙型の値。ハンドラーの有効化または無効化を同期的に行うか非同期的に行うかを指定します。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

アクティブなハンドラーは同期センターフォルダーに表示され、非アクティブなハンドラーは同期セットアップフォルダーに表示されます。

指定されたハンドラーが GetCapabilities メソッドから返されるマスクに SYNCMGR_HCM_QUERY_BEFORE_ENABLE または SYNCMGR_HCM_QUERY_BEFORE_DISABLE を返す場合、ハンドラーが有効化または無効化される前に確認ダイアログがユーザーに表示されます。照会 UI が要求されない場合、またはユーザーが操作を確認した後、ハンドラーの Enable メソッドが呼び出されます。

nControlFlags パラメーターに SYNCMGR_CF_WAIT が設定されている場合、EnableHandler は、同期センターがこの通知を処理するまで戻りません。

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

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 enable our handler.
        hr = pControl->EnableHandler(TRUE, 
                                     s_szMySyncHandlerID, 
                                     hwnd,
                                     SYNCMGR_CF_NOWAIT);
        pControl->Release();
    }

    ...

}
vtbl 17 HRESULT EnableItem(BOOL fEnable, LPWSTR pszHandlerID, LPWSTR pszItemID, HWND hwndOwner, SYNCMGR_CONTROL_FLAGS nControlFlags)

指定されたハンドラーが管理する同期アイテムを有効または無効にします。

fEnableBOOLin有効にする場合は TRUE、無効にする場合は FALSE
pszHandlerIDLPWSTRinハンドラーの一意の ID を含むバッファーへのポインター。この文字列は、終端の null 文字を含めて最大長 MAX_SYNCMGR_ID です。
pszItemIDLPWSTRinアイテムの一意の ID を含むバッファーへのポインター。この文字列は、終端の null 文字を含めて最大長 MAX_SYNCMGR_ID です。
hwndOwnerHWNDinアイテムが必要な UI を表示するために使用できるウィンドウのハンドル。この値は NULL にすることができます。
nControlFlagsSYNCMGR_CONTROL_FLAGSinSYNCMGR_CONTROL_FLAGS 列挙型の値。アイテムの有効化または無効化を同期的に行うか非同期的に行うかを指定します。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

有効なアイテムとは、同期可能なアイテムのことです。

指定されたアイテムが GetCapabilities メソッドから返されるマスクに SYNCMGR_ICM_QUERY_BEFORE_ENABLE または SYNCMGR_ICM_QUERY_BEFORE_DISABLE を返す場合、アイテムが有効化または無効化される前に確認ダイアログボックスがユーザーに表示されます。照会 UI が要求されない場合、またはユーザーが操作を確認した後、アイテムの Enable メソッドが呼び出されます。

nControlFlags パラメーターに SYNCMGR_CF_WAIT が設定されている場合、EnableItem は、同期センターがこの通知を処理するまで戻りません。

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

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 disable the item.
        hr = pControl->EnableItem(FALSE, 
                                  s_szMySyncHandlerID,
                                  s_szMySyncHandlerMusicContentID, 
                                  hwnd,
                                  SYNCMGR_CF_WAIT);
        pControl->Release();
    }

    ...

}
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_ISyncMgrControl "{9B63616C-36B2-46BC-959F-C1593952D19B}"
#usecom global ISyncMgrControl IID_ISyncMgrControl "{1A1F4206-0688-4E7F-BE03-D82EC69DF9A5}"
#comfunc global ISyncMgrControl_StartHandlerSync         3 wstr,sptr,sptr,int,sptr
#comfunc global ISyncMgrControl_StartItemSync            4 wstr,var,int,sptr,sptr,int,sptr
#comfunc global ISyncMgrControl_StartSyncAll             5 sptr
#comfunc global ISyncMgrControl_StopHandlerSync          6 wstr
#comfunc global ISyncMgrControl_StopItemSync             7 wstr,var,int
#comfunc global ISyncMgrControl_StopSyncAll              8
#comfunc global ISyncMgrControl_UpdateHandlerCollection  9 var,int
#comfunc global ISyncMgrControl_UpdateHandler            10 wstr,int
#comfunc global ISyncMgrControl_UpdateItem               11 wstr,wstr,int
#comfunc global ISyncMgrControl_UpdateEvents             12 wstr,wstr,int
#comfunc global ISyncMgrControl_UpdateConflict           13 wstr,wstr,sptr,int
#comfunc global ISyncMgrControl_UpdateConflicts          14 wstr,wstr,int
#comfunc global ISyncMgrControl_ActivateHandler          15 int,wstr,sptr,int
#comfunc global ISyncMgrControl_EnableHandler            16 int,wstr,sptr,int
#comfunc global ISyncMgrControl_EnableItem               17 int,wstr,wstr,sptr,int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。