IRDPViewerInputSink
COM公式ドキュメント
マウスイベントおよびキーボードイベントを送信し、タッチ入力をサポートします。
メソッド 8
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
マウスボタンイベントメッセージを送信します。
| buttonType | RDPSRAPI_MOUSE_BUTTON_TYPE | in | 押された、または離されたボタン。 |
| vbButtonDown | VARIANT_BOOL | in | ボタンの状態。ボタンが押されている場合は TRUE、それ以外の場合は FALSE です。 |
| xPos | DWORD | in | 水平軸方向のマウス位置(ピクセル単位)。 |
| yPos | DWORD | in | 垂直軸方向のマウス位置(ピクセル単位)。 |
戻り値
メソッドが成功した場合、戻り値は S_OK です。それ以外の場合、戻り値はエラーコードです。
マウス移動イベントメッセージを送信します。
| xPos | DWORD | in | 水平軸方向のマウス位置(ピクセル単位)。 |
| yPos | DWORD | in | 垂直軸方向のマウス位置(ピクセル単位)。 |
戻り値
メソッドが成功した場合、戻り値は S_OK です。それ以外の場合、戻り値はエラーコードです。
マウスホイールイベントメッセージを送信します。
| wheelRotation | WORD | in | ホイールが移動した増分の数。 |
戻り値
メソッドが成功した場合、戻り値は S_OK です。それ以外の場合、戻り値はエラーコードです。
キーボードイベントメッセージを送信します。
| codeType | RDPSRAPI_KBD_CODE_TYPE | in | キーコードのエンコード方式。 |
| keycode | WORD | in | 押された、または離されたキーのキーコード。 |
| vbKeyUp | VARIANT_BOOL | in | キーの状態。キーが離された場合は TRUE、キーが押された場合は FALSE です。 |
| vbRepeat | VARIANT_BOOL | in | キーコードがリピートコードであるかどうか。キー押下による最初のキーコードの場合は FALSE、1 回のキー押下によるリピートコードの場合は TRUE です。 |
| vbExtended | VARIANT_BOOL | in | キーコードが拡張コードであるかどうか。拡張コードの場合は TRUE、それ以外の場合は FALSE です。 |
戻り値
メソッドが成功した場合、戻り値は S_OK です。それ以外の場合、戻り値はエラーコードです。
Caps Lock キーが押された場合など、キーボードの状態の変化を示すイベントメッセージを送信します。
| syncFlags | DWORD | in | 指定可能な値については、RDPSRAPI_KBD_SYNC_FLAG 列挙型を参照してください。 |
戻り値
メソッドが成功した場合、戻り値は S_OK です。それ以外の場合、戻り値はエラーコードです。
一連のタッチ入力の受け付けを開始します。
戻り値
メソッドが成功した場合、戻り値は S_OK です。それ以外の場合、戻り値はエラーコードです。
タッチ入力の記述を受け付けます。
| contactId | DWORD | in | タッチ入力を生成した接触点の識別子。 |
| event | DWORD | in | 入力によって生じるイベント。 |
| x | INT | in | x 軸方向のタッチ位置。 |
| y | INT | in | y 軸方向のタッチ位置。 |
戻り値
メソッドが成功した場合、戻り値は S_OK です。それ以外の場合、戻り値はエラーコードです。
一連のタッチ入力の受け付けを終了します。
戻り値
メソッドが成功した場合、戻り値は S_OK です。それ以外の場合、戻り値はエラーコードです。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IRDPViewerInputSink "{BB590853-A6C5-4A7B-8DD4-76B69EEA12D5}"
#usecom global IRDPViewerInputSink IID_IRDPViewerInputSink "{}"
#comfunc global IRDPViewerInputSink_SendMouseButtonEvent 3 int,int,int,int
#comfunc global IRDPViewerInputSink_SendMouseMoveEvent 4 int,int
#comfunc global IRDPViewerInputSink_SendMouseWheelEvent 5 int
#comfunc global IRDPViewerInputSink_SendKeyboardEvent 6 int,int,int,int,int
#comfunc global IRDPViewerInputSink_SendSyncEvent 7 int
#comfunc global IRDPViewerInputSink_BeginTouchFrame 8
#comfunc global IRDPViewerInputSink_AddTouchInput 9 int,int,int,int
#comfunc global IRDPViewerInputSink_EndTouchFrame 10
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。