Win32 API 日本語リファレンス
ホームStorage.Vss › IVssAsync

IVssAsync

COM
IID507c37b4-cf5b-4e95-b0af-14eb9767467e継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IVssAsync インターフェイスは、バックグラウンドで実行され、通常は完了までに長い時間を要する非同期操作を開始するメソッドから、呼び出し元のアプリケーションに返されます。

メソッド 3

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

vtbl 3 HRESULT Cancel()

Cancel メソッドは、完了していない非同期操作をキャンセルします。

戻り値

すべての IVssAsync オブジェクトに対する Cancel の呼び出しは、次の状態コードをサポートします。

意味
S_OK
非同期操作が正常にキャンセルされました。
VSS_S_ASYNC_CANCELLED
非同期操作は、このメソッドを呼び出す前に既にキャンセルされていました。
VSS_S_ASYNC_FINISHED
非同期操作は、このメソッドを呼び出す前に既に完了していました。
VSS_E_UNEXPECTED
予期しないエラーです。エラーコードはエラーログファイルに記録されます。詳細については、 Event and Error Handling Under VSS を参照してください。

Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP: この値は Windows Server 2008 R2 および Windows 7 以降でのみサポートされます。それ以前では代わりに E_UNEXPECTED が使用されます。

Cancel を呼び出す前に操作が失敗して完了していた場合、 Cancel はその操作で発生したエラーを返します。

特定の IVssAsync::Cancel に対する戻り値の完全な一覧を確認するには、その IVssAsync オブジェクトを返したメソッドのエラーコードを参照してください。

vtbl 4 HRESULT Wait(DWORD dwMilliseconds)

Wait メソッドは、完了していない非同期操作が終了するまで待機します。

dwMillisecondsDWORDin

非同期処理が復帰するまでにこのメソッドが待機する時間 (ミリ秒単位)。この時間を超えるとタイムアウトします。

この引数の既定値は INFINITE です。

Windows Server 2003: このパラメーターは予約されており、INFINITE を指定する必要があります。それ以外の値を指定した場合、Wait の呼び出しは E_INVALIDARG で失敗します。

Windows XP: このメソッドにはパラメーターがありません。

vtbl 5 HRESULT QueryStatus(HRESULT* pHrResult, INT* pReserved)

QueryStatus メソッドは、非同期操作の状態を照会します。

pHrResultHRESULT*out

現在の IVssAsync オブジェクトを返した非同期操作の状態。

すべての IVssAsync オブジェクトに対する QueryStatus の呼び出しは、次の状態コードをサポートします。

意味
VSS_S_ASYNC_CANCELLED
非同期操作は、以前の IVssAsync::Cancel の呼び出しによってキャンセルされました。
VSS_S_ASYNC_FINISHED
非同期操作は正常に完了しました。
VSS_S_ASYNC_PENDING
非同期操作はまだ実行中です。

これら以外の戻り値が返されることもありますが、それは最初に IVssAsync オブジェクトを返したメソッドの戻りコードに依存します。

pReservedINT*inoutこのパラメーターの値は NULL にする必要があります。
出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IVssAsync "{507C37B4-CF5B-4E95-B0AF-14EB9767467E}"
#usecom global IVssAsync IID_IVssAsync "{}"
#comfunc global IVssAsync_Cancel       3
#comfunc global IVssAsync_Wait         4 int
#comfunc global IVssAsync_QueryStatus  5 var,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。