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

IWRdsGraphicsChannelEvents

COM
IID67f2368c-d674-4fae-66a5-d20628a640d2継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

このインターフェイスは、グラフィックス仮想チャネルに関連する通知を受け取ります。

メソッド 5

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

vtbl 3 HRESULT OnDataReceived(DWORD cbSize, BYTE* pBuffer)

サーバーからメッセージ全体を受信したときに呼び出されます。

cbSizeDWORDinpBuffer 内のデータの長さ(バイト単位)。
pBufferBYTE*in受信したデータを格納するバッファーへのポインター。cbSize パラメーターにこのバッファーの長さが格納されます。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 4 HRESULT OnClose()

チャネルが閉じられたときに呼び出されます。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 5 HRESULT OnChannelOpened(HRESULT OpenResult, IUnknown* pOpenContext)

チャネルが開かれて使用可能になったとき、またはチャネルを開く際にエラーが発生したときに呼び出されます。

OpenResultHRESULTinオープン操作の結果を指定する HRESULT 値。このパラメーターに S_OK が格納されている場合、pOpenContext は有効です。
pOpenContextIUnknown*inIWRdsGraphicsChannel::Open メソッドの pOpenContext パラメーターとして渡される、ユーザー定義のインターフェイスポインター。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 6 HRESULT OnDataSent(IUnknown* pWriteContext, BOOL bCancelled, BYTE* pBuffer, DWORD cbBuffer)

IWRdsGraphicsChannel::Write メソッドが呼び出され、データが送信されたときに呼び出されます。

pWriteContextIUnknown*inIWRdsGraphicsChannel::Write メソッドの pContext パラメーターとして渡される、ユーザー定義のインターフェイスポインター。
bCancelledBOOLin書き込み中に接続が切断された場合は TRUE、それ以外の場合は FALSE が格納されます。
pBufferBYTE*in送信されたデータを格納するバッファーへのポインター。cbBuffer パラメーターにこのバッファーの長さが格納されます。
cbBufferDWORDinpBuffer 内のデータの長さ(バイト単位)。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 7 HRESULT OnMetricsUpdate(DWORD bandwidth, DWORD RTT, ULONGLONG lastSentByteIndex)

ネットワーク状態が変化したことを RemoteFX グラフィックスサービスに通知するために呼び出されます。

bandwidthDWORDin予想される帯域幅(バイト/秒)。このパラメーターに WRdsGraphicsChannels_Bandwidth_Unavailable が格納されている場合、帯域幅の統計情報は利用できません。
RTTDWORDinリンクのラウンドトリップ時間 (RTT)(ミリ秒単位)。このパラメーターに WRdsGraphicsChannels_RTT_Unavailable が格納されている場合、レイテンシの統計情報は利用できません。
lastSentByteIndexULONGLONGinこの時点でこのチャネルから送信された最後のバイトのバイトインデックス。この値はゼロから始まり、接続が有効な間は増加し続けます。オーバーフローが発生すると、この値はゼロに戻ります。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IWRdsGraphicsChannelEvents "{67F2368C-D674-4FAE-66A5-D20628A640D2}"
#usecom global IWRdsGraphicsChannelEvents IID_IWRdsGraphicsChannelEvents "{}"
#comfunc global IWRdsGraphicsChannelEvents_OnDataReceived   3 int,var
#comfunc global IWRdsGraphicsChannelEvents_OnClose          4
#comfunc global IWRdsGraphicsChannelEvents_OnChannelOpened  5 int,sptr
#comfunc global IWRdsGraphicsChannelEvents_OnDataSent       6 sptr,int,var,int
#comfunc global IWRdsGraphicsChannelEvents_OnMetricsUpdate  7 int,int,int64
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。