ISyncMgrConflictResolveInfo
COM公式ドキュメント
同期マネージャーの競合解決に関する情報を取得および設定するメソッドを公開します。
メソッド 8
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
競合の集合のうち、どの競合が解決中であるかに関する情報を取得します。
| pnCurrentConflict | DWORD* | out | このメソッドが返るとき、集合の中で解決中の競合のインデックスへのポインターが格納されます。 |
| pcConflicts | DWORD* | out | このメソッドが返るとき、解決中の競合の数へのポインターが格納されます。 |
| pcRemainingForApplyToAll | DWORD* | out | このメソッドが返るとき、「すべてに適用」の応答が適用される、残りの競合の数へのポインターが格納されます。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
同期マネージャーの競合解決における次のステップとしてプレゼンターが行おうとしている内容を取得します。
| pnPresenterNextStep | SYNCMGR_PRESENTER_NEXT_STEP* | out | このメソッドが返るとき、競合解決における次のステップへのポインターが格納されます。SYNCMGR_PRESENTER_NEXT_STEP 列挙型のメンバーのいずれかです。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
どのような選択が行われたか、およびその選択を集合内の以降のすべての競合に適用するかどうかを取得します。
| pnPresenterChoice | SYNCMGR_PRESENTER_CHOICE* | out | このメソッドが返るとき、競合解決について行われた選択へのポインターが格納されます。SYNCMGR_PRESENTER_CHOICE 列挙型のメンバーのいずれかです。 |
| pfApplyToAll | BOOL* | out | このメソッドが返るとき、フラグへのポインターが格納されます。TRUE の場合、指定された選択は集合内の以降のすべての競合に適用され、この選択の適用方法に関する情報は ISyncMgrConflictResolveInfo::GetItemChoice および ISyncMgrConflictResolveInfo::GetItemChoiceCount にあります。それ以外の場合は FALSE です。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
ユーザーが保持したい項目の数を取得します。
| pcChoices | DWORD* | out | このメソッドが返るとき、ユーザーが保持したい項目の数へのポインターが格納されます。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
ユーザーが保持したい項目のインデックスを取得します。
| iChoice | DWORD | in | ユーザーが保持したい項目です。 |
| piChoiceIndex | DWORD* | out | 競合の項目配列へのインデックスです。ユーザーが同一ハンドラーからの同じ種類の選択されたすべての競合に同じ操作を適用することを選んだ場合、この値は同じ競合集合内の以降の競合に対してリゾルバーに渡されます。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
同期マネージャーの競合解決における次のステップとしてプレゼンターが行おうとしている内容を設定します。
| nPresenterNextStep | SYNCMGR_PRESENTER_NEXT_STEP | in | 競合解決における次のステップです。SYNCMGR_PRESENTER_NEXT_STEP 列挙型のメンバーのいずれかです。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
同期マネージャーの競合解決についてどのような選択が行われたか、およびその選択を集合内の以降のすべての競合に適用するかどうかを設定します。
| nPresenterChoice | SYNCMGR_PRESENTER_CHOICE | in | 競合解決について行われた選択です。SYNCMGR_PRESENTER_CHOICE 列挙型のメンバーのいずれかです。 |
| fApplyToAll | BOOL | in | TRUE の場合、指定された選択を集合内の以降のすべての競合に適用します。この場合、ISyncMgrConflictResolveInfo::SetItemChoices も呼び出す必要があります。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
ユーザーが保持したい項目を表すインデックスの配列を設定します。このメソッドは、ユーザーが同一ハンドラーからの同じ種類の選択されたすべての競合に同じ操作を適用することを選んだ場合に使用されます。
| prgiConflictItemIndexes | DWORD* | inout | ユーザーが保持したい項目のインデックスの配列です。 |
| cChoices | DWORD | in | prgiConflictItemIndexes 内の項目選択の数です。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_ISyncMgrConflictResolveInfo "{C405A219-25A2-442E-8743-B845A2CEE93F}" #usecom global ISyncMgrConflictResolveInfo IID_ISyncMgrConflictResolveInfo "{}" #comfunc global ISyncMgrConflictResolveInfo_GetIterationInfo 3 var,var,var #comfunc global ISyncMgrConflictResolveInfo_GetPresenterNextStep 4 var #comfunc global ISyncMgrConflictResolveInfo_GetPresenterChoice 5 var,var #comfunc global ISyncMgrConflictResolveInfo_GetItemChoiceCount 6 var #comfunc global ISyncMgrConflictResolveInfo_GetItemChoice 7 int,var #comfunc global ISyncMgrConflictResolveInfo_SetPresenterNextStep 8 int #comfunc global ISyncMgrConflictResolveInfo_SetPresenterChoice 9 int,int #comfunc global ISyncMgrConflictResolveInfo_SetItemChoices 10 var,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_ISyncMgrConflictResolveInfo "{C405A219-25A2-442E-8743-B845A2CEE93F}" #usecom global ISyncMgrConflictResolveInfo IID_ISyncMgrConflictResolveInfo "{}" #comfunc global ISyncMgrConflictResolveInfo_GetIterationInfo 3 sptr,sptr,sptr #comfunc global ISyncMgrConflictResolveInfo_GetPresenterNextStep 4 sptr #comfunc global ISyncMgrConflictResolveInfo_GetPresenterChoice 5 sptr,sptr #comfunc global ISyncMgrConflictResolveInfo_GetItemChoiceCount 6 sptr #comfunc global ISyncMgrConflictResolveInfo_GetItemChoice 7 int,sptr #comfunc global ISyncMgrConflictResolveInfo_SetPresenterNextStep 8 int #comfunc global ISyncMgrConflictResolveInfo_SetPresenterChoice 9 int,int #comfunc global ISyncMgrConflictResolveInfo_SetItemChoices 10 sptr,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。