次の方法で共有


ISWbemSink::Cancel メソッド

SWbemSink オブジェクトの Cancel メソッドでは、このオブジェクト シンクに関連する未処理の非同期操作をすべて取り消します。

この構文の説明については、「スクリプト API のドキュメントの表記規則」を参照してください。

構文

SWbemSink.Cancel()

パラメーター

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

戻り値

このメソッドは値を返しません。

エラー コード

Cancel メソッドが完了すると、Err オブジェクトに次のいずれかのエラー コードが含まれる場合があります。

wbemErrFailed - 2147749889 (0x80041001)

未定義のエラーが発生しました。

wbemErrOutOfMemory - 2147749894 (0x80041006)

操作を完了させるための十分なメモリがありません。

wbemErrTransportFailure - 2147749909 (0x80041015)

ネットワーク エラーが発生して、通常の操作が妨げられていました。

wbemErrAccessDenied - 2147749891 (0x80041003)

現在の、または指定されたユーザー名とパスワードが無効であるか、接続を確立する権限がありません。

解説

非同期呼び出しのいずれか 1 つだけを取り消すことはできません。 このメソッドでは、このオブジェクト シンクを使用する複数の非同期呼び出しが保留中の場合、このオブジェクト シンクを使用してすべての非同期呼び出しが取り消されます。 他のオブジェクト シンクに関連する非同期呼び出しは引き続き影響を受けません。

このシンクを Nothing に割り当てて、非同期操作を取り消すことはできません。 WMI が操作を中止し、関連するリソースを解放するには、Cancel メソッドを呼び出す必要があります。 これは、長い非同期操作 (クエリなど)、または完了しない操作 ( ExecNotificationQueryAsync など) では非常に重要です。

注意

非同期コールバックを使用すると、認証されていないユーザーがシンクにデータを提供できます。 これにより、スクリプトとアプリケーションにセキュリティ リスクが発生します。 リスクを排除するには、半同期または同期通信を使用します。 詳細については、メソッドの呼び出しに関するページを参照してください。

次の例では、非同期呼び出しを取り消す方法を示しています。

objwbemsink.Cancel()
set objwbemsink= Nothing

要件

要件
サポートされている最小のクライアント
Windows Vista
サポートされている最小のサーバー
Windows Server 2008
Header
Wbemdisp.h
IDL
Wbemdisp.idl
[DLL]
Wbemdisp.dll
CLSID
CLSID_SWbemSink
IID
IID_ISWbemSink

関連項目

SWbemSink