ホーム › Devices.HumanInterfaceDevice › IDirectInputDeviceW
IDirectInputDeviceW
COMメソッド 15
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
| param0 | DIDEVCAPS* | inout | デバイスの機能情報を受け取るDIDEVCAPS構造体。 |
vtbl 4 HRESULT EnumObjects(LPDIENUMDEVICEOBJECTSCALLBACKW param0, void* param1, DWORD param2)
| param0 | LPDIENUMDEVICEOBJECTSCALLBACKW | in | 各オブジェクト列挙時に呼ばれるコールバック関数。 |
| param1 | void* | inout | コールバックへ渡すアプリケーション定義の値。 |
| param2 | DWORD | in | 列挙対象のオブジェクト種別を指定するDIDFT_*フラグ。 |
vtbl 5 HRESULT GetProperty(GUID* param0, DIPROPHEADER* param1)
| param0 | GUID* | in | 取得するプロパティを識別するGUID(DIPROP_*)。 |
| param1 | DIPROPHEADER* | inout | プロパティ値を受け取るDIPROPHEADER構造体。 |
vtbl 6 HRESULT SetProperty(GUID* param0, DIPROPHEADER* param1)
| param0 | GUID* | in | 設定するプロパティを識別するGUID(DIPROP_*)。 |
| param1 | DIPROPHEADER* | inout | 設定するプロパティ値を格納したDIPROPHEADER構造体。 |
vtbl 7 HRESULT Acquire()
vtbl 8 HRESULT Unacquire()
| param0 | DWORD | in | 受け取る状態データバッファーのサイズ(バイト単位)。 |
| param1 | void* | inout | デバイスの即時状態データを受け取るバッファー。 |
vtbl 10 HRESULT GetDeviceData(DWORD param0, DIDEVICEOBJECTDATA* param1, DWORD* param2, DWORD param3)
| param0 | DWORD | in | DIDEVICEOBJECTDATA各要素のサイズ(バイト単位)。 |
| param1 | DIDEVICEOBJECTDATA* | inout | バッファリングされた入力データを受け取る配列。NULLでデータ破棄も可。 |
| param2 | DWORD* | inout | 入力時は要求要素数、出力時は取得要素数を示すポインター。 |
| param3 | DWORD | in | 取得動作を制御するフラグ。DIGDD_PEEKでポインタを進めない。 |
vtbl 11 HRESULT SetDataFormat(DIDATAFORMAT* param0)
| param0 | DIDATAFORMAT* | inout | デバイス状態データの形式を指定するDIDATAFORMAT構造体。 |
| param0 | HANDLE | in | デバイス状態変化時にシグナルされるイベントハンドル。NULLで解除。 |
| param0 | HWND | in | 協調レベルを関連付ける対象ウィンドウのハンドル。 |
| param1 | DWORD | in | 排他/非排他、前景/背景を指定する協調レベルフラグ。 |
vtbl 14 HRESULT GetObjectInfo(DIDEVICEOBJECTINSTANCEW* param0, DWORD param1, DWORD param2)
| param0 | DIDEVICEOBJECTINSTANCEW* | inout | オブジェクト情報を受け取るDIDEVICEOBJECTINSTANCEW構造体。 |
| param1 | DWORD | in | 情報を取得する対象オブジェクトの識別子。 |
| param2 | DWORD | in | param1の解釈方法を示すDIPH_*指定子。 |
vtbl 15 HRESULT GetDeviceInfo(DIDEVICEINSTANCEW* param0)
| param0 | DIDEVICEINSTANCEW* | inout | デバイスのインスタンス情報を受け取るDIDEVICEINSTANCEW構造体。 |
| param0 | HWND | in | コントロールパネルダイアログの親ウィンドウハンドル。 |
| param1 | DWORD | in | 予約済みフラグ。0を指定する。 |
| param0 | HINSTANCE | in | 呼び出し元アプリケーションのインスタンスハンドル。 |
| param1 | DWORD | in | 使用するDirectInputのバージョン番号。 |
| param2 | GUID* | in | 初期化するデバイスを識別するGUID。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IDirectInputDeviceW "{5944E681-C92E-11CF-BFC7-444553540000}" #usecom global IDirectInputDeviceW IID_IDirectInputDeviceW "{}" #comfunc global IDirectInputDeviceW_GetCapabilities 3 var #comfunc global IDirectInputDeviceW_EnumObjects 4 sptr,sptr,int #comfunc global IDirectInputDeviceW_GetProperty 5 var,var #comfunc global IDirectInputDeviceW_SetProperty 6 var,var #comfunc global IDirectInputDeviceW_Acquire 7 #comfunc global IDirectInputDeviceW_Unacquire 8 #comfunc global IDirectInputDeviceW_GetDeviceState 9 int,sptr #comfunc global IDirectInputDeviceW_GetDeviceData 10 int,var,var,int #comfunc global IDirectInputDeviceW_SetDataFormat 11 var #comfunc global IDirectInputDeviceW_SetEventNotification 12 sptr #comfunc global IDirectInputDeviceW_SetCooperativeLevel 13 sptr,int #comfunc global IDirectInputDeviceW_GetObjectInfo 14 var,int,int #comfunc global IDirectInputDeviceW_GetDeviceInfo 15 var #comfunc global IDirectInputDeviceW_RunControlPanel 16 sptr,int #comfunc global IDirectInputDeviceW_Initialize 17 sptr,int,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IDirectInputDeviceW "{5944E681-C92E-11CF-BFC7-444553540000}" #usecom global IDirectInputDeviceW IID_IDirectInputDeviceW "{}" #comfunc global IDirectInputDeviceW_GetCapabilities 3 sptr #comfunc global IDirectInputDeviceW_EnumObjects 4 sptr,sptr,int #comfunc global IDirectInputDeviceW_GetProperty 5 sptr,sptr #comfunc global IDirectInputDeviceW_SetProperty 6 sptr,sptr #comfunc global IDirectInputDeviceW_Acquire 7 #comfunc global IDirectInputDeviceW_Unacquire 8 #comfunc global IDirectInputDeviceW_GetDeviceState 9 int,sptr #comfunc global IDirectInputDeviceW_GetDeviceData 10 int,sptr,sptr,int #comfunc global IDirectInputDeviceW_SetDataFormat 11 sptr #comfunc global IDirectInputDeviceW_SetEventNotification 12 sptr #comfunc global IDirectInputDeviceW_SetCooperativeLevel 13 sptr,int #comfunc global IDirectInputDeviceW_GetObjectInfo 14 sptr,int,int #comfunc global IDirectInputDeviceW_GetDeviceInfo 15 sptr #comfunc global IDirectInputDeviceW_RunControlPanel 16 sptr,int #comfunc global IDirectInputDeviceW_Initialize 17 sptr,int,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。