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

ISyncMgrConflict

COM
IID9c204249-c443-4ba4-85ed-c972681db137継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

競合ストアから取得した競合に関する情報を提供し、その競合を解決できるようにするメソッドを公開します。

メソッド 5

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

vtbl 3 HRESULT GetProperty(PROPERTYKEY* propkey, PROPVARIANT* ppropvar)

プロパティキーを指定して、競合のプロパティを取得します。

propkeyPROPERTYKEY*in

取得するプロパティのプロパティキーへの参照です。ここには任意のプロパティキーを指定でき、以下の値を含みますが、これらに限定されません。

PKEY_ItemNameDisplay

競合の名前。

PKEY_Sync_ConflictDescription

競合の概要。

PKEY_Sync_HandlerID

競合を作成した同期ハンドラー。

PKEY_Sync_ItemID

競合を作成した同期アイテム。

PKEY_DateModified

競合が検出された時刻。

ppropvarPROPVARIANT*outこのメソッドが返るとき、要求されたプロパティを格納する PROPVARIANT 構造体が格納されます。

戻り値

型: HRESULT

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

解説(Remarks)

返されるプロパティは競合自体のプロパティであり、競合している IShellItems のプロパティではありません。

propkey で参照される PROPERTYKEY がプロパティストアに存在しない場合、このメソッドは S_OK を返し、ppropvar が指す構造体の vt メンバーは VT_EMPTY に設定されます。

vtbl 4 HRESULT GetConflictIdInfo(SYNCMGR_CONFLICT_ID_INFO* pConflictIdInfo)

競合ストア内の競合を識別する情報を取得します。

pConflictIdInfoSYNCMGR_CONFLICT_ID_INFO*out競合 ID 情報構造体へのポインターです。SYNCMGR_CONFLICT_ID_INFO を参照してください。

戻り値

型: HRESULT

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

解説(Remarks)

注意 各メンバーは CoTaskMemAlloc を使用して割り当てる必要があります。各メンバーは CoTaskMemFree を使用して解放してください。
このメソッドには 2 つの不透明なブロブ (opaque blob) が含まれます。1 つは競合ストア内の競合を一意に識別する ID です。もう 1 つは競合とともに格納されるオプションの追加情報で、BindToConflictRemoveConflicts で競合オブジェクトを作成する際に実装で使用される場合があります。

ID ブロブのサイズは短く保つ必要があります。これは、ID が競合のアイテム識別子リストへのポインター (PIDL) または解析名の内部に埋め込まれる場合があるためです。

vtbl 5 HRESULT GetItemsArray(ISyncMgrConflictItems** ppArray)

競合アイテムの配列を取得します。

ppArrayISyncMgrConflictItems**outISyncMgrConflictItems 配列へのポインターのアドレスです。

戻り値

型: HRESULT

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

vtbl 6 HRESULT Resolve(ISyncMgrConflictResolveInfo* pResolveInfo)

独自の同期ハンドラーを使用して競合を解決し、UI を制御します。

pResolveInfoISyncMgrConflictResolveInfo*inISyncMgrConflictResolveInfo へのポインターです。

戻り値

型: HRESULT

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

解説(Remarks)

競合が解決された後、ストアは UpdateConflicts を呼び出して、競合が削除されたことを同期センターに通知する必要があることに注意してください。ストアが変更を同期センターに通知するまで、競合は依然として存在すると見なされます。ユーザーが選択できる解決方法の選択肢は、ISyncMgrConflictResolveInfo を通じて利用できます。

vtbl 7 HRESULT GetResolutionHandler(GUID* riid, void** ppvResolutionHandler)

競合の解決ハンドラーを取得します。

riidGUID*in解決ハンドラーの ID への参照です。
ppvResolutionHandlervoid**outこのメソッドが返るとき、riid で要求されたインターフェイスポインターが格納されます。

戻り値

型: 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_ISyncMgrConflict "{9C204249-C443-4BA4-85ED-C972681DB137}"
#usecom global ISyncMgrConflict IID_ISyncMgrConflict "{}"
#comfunc global ISyncMgrConflict_GetProperty           3 var,var
#comfunc global ISyncMgrConflict_GetConflictIdInfo     4 var
#comfunc global ISyncMgrConflict_GetItemsArray         5 sptr
#comfunc global ISyncMgrConflict_Resolve               6 sptr
#comfunc global ISyncMgrConflict_GetResolutionHandler  7 var,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。