Win32 API 日本語リファレンス
ホームDevices.Enumeration.Pnp › IUPnPServiceAsync

IUPnPServiceAsync

COM
IID098bdaf5-5ec1-49e7-a260-b3a11dd8680c継承元IUnknown自前メソッド開始 vtbl3

メソッド 9

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

vtbl 3 HRESULT BeginInvokeAction(LPWSTR bstrActionName, VARIANT vInActionArgs, IUPnPAsyncResult* pAsyncResult, ULONGLONG* pullRequestID)
bstrActionNameLPWSTRin非同期実行するUPnPアクションの名前。
vInActionArgsVARIANTinアクションへの入力引数を格納したVARIANT(配列形式)。
pAsyncResultIUPnPAsyncResult*in完了通知を受けるIUPnPAsyncResultコールバック。
pullRequestIDULONGLONG*out開始した非同期操作のリクエストIDを受け取る出力先。
vtbl 4 HRESULT EndInvokeAction(ULONGLONG ullRequestID, VARIANT* pvOutActionArgs, VARIANT* pvRetVal)
ullRequestIDULONGLONGin完了したアクション実行のリクエストID。
pvOutActionArgsVARIANT*inoutアクションの出力引数を受け取るVARIANT出力先。
pvRetValVARIANT*inoutアクションの戻り値を受け取るVARIANT出力先。
vtbl 5 HRESULT BeginQueryStateVariable(LPWSTR bstrVariableName, IUPnPAsyncResult* pAsyncResult, ULONGLONG* pullRequestID)
bstrVariableNameLPWSTRin非同期照会する状態変数の名前。
pAsyncResultIUPnPAsyncResult*in完了通知を受けるIUPnPAsyncResultコールバック。
pullRequestIDULONGLONG*out開始した非同期操作のリクエストIDを受け取る出力先。
vtbl 6 HRESULT EndQueryStateVariable(ULONGLONG ullRequestID, VARIANT* pValue)
ullRequestIDULONGLONGin完了した状態変数照会のリクエストID。
pValueVARIANT*inout状態変数の値を受け取るVARIANT出力先。
vtbl 7 HRESULT BeginSubscribeToEvents(IUnknown* pUnkCallback, IUPnPAsyncResult* pAsyncResult, ULONGLONG* pullRequestID)
pUnkCallbackIUnknown*inイベント通知を受けるコールバックのIUnknownポインタ。
pAsyncResultIUPnPAsyncResult*in完了通知を受けるIUPnPAsyncResultコールバック。
pullRequestIDULONGLONG*out開始した非同期操作のリクエストIDを受け取る出力先。
vtbl 8 HRESULT EndSubscribeToEvents(ULONGLONG ullRequestID)
ullRequestIDULONGLONGin完了したイベント購読操作のリクエストID。
vtbl 9 HRESULT BeginSCPDDownload(IUPnPAsyncResult* pAsyncResult, ULONGLONG* pullRequestID)
pAsyncResultIUPnPAsyncResult*in完了通知を受けるIUPnPAsyncResultコールバック。
pullRequestIDULONGLONG*out開始した非同期操作のリクエストIDを受け取る出力先。
vtbl 10 HRESULT EndSCPDDownload(ULONGLONG ullRequestID, LPWSTR* pbstrSCPDDoc)
ullRequestIDULONGLONGin完了したSCPDダウンロードのリクエストID。
pbstrSCPDDocLPWSTR*outダウンロードしたSCPD(サービス記述)文書を受け取るBSTR出力先。
vtbl 11 HRESULT CancelAsyncOperation(ULONGLONG ullRequestID)
ullRequestIDULONGLONGinキャンセル対象の非同期操作を識別するリクエストID。

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IUPnPServiceAsync "{098BDAF5-5EC1-49E7-A260-B3A11DD8680C}"
#usecom global IUPnPServiceAsync IID_IUPnPServiceAsync "{}"
#comfunc global IUPnPServiceAsync_BeginInvokeAction        3 wstr,int,sptr,var
#comfunc global IUPnPServiceAsync_EndInvokeAction          4 int64,var,var
#comfunc global IUPnPServiceAsync_BeginQueryStateVariable  5 wstr,sptr,var
#comfunc global IUPnPServiceAsync_EndQueryStateVariable    6 int64,var
#comfunc global IUPnPServiceAsync_BeginSubscribeToEvents   7 sptr,sptr,var
#comfunc global IUPnPServiceAsync_EndSubscribeToEvents     8 int64
#comfunc global IUPnPServiceAsync_BeginSCPDDownload        9 sptr,var
#comfunc global IUPnPServiceAsync_EndSCPDDownload          10 int64,var
#comfunc global IUPnPServiceAsync_CancelAsyncOperation     11 int64
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。