ISyncChange
COM公式ドキュメント
アイテムに対する変更を表します。
メソッド 10
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
この変更の発生元となったレプリカの ID を取得します。
| pbReplicaId | BYTE* | inout | この変更の発生元となったレプリカの ID を返します。 |
| pcbIdSize | DWORD* | inout | pbReplicaId のバイト数を指定します。pbReplicaId が小さすぎる場合は ID の取得に必要なバイト数を返し、それ以外の場合は書き込まれたバイト数を返します。 |
戻り値
戻り値には、次の表に示す値が含まれます (ただし、これらに限定されません)。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| ポインターが無効です。 | |
|
pbReplicaId が小さすぎます。この場合、必要なバイト数が pcbIdSize に返されます。 |
変更されたアイテムの ID を取得します。
| pbRootItemId | BYTE* | inout | アイテムの ID を返します。 |
| pcbIdSize | DWORD* | inout | pbRootItemId のバイト数を指定します。pbRootItemId が小さすぎる場合は ID の取得に必要なバイト数を返し、それ以外の場合は書き込まれたバイト数を返します。 |
戻り値
戻り値には、次の表に示す値が含まれます (ただし、これらに限定されません)。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| ポインターが無効です。 | |
|
pbRootItemId が小さすぎます。この場合、必要なバイト数が pcbIdSize に返されます。 |
この変更に関連付けられているバージョンを取得します。
| pbCurrentReplicaId | BYTE* | in | この変更を所有するレプリカの ID。ID の形式は、プロバイダーの ID_PARAMETERS プロパティで指定された形式と一致している必要があります。 |
| pVersion | SYNC_VERSION* | inout | アイテムの変更バージョンを返します。 |
戻り値
戻り値には、次の表に示す値が含まれます (ただし、これらに限定されません)。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| ポインターが無効です。 | |
| pbCurrentReplicaId が正しいレプリカ ID ではありません。 | |
|
アイテムは忘却されています。 |
|
pbCurrentReplicaId が、プロバイダーの ID 形式スキーマで指定された形式ではありません。 |
|
アイテムに変更単位 (change unit) が含まれています。 |
変更されたアイテムの作成バージョンを取得します。
| pbCurrentReplicaId | BYTE* | in | この変更を所有するレプリカの ID。ID の形式は、プロバイダーの ID_PARAMETERS プロパティで指定された形式と一致している必要があります。 |
| pVersion | SYNC_VERSION* | inout | アイテムの作成バージョンを返します。 |
戻り値
戻り値には、次の表に示す値が含まれます (ただし、これらに限定されません)。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| ポインターが無効です。 | |
| pbCurrentReplicaId が正しいレプリカ ID ではありません。 | |
|
pbCurrentReplicaId が、プロバイダーの ID 形式スキーマで指定された形式ではありません。 |
この変更に関連付けられているフラグを取得します。
| pdwFlags | DWORD* | inout | この変更に関連付けられているフラグを返します。これは SYNC_CHANGE_FLAG 値の組み合わせになります (「解説」を参照)。 |
戻り値
解説(Remarks)
次の表は、ソースプロバイダーと宛先プロバイダーがこのプロパティに使用できる値を示しています。
| SYNC_CHANGE_FLAG の値 | プロバイダー | 意味 |
|---|---|---|
| SYNC_CHANGE_FLAG_DELETED | ソースまたは宛先 | アイテムは以前はレプリカに存在していましたが、削除されました。 |
| SYNC_CHANGE_FLAG_DOES_NOT_EXIST | 宛先のみ | アイテムは宛先レプリカに存在しません。 |
この変更の作業量の見積もりを取得します。
| pdwWork | DWORD* | inout | この変更の作業量の見積もり。既定値は 0 です。 |
戻り値
解説(Remarks)
作業量の見積もりは、バッチまたはセッション全体に対して見積もられた作業量の一部です。
作業量の見積もりは、ISyncChange オブジェクトがソースプロバイダーからの変更を表す場合にのみ意味を持ちます。
この変更に含まれる変更単位を列挙できるオブジェクトを取得します。
| ppEnum | IEnumSyncChangeUnits** | out | 変更単位の列挙子を返します。この変更に変更単位が含まれていない場合は NULL を返します。 |
戻り値
戻り値には、次の表に示す値が含まれます (ただし、これらに限定されません)。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| ポインターが無効です。 | |
|
この変更には変更単位が含まれていません。 |
この変更の made-with ナレッジを取得します。
| ppMadeWithKnowledge | ISyncKnowledge** | out | この変更の made-with ナレッジを返します。変更の made-with ナレッジは、通常、この変更が行われた時点でレプリカが保持していたナレッジです。このナレッジは、ISyncChange オブジェクトがソースプロバイダーからの変更を表す場合にのみ意味を持ちます。 |
戻り値
戻り値には、次の表に示す値が含まれます (ただし、これらに限定されません)。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| ポインターが無効です。 | |
|
このアイテムには made-with ナレッジが含まれていません。 |
この変更がレプリカのアイテムストアに適用されたときに、そのレプリカが習得するナレッジを取得します。
| ppLearnedKnowledge | ISyncKnowledge** | out | この変更がレプリカのアイテムストアに適用されたときに、そのレプリカが習得するナレッジを返します。このナレッジは、レプリカの現在のナレッジが、この変更を含む変更バッチの前提条件ナレッジを含んでいる場合にのみ有効です。このナレッジは、ISyncChange オブジェクトがソースプロバイダーからの変更を表す場合にのみ意味を持ちます。 |
戻り値
戻り値には、次の表に示す値が含まれます (ただし、これらに限定されません)。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| ポインターが無効です。 | |
| pbCurrentReplicaId が正しいレプリカ ID ではない場合。 | |
|
変更が変更バッチグループに追加されていない場合、または変更バッチグループが終了されていない場合。 |
解説(Remarks)
GetLearnedKnowledge は、カスタムの変更適用処理 (change applier) を使用するプロバイダーで利用できます。
この変更の作業量の見積もりを設定します。
| dwWork | DWORD | in | この変更の作業量の見積もり。 |
戻り値
戻り値には、次の表に示す値が含まれます (ただし、これらに限定されません)。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
作業量の見積もりは、バッチまたはセッション全体に対して見積もられた作業量の一部です。
作業量の見積もりは、ISyncChange オブジェクトがソースプロバイダーからの変更を表す場合にのみ意味を持ちます。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_ISyncChange "{A1952BEB-0F6B-4711-B136-01DA85B968A6}" #usecom global ISyncChange IID_ISyncChange "{}" #comfunc global ISyncChange_GetOwnerReplicaId 3 var,var #comfunc global ISyncChange_GetRootItemId 4 var,var #comfunc global ISyncChange_GetChangeVersion 5 var,var #comfunc global ISyncChange_GetCreationVersion 6 var,var #comfunc global ISyncChange_GetFlags 7 var #comfunc global ISyncChange_GetWorkEstimate 8 var #comfunc global ISyncChange_GetChangeUnits 9 sptr #comfunc global ISyncChange_GetMadeWithKnowledge 10 sptr #comfunc global ISyncChange_GetLearnedKnowledge 11 sptr #comfunc global ISyncChange_SetWorkEstimate 12 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_ISyncChange "{A1952BEB-0F6B-4711-B136-01DA85B968A6}" #usecom global ISyncChange IID_ISyncChange "{}" #comfunc global ISyncChange_GetOwnerReplicaId 3 sptr,sptr #comfunc global ISyncChange_GetRootItemId 4 sptr,sptr #comfunc global ISyncChange_GetChangeVersion 5 sptr,sptr #comfunc global ISyncChange_GetCreationVersion 6 sptr,sptr #comfunc global ISyncChange_GetFlags 7 sptr #comfunc global ISyncChange_GetWorkEstimate 8 sptr #comfunc global ISyncChange_GetChangeUnits 9 sptr #comfunc global ISyncChange_GetMadeWithKnowledge 10 sptr #comfunc global ISyncChange_GetLearnedKnowledge 11 sptr #comfunc global ISyncChange_SetWorkEstimate 12 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。