Win32 API 日本語リファレンス
ホームDevices.WebServicesOnDevices › IWSDAsyncResult

IWSDAsyncResult

COM
IID11a9852a-8dd8-423e-b537-9356db4fbfb8継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

非同期操作を表します。

解説(Remarks)

IWSDAsyncResult インターフェイスを使用すると、イベントやメッセージの通知を受け取るための待機ハンドルを設定したり、操作の完了をポーリングしたりできます。また、非同期操作の状態を取得したり、イベントの結果や応答本文を取得したりすることもできます。

IWSDAsyncCallback インターフェイスを使用すると、WSDAPI のメッセージングおよびイベント処理を支援する非同期の呼び出しパターンを実現でき、アプリケーションは操作の状態に基づいてコールバック通知を受け取ることができます。

失敗した非同期操作は、完了した非同期操作として扱われます。エラーやフォルトの情報は、IWSDAsyncCallback インターフェイスの IWSDAsyncCallback::AsyncOperationComplete メソッドを使用して取得できます。

メソッド 7

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

vtbl 3 HRESULT SetCallback(IWSDAsyncCallback* pCallback, IUnknown* pAsyncState)

非同期操作が完了したときに呼び出すコールバックインターフェイスを指定します。

pCallbackIWSDAsyncCallback*inユーザーが実装したコールバックを含む IWSDAsyncCallback オブジェクトへのポインター。
pAsyncStateIUnknown*inコールバックに渡す、ユーザー定義の状態情報。

戻り値

このメソッドは次のいずれかの値を返します。

返される可能性のある値には、以下が含まれます (ただし、これらに限定されません)。

戻り値 説明
S_OK
メソッドは正常に完了しました。
E_INVALIDARG
pCallbackNULL です。

解説(Remarks)

IWSDAsyncCallback::AsyncOperationComplete メソッドには、完了するメッセージに関連付けられた結果オブジェクトと状態が渡されます。

pCallback は、IWSDAsyncResult オブジェクトが破棄されるときに解放されます。

vtbl 4 HRESULT SetWaitHandle(HANDLE hWaitHandle)

操作が完了したときにシグナル状態にする待機ハンドルを指定します。

hWaitHandleHANDLEin設定する待機ハンドル。

戻り値

返される可能性のある値には、以下が含まれます (ただし、これらに限定されません)。

戻り値 説明
S_OK
メソッドは正常に完了しました。
E_INVALIDARG
hWaitHandleNULL です。
E_FAIL
メソッドが失敗しました。

解説(Remarks)

非同期操作が完了するまで hWaitHandle を閉じないでください。

vtbl 5 HRESULT HasCompleted()

操作が完了したかどうかを示します。

戻り値

このメソッドは次のいずれかの値を返します。

返される可能性のある値には、以下が含まれます (ただし、これらに限定されません)。

戻り値 説明
S_OK
操作は完了しました。
S_FALSE
操作は完了していません。

解説(Remarks)

失敗した非同期操作は、完了した非同期操作として扱われます。エラーやフォルトの情報は、IWSDAsyncCallback インターフェイスの IWSDAsyncCallback::AsyncOperationComplete メソッドを使用して取得できます。

vtbl 6 HRESULT GetAsyncState(IUnknown** ppAsyncState)

非同期操作の状態を取得します。

ppAsyncStateIUnknown**outユーザー定義の状態情報。

戻り値

このメソッドは次のいずれかの値を返します。

返される可能性のある値には、以下が含まれます (ただし、これらに限定されません)。

戻り値 説明
S_OK
操作は正常に完了しました。
E_POINTER
ppAsyncStateNULL です。
vtbl 7 HRESULT Abort()

非同期操作を中止します。

戻り値

このメソッドは次のいずれかの値を返します。

返される可能性のある値には、以下が含まれます (ただし、これらに限定されません)。

戻り値 説明
S_OK
メソッドは正常に完了しました。

解説(Remarks)

Abort は、SetCallback で設定された保留中のすべてのコールバックが完了するのを待ってから、呼び出し元に制御を返します。

vtbl 8 HRESULT GetEvent(WSD_EVENT* pEvent)

イベントの結果を格納した WSD_EVENT 構造体を取得します。

pEventWSD_EVENT*outイベントに関するデータを提供する WSD_EVENT 構造体への参照。

戻り値

このメソッドは次のいずれかの値を返します。

返される可能性のある値には、以下が含まれます (ただし、これらに限定されません)。

戻り値 説明
S_OK
メソッドは正常に完了しました。
E_POINTER
pEventNULL です。
E_FAIL
イベントがまだ利用可能でないか、非同期操作が完了していません。

解説(Remarks)

このメソッドは生成されたコードからのみ、かつ IWSDAsyncResult オブジェクトが操作の完了を通知した後にのみ呼び出してください。

vtbl 9 HRESULT GetEndpointProxy(IWSDEndpointProxy** ppEndpoint)

非同期操作のエンドポイントプロキシを取得します。

ppEndpointIWSDEndpointProxy**outエンドポイントプロキシを実装する IWSDEndpointProxy インターフェイス。

戻り値

このメソッドは次のいずれかの値を返します。

返される可能性のある値には、以下が含まれます (ただし、これらに限定されません)。

戻り値 説明
S_OK
メソッドは正常に完了しました。
E_POINTER
ppEndpointNULL です。
出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IWSDAsyncResult "{11A9852A-8DD8-423E-B537-9356DB4FBFB8}"
#usecom global IWSDAsyncResult IID_IWSDAsyncResult "{}"
#comfunc global IWSDAsyncResult_SetCallback       3 sptr,sptr
#comfunc global IWSDAsyncResult_SetWaitHandle     4 sptr
#comfunc global IWSDAsyncResult_HasCompleted      5
#comfunc global IWSDAsyncResult_GetAsyncState     6 sptr
#comfunc global IWSDAsyncResult_Abort             7
#comfunc global IWSDAsyncResult_GetEvent          8 var
#comfunc global IWSDAsyncResult_GetEndpointProxy  9 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。