ISyncSessionState
COM公式ドキュメント
現在の同期セッションに関する情報を表します。
メソッド 7
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
同期セッションがキャンセルされたかどうかを示します。
| pfIsCanceled | BOOL* | inout | 同期セッションがキャンセルされている場合は TRUE を返します。それ以外の場合は FALSE を返します。 |
戻り値
戻り値として返される可能性のあるコードには、次の表に示す値が含まれますが、これらに限定されません。
| リターン コード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| 無効なポインターです。 |
シリアル化された変更適用オブジェクト (change applier) 用に格納されたデータを取得します。
| pbChangeApplierInfo | BYTE* | inout | シリアル化された変更適用オブジェクトのデータを返します。 |
| pcbChangeApplierInfo | DWORD* | inout | pbChangeApplierInfo のバイト数を指定します。pcbChangeApplierInfo が小さすぎる場合は、変更適用オブジェクトのデータの取得に必要なバイト数を返します。それ以外の場合は、書き込まれたバイト数を返します。 |
戻り値
戻り値として返される可能性のあるコードには、次の表に示す値が含まれますが、これらに限定されません。
| リターン コード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| 無効なポインターです。 | |
|
pbChangeApplierInfo が小さすぎます。この場合、必要なバイト数が pcbChangeApplierInfo に返されます。 |
シリアル化された変更適用オブジェクト (change applier) のデータを格納します。
| pbChangeApplierInfo | BYTE* | in | シリアル化された変更適用オブジェクトのデータ。 |
| cbChangeApplierInfo | DWORD | in | pbChangeApplierInfo のバイト数を指定します。 |
戻り値
戻り値として返される可能性のあるコードには、次の表に示す値が含まれますが、これらに限定されません。
| リターン コード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| 無効なポインターです。 | |
| pbChangeApplierInfo が NULL ではなく、かつ cbChangeApplierInfo が 0 です。 | |
|
シリアル化されたデータが有効ではありません。 |
セッションが忘却されたナレッジの回復 (forgotten knowledge recovery) を実行しているときに、回復範囲の下限を取得します。
| pbRangeStart | BYTE* | inout | セッションが忘却されたナレッジの回復を実行しているときの、回復範囲の下限を返します。 |
| pcbRangeStart | DWORD* | inout | pbRangeStart のバイト数を指定します。pcbRangeStart が小さすぎる場合は、範囲の値の取得に必要なバイト数を返します。それ以外の場合は、書き込まれたバイト数を返します。 |
戻り値
戻り値として返される可能性のあるコードには、次の表に示す値が含まれますが、これらに限定されません。
| リターン コード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| 無効なポインターです。 | |
|
pcbRangeStart が小さすぎます。この場合、必要なバイト数が pcbRangeStart に返されます。 |
セッションが忘却されたナレッジの回復 (forgotten knowledge recovery) を実行しているときに、回復範囲の上限を取得します。
| pbRangeEnd | BYTE* | inout | セッションが忘却されたナレッジの回復を実行しているときの、回復範囲の上限を返します。 |
| pcbRangeEnd | DWORD* | inout | pbRangeEnd のバイト数を指定します。pcbRangeEnd が小さすぎる場合は、範囲の値の取得に必要なバイト数を返します。それ以外の場合は、書き込まれたバイト数を返します。 |
戻り値
戻り値として返される可能性のあるコードには、次の表に示す値が含まれますが、これらに限定されません。
| リターン コード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| 無効なポインターです。 | |
|
pcbRangeEnd が小さすぎます。この場合、必要なバイト数が pcbRangeEnd に返されます。 |
セッションが忘却されたナレッジの回復 (forgotten knowledge recovery) を実行しているときの回復範囲を設定します。
| pRange | SYNC_RANGE* | in | 回復対象となる ID の範囲を定義する下限と上限。 |
戻り値
戻り値として返される可能性のあるコードには、次の表に示す値が含まれますが、これらに限定されません。
| リターン コード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| 無効なポインターです。 | |
|
pRange 内のアイテム ID が、プロバイダーの ID 形式スキーマで指定された形式ではありません。 |
同期の進行状況をアプリケーションに報告します。
| provider | SYNC_PROVIDER_ROLE | in | このイベントを送信するプロバイダーの役割。 |
| syncStage | SYNC_PROGRESS_STAGE | in | 同期セッションの現在のステージ。 |
| dwCompletedWork | DWORD | in | セッションで現在完了している作業量。この値は dwTotalWork の一部として解釈されます。 |
| dwTotalWork | DWORD | in | セッション全体の作業量。 |
戻り値
戻り値として返される可能性のあるコードには、次の表に示す値が含まれますが、これらに限定されません。
| リターン コード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| provider または syncStage が有効な値ではありません。 |
解説(Remarks)
このメソッドを使用すると、カスタムの進行状況をアプリケーションに報告できます。プロバイダーがこのメソッドを呼び出すと、ISyncCallback::OnProgress イベントが発生します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_ISyncSessionState "{B8A940FE-9F01-483B-9434-C37D361225D9}" #usecom global ISyncSessionState IID_ISyncSessionState "{}" #comfunc global ISyncSessionState_IsCanceled 3 var #comfunc global ISyncSessionState_GetInfoForChangeApplication 4 var,var #comfunc global ISyncSessionState_LoadInfoFromChangeApplication 5 var,int #comfunc global ISyncSessionState_GetForgottenKnowledgeRecoveryRangeStart 6 var,var #comfunc global ISyncSessionState_GetForgottenKnowledgeRecoveryRangeEnd 7 var,var #comfunc global ISyncSessionState_SetForgottenKnowledgeRecoveryRange 8 var #comfunc global ISyncSessionState_OnProgress 9 int,int,int,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_ISyncSessionState "{B8A940FE-9F01-483B-9434-C37D361225D9}" #usecom global ISyncSessionState IID_ISyncSessionState "{}" #comfunc global ISyncSessionState_IsCanceled 3 sptr #comfunc global ISyncSessionState_GetInfoForChangeApplication 4 sptr,sptr #comfunc global ISyncSessionState_LoadInfoFromChangeApplication 5 sptr,int #comfunc global ISyncSessionState_GetForgottenKnowledgeRecoveryRangeStart 6 sptr,sptr #comfunc global ISyncSessionState_GetForgottenKnowledgeRecoveryRangeEnd 7 sptr,sptr #comfunc global ISyncSessionState_SetForgottenKnowledgeRecoveryRange 8 sptr #comfunc global ISyncSessionState_OnProgress 9 int,int,int,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。