Win32 API 日本語リファレンス
ホームSystem.WindowsSync › ISyncSessionState

ISyncSessionState

COM
IIDb8a940fe-9f01-483b-9434-c37d361225d9継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

現在の同期セッションに関する情報を表します。

メソッド 7

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

vtbl 3 HRESULT IsCanceled(BOOL* pfIsCanceled)

同期セッションがキャンセルされたかどうかを示します。

pfIsCanceledBOOL*inout同期セッションがキャンセルされている場合は TRUE を返します。それ以外の場合は FALSE を返します。

戻り値

戻り値として返される可能性のあるコードには、次の表に示す値が含まれますが、これらに限定されません。

リターン コード 説明
S_OK
メソッドは成功しました。
E_POINTER
無効なポインターです。
vtbl 4 HRESULT GetInfoForChangeApplication(BYTE* pbChangeApplierInfo, DWORD* pcbChangeApplierInfo)

シリアル化された変更適用オブジェクト (change applier) 用に格納されたデータを取得します。

pbChangeApplierInfoBYTE*inoutシリアル化された変更適用オブジェクトのデータを返します。
pcbChangeApplierInfoDWORD*inoutpbChangeApplierInfo のバイト数を指定します。pcbChangeApplierInfo が小さすぎる場合は、変更適用オブジェクトのデータの取得に必要なバイト数を返します。それ以外の場合は、書き込まれたバイト数を返します。

戻り値

戻り値として返される可能性のあるコードには、次の表に示す値が含まれますが、これらに限定されません。

リターン コード 説明
S_OK
メソッドは成功しました。
E_POINTER
無効なポインターです。
E_INVALIDARG
HRESULT_FROM_WIN32(ERROR_MORE_DATA)
pbChangeApplierInfo が小さすぎます。この場合、必要なバイト数が pcbChangeApplierInfo に返されます。
vtbl 5 HRESULT LoadInfoFromChangeApplication(BYTE* pbChangeApplierInfo, DWORD cbChangeApplierInfo)

シリアル化された変更適用オブジェクト (change applier) のデータを格納します。

pbChangeApplierInfoBYTE*inシリアル化された変更適用オブジェクトのデータ。
cbChangeApplierInfoDWORDinpbChangeApplierInfo のバイト数を指定します。

戻り値

戻り値として返される可能性のあるコードには、次の表に示す値が含まれますが、これらに限定されません。

リターン コード 説明
S_OK
メソッドは成功しました。
E_POINTER
無効なポインターです。
E_INVALIDARG
pbChangeApplierInfoNULL ではなく、かつ cbChangeApplierInfo が 0 です。
SYNC_E_DESERIALIZATION
シリアル化されたデータが有効ではありません。
vtbl 6 HRESULT GetForgottenKnowledgeRecoveryRangeStart(BYTE* pbRangeStart, DWORD* pcbRangeStart)

セッションが忘却されたナレッジの回復 (forgotten knowledge recovery) を実行しているときに、回復範囲の下限を取得します。

pbRangeStartBYTE*inoutセッションが忘却されたナレッジの回復を実行しているときの、回復範囲の下限を返します。
pcbRangeStartDWORD*inoutpbRangeStart のバイト数を指定します。pcbRangeStart が小さすぎる場合は、範囲の値の取得に必要なバイト数を返します。それ以外の場合は、書き込まれたバイト数を返します。

戻り値

戻り値として返される可能性のあるコードには、次の表に示す値が含まれますが、これらに限定されません。

リターン コード 説明
S_OK
メソッドは成功しました。
E_POINTER
無効なポインターです。
HRESULT_FROM_WIN32(ERROR_MORE_DATA)
pcbRangeStart が小さすぎます。この場合、必要なバイト数が pcbRangeStart に返されます。
vtbl 7 HRESULT GetForgottenKnowledgeRecoveryRangeEnd(BYTE* pbRangeEnd, DWORD* pcbRangeEnd)

セッションが忘却されたナレッジの回復 (forgotten knowledge recovery) を実行しているときに、回復範囲の上限を取得します。

pbRangeEndBYTE*inoutセッションが忘却されたナレッジの回復を実行しているときの、回復範囲の上限を返します。
pcbRangeEndDWORD*inoutpbRangeEnd のバイト数を指定します。pcbRangeEnd が小さすぎる場合は、範囲の値の取得に必要なバイト数を返します。それ以外の場合は、書き込まれたバイト数を返します。

戻り値

戻り値として返される可能性のあるコードには、次の表に示す値が含まれますが、これらに限定されません。

リターン コード 説明
S_OK
メソッドは成功しました。
E_POINTER
無効なポインターです。
HRESULT_FROM_WIN32(ERROR_MORE_DATA)
pcbRangeEnd が小さすぎます。この場合、必要なバイト数が pcbRangeEnd に返されます。
vtbl 8 HRESULT SetForgottenKnowledgeRecoveryRange(SYNC_RANGE* pRange)

セッションが忘却されたナレッジの回復 (forgotten knowledge recovery) を実行しているときの回復範囲を設定します。

pRangeSYNC_RANGE*in回復対象となる ID の範囲を定義する下限と上限。

戻り値

戻り値として返される可能性のあるコードには、次の表に示す値が含まれますが、これらに限定されません。

リターン コード 説明
S_OK
メソッドは成功しました。
E_POINTER
無効なポインターです。
E_OUTOFMEMORY
SYNC_E_ID_FORMAT_MISMATCH
pRange 内のアイテム ID が、プロバイダーの ID 形式スキーマで指定された形式ではありません。
vtbl 9 HRESULT OnProgress(SYNC_PROVIDER_ROLE provider, SYNC_PROGRESS_STAGE syncStage, DWORD dwCompletedWork, DWORD dwTotalWork)

同期の進行状況をアプリケーションに報告します。

providerSYNC_PROVIDER_ROLEinこのイベントを送信するプロバイダーの役割。
syncStageSYNC_PROGRESS_STAGEin同期セッションの現在のステージ。
dwCompletedWorkDWORDinセッションで現在完了している作業量。この値は dwTotalWork の一部として解釈されます。
dwTotalWorkDWORDinセッション全体の作業量。

戻り値

戻り値として返される可能性のあるコードには、次の表に示す値が含まれますが、これらに限定されません。

リターン コード 説明
S_OK
メソッドは成功しました。
E_INVALIDARG
provider または syncStage が有効な値ではありません。

解説(Remarks)

このメソッドを使用すると、カスタムの進行状況をアプリケーションに報告できます。プロバイダーがこのメソッドを呼び出すと、ISyncCallback::OnProgress イベントが発生します。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_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 方式にも切替可。