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

ISyncMgrConflictStore

COM
IIDcf8fc579-c396-4774-85f1-d908a831156e継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

ハンドラーが競合フォルダーに表示される競合を提供できるようにするメソッドを公開します。

解説(Remarks)

競合は、同期選択セットを完了するために選択を強制されるのではなく、必要に応じてユーザーが IShellItem のバージョンを選択できるようにするために提供されます。現在それらを競合フォルダーに表示しているという事実は、あくまで副次的なものです。

競合ストアは、その内容が変更されたときに同期センターに通知する必要があります。競合に影響を与えるメソッドが呼び出されたとき、競合に対して何かが起こると想定されることはありません。これは、競合が解決されるときも含まれます。

同期センターは、ISyncMgrHandler::GetCapabilities から返されるマスクに SYNCMGR_HCM_CONFLICT_STORE が含まれている場合、SYNCMGR_OBJECTID_ConflictStore を指定して ISyncMgrHandler::GetObject を呼び出すことで、ハンドラーに競合ストアを要求します。ハンドラーは、ISyncMgrSyncItem::GetCapabilities から返されるマスクに SYNCMGR_ICM_CONFLICT_STORE フラグを設定することで、項目でフィルター処理されたイベントストアを提供することもできます。

競合ストアに競合が追加された場合、競合フォルダーと競合数の両方を更新できるように、ハンドラー(または関連するコンポーネント)は ISyncMgrControl::UpdateConflicts を呼び出す必要があります。

メソッド 4

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

vtbl 3 HRESULT EnumConflicts(LPWSTR pszHandlerID, LPWSTR pszItemID, IEnumSyncMgrConflict** ppEnum)

指定された同期ハンドラーおよび同期項目にスコープが限定された競合を列挙します。

pszHandlerIDLPWSTRin同期ハンドラー ID への Unicode 文字列としてのポインター。
pszItemIDLPWSTRin同期項目 ID への Unicode 文字列としてのポインター。
ppEnumIEnumSyncMgrConflict**outIEnumSyncMgrConflict インターフェイスポインターのアドレス。

戻り値

型: HRESULT

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

解説(Remarks)

同期ハンドラー、同期項目、またはパートナー名が NULL の場合、競合ストアはそのパラメーターを無視します。

vtbl 4 HRESULT BindToConflict(SYNCMGR_CONFLICT_ID_INFO* pConflictIdInfo, GUID* riid, void** ppv)

IID で指定された特定の競合にバインドします。

pConflictIdInfoSYNCMGR_CONFLICT_ID_INFO*inSYNCMGR_CONFLICT_ID_INFO 構造体へのポインター。
riidGUID*in目的の競合 IID への参照。
ppvvoid**outこのメソッドが返るとき、riid で要求されたインターフェイスポインターが格納されます。

戻り値

型: HRESULT

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

解説(Remarks)

このメソッドは、競合フォルダーが、その項目識別子リスト (PIDL) へのポインターまたは解析名を指定して競合にバインドするときに使用されます。ID は、以前にストアから抽出された競合から取得されます。ISyncMgrConflict を参照してください。

vtbl 5 HRESULT RemoveConflicts(SYNCMGR_CONFLICT_ID_INFO* rgConflictIdInfo, DWORD cConflicts)

競合 ID で指定された競合のセットをストアから削除します。

rgConflictIdInfoSYNCMGR_CONFLICT_ID_INFO*inSYNCMGR_CONFLICT_ID_INFO 構造体へのポインター。
cConflictsDWORDin競合セット。

戻り値

型: HRESULT

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

解説(Remarks)

競合は、ユーザーが競合フォルダー内の競合を選択して削除することを選んだときに削除されます。

vtbl 6 HRESULT GetCount(LPWSTR pszHandlerID, LPWSTR pszItemID, DWORD* pnConflicts)

ストア内の競合の数を取得します。

pszHandlerIDLPWSTRin同期ハンドラー ID への Unicode 文字列としてのポインター。
pszItemIDLPWSTRin同期項目 ID への Unicode 文字列としてのポインター。
pnConflictsDWORD*outこのメソッドが返るとき、競合数が格納されます。

戻り値

型: HRESULT

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

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_ISyncMgrConflictStore "{CF8FC579-C396-4774-85F1-D908A831156E}"
#usecom global ISyncMgrConflictStore IID_ISyncMgrConflictStore "{}"
#comfunc global ISyncMgrConflictStore_EnumConflicts    3 wstr,wstr,sptr
#comfunc global ISyncMgrConflictStore_BindToConflict   4 var,var,sptr
#comfunc global ISyncMgrConflictStore_RemoveConflicts  5 var,int
#comfunc global ISyncMgrConflictStore_GetCount         6 wstr,wstr,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。