ホーム › Devices.HumanInterfaceDevice › IDirectInputDevice8W
IDirectInputDevice8W
COMメソッド 29
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
| param0 | DIDEVCAPS* | inout | デバイスの能力(軸数・ボタン数・フラグ等)を受け取るDIDEVCAPS構造体へのポインタ。dwSizeを事前設定する。 |
vtbl 4 HRESULT EnumObjects(LPDIENUMDEVICEOBJECTSCALLBACKW param0, void* param1, DWORD param2)
| param0 | LPDIENUMDEVICEOBJECTSCALLBACKW | in | 各入力オブジェクト(軸/ボタン/POV等)を受け取る列挙コールバック関数(Unicode)。 |
| param1 | void* | inout | コールバックへ渡されるアプリ定義コンテキスト値。NULL可。 |
| param2 | DWORD | in | 列挙対象種別を絞るフラグ。DIDFT_AXIS/DIDFT_BUTTON/DIDFT_ALL等を指定する。 |
vtbl 5 HRESULT GetProperty(GUID* param0, DIPROPHEADER* param1)
| param0 | GUID* | in | 取得するプロパティを識別するGUID。DIPROP_RANGE等の定義済み値を指す。 |
| param1 | DIPROPHEADER* | inout | プロパティ値を受け取るDIPROPHEADER先頭の構造体へのポインタ。 |
vtbl 6 HRESULT SetProperty(GUID* param0, DIPROPHEADER* param1)
| param0 | GUID* | in | 設定するプロパティを識別するGUID。DIPROP_BUFFERSIZE等を指す。 |
| param1 | DIPROPHEADER* | inout | 設定値を格納したDIPROPHEADER先頭の構造体へのポインタ。 |
vtbl 7 HRESULT Acquire()
vtbl 8 HRESULT Unacquire()
| param0 | DWORD | in | param1が指すバッファのバイトサイズ。データ形式に一致させる。 |
| param1 | void* | inout | 現在のデバイス状態を受け取るバッファへのポインタ。形式はSetDataFormatに依存する。 |
vtbl 10 HRESULT GetDeviceData(DWORD param0, DIDEVICEOBJECTDATA* param1, DWORD* param2, DWORD param3)
| param0 | DWORD | in | DIDEVICEOBJECTDATA要素1個分のバイトサイズ。 |
| 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 | 協調レベルフラグ。DISCL_EXCLUSIVE/DISCL_FOREGROUND等の組み合わせを指定する。 |
vtbl 14 HRESULT GetObjectInfo(DIDEVICEOBJECTINSTANCEW* param0, DWORD param1, DWORD param2)
| param0 | DIDEVICEOBJECTINSTANCEW* | inout | オブジェクト情報を受け取るDIDEVICEOBJECTINSTANCEW構造体へのポインタ。dwSizeを設定する。 |
| param1 | DWORD | in | 対象オブジェクトの識別子(種別ID/オフセット等)。 |
| param2 | DWORD | in | param1の解釈方法を示すフラグ。DIPH_BYID/DIPH_BYOFFSET/DIPH_BYUSAGE等。 |
vtbl 15 HRESULT GetDeviceInfo(DIDEVICEINSTANCEW* param0)
| param0 | DIDEVICEINSTANCEW* | inout | デバイスのインスタンス情報を受け取るDIDEVICEINSTANCEW構造体へのポインタ。dwSizeを設定する。 |
| param0 | HWND | in | コントロールパネル表示時の親ウィンドウハンドル。NULL可。 |
| param1 | DWORD | in | 予約フラグ。現状は0を指定する。 |
| param0 | HINSTANCE | in | 呼び出し元モジュールのインスタンスハンドル。 |
| param1 | DWORD | in | 使用するDirectInputのバージョン番号(DIRECTINPUT_VERSION)。 |
| param2 | GUID* | in | 初期化対象デバイスを識別するGUIDへのポインタ。 |
vtbl 18 HRESULT CreateEffect(GUID* param0, DIEFFECT* param1, IDirectInputEffect** param2, IUnknown* param3)
| param0 | GUID* | in | 作成するエフェクト種別を識別するGUID(GUID_ConstantForce等)へのポインタ。 |
| param1 | DIEFFECT* | inout | エフェクトのパラメータを格納したDIEFFECT構造体へのポインタ。NULL可。 |
| param2 | IDirectInputEffect** | out | 作成されたIDirectInputEffectインターフェイスを受け取る出力ポインタ。 |
| param3 | IUnknown* | in | 集約(アグリゲーション)用の外部IUnknown。通常はNULL。 |
vtbl 19 HRESULT EnumEffects(LPDIENUMEFFECTSCALLBACKW param0, void* param1, DWORD param2)
| param0 | LPDIENUMEFFECTSCALLBACKW | in | デバイス対応の各エフェクト種別を受け取る列挙コールバック関数(Unicode)。 |
| param1 | void* | inout | コールバックへ渡されるアプリ定義コンテキスト値。NULL可。 |
| param2 | DWORD | in | 列挙するエフェクト種別を絞るフラグ。DIEFT_ALL/DIEFT_CONSTANTFORCE等。 |
vtbl 20 HRESULT GetEffectInfo(DIEFFECTINFOW* param0, GUID* param1)
| param0 | DIEFFECTINFOW* | inout | エフェクト情報を受け取るDIEFFECTINFOW構造体へのポインタ。dwSizeを設定する。 |
| param1 | GUID* | in | 情報取得対象のエフェクト種別を識別するGUIDへのポインタ。 |
| param0 | DWORD* | inout | フォースフィードバックの状態フラグを受け取るDWORDへのポインタ。DIGFFS_*値を返す。 |
| param0 | DWORD | in | 送信するFFコマンドフラグ。DISFFC_RESET/DISFFC_STOPALL/DISFFC_PAUSE等。 |
vtbl 23 HRESULT EnumCreatedEffectObjects(LPDIENUMCREATEDEFFECTOBJECTSCALLBACK param0, void* param1, DWORD param2)
| param0 | LPDIENUMCREATEDEFFECTOBJECTSCALLBACK | in | このデバイスで作成済みの各エフェクトを受け取る列挙コールバック関数。 |
| param1 | void* | inout | コールバックへ渡されるアプリ定義コンテキスト値。NULL可。 |
| param2 | DWORD | in | 予約フラグ。現状は0を指定する。 |
vtbl 24 HRESULT Escape(DIEFFESCAPE* param0)
| param0 | DIEFFESCAPE* | inout | ドライバ固有の拡張コマンドを格納したDIEFFESCAPE構造体へのポインタ。 |
vtbl 25 HRESULT Poll()
vtbl 26 HRESULT SendDeviceData(DWORD param0, DIDEVICEOBJECTDATA* param1, DWORD* param2, DWORD param3)
| param0 | DWORD | in | DIDEVICEOBJECTDATA要素1個分のバイトサイズ。 |
| param1 | DIDEVICEOBJECTDATA* | inout | デバイスへ送信する出力データ配列へのポインタ。 |
| param2 | DWORD* | inout | 入出力。送信要求/実際に送信した要素数を受け渡すポインタ。 |
| param3 | DWORD | in | 送信動作フラグ。DISDD_CONTINUE等を指定する。 |
vtbl 27 HRESULT EnumEffectsInFile(LPWSTR param0, LPDIENUMEFFECTSINFILECALLBACK param1, void* param2, DWORD param3)
| param0 | LPWSTR | in | 列挙対象のエフェクトファイル(.ffe)パスを示すUnicode文字列。 |
| param1 | LPDIENUMEFFECTSINFILECALLBACK | in | ファイル内の各エフェクトを受け取る列挙コールバック関数。 |
| param2 | void* | inout | コールバックへ渡されるアプリ定義コンテキスト値。NULL可。 |
| param3 | DWORD | in | 列挙動作を制御するフラグ。DIFEF_*値を指定する。 |
vtbl 28 HRESULT WriteEffectToFile(LPWSTR param0, DWORD param1, DIFILEEFFECT* param2, DWORD param3)
| param0 | LPWSTR | in | 出力先エフェクトファイル(.ffe)パスを示すUnicode文字列。 |
| param1 | DWORD | in | 書き込むエフェクト数を示す配列要素数。 |
| param2 | DIFILEEFFECT* | inout | 書き込むエフェクト情報を格納したDIFILEEFFECT構造体配列へのポインタ。 |
| param3 | DWORD | in | 書き込み動作を制御するフラグ。DIFEF_*値を指定する。 |
vtbl 29 HRESULT BuildActionMap(DIACTIONFORMATW* param0, LPWSTR param1, DWORD param2)
| param0 | DIACTIONFORMATW* | inout | アクションとオブジェクトの対応を構築するDIACTIONFORMATW構造体へのポインタ。 |
| param1 | LPWSTR | in | 対象ユーザー名を示すUnicode文字列。NULL可で既定ユーザー。 |
| param2 | DWORD | in | 動作フラグ。DIDBAM_DEFAULT/DIDBAM_PRESERVE等を指定する。 |
vtbl 30 HRESULT SetActionMap(DIACTIONFORMATW* param0, LPWSTR param1, DWORD param2)
| param0 | DIACTIONFORMATW* | inout | デバイスへ適用するアクションマップを定義するDIACTIONFORMATW構造体へのポインタ。 |
| param1 | LPWSTR | in | 対象ユーザー名を示すUnicode文字列。NULL可。 |
| param2 | DWORD | in | 動作フラグ。DIDSAM_DEFAULT/DIDSAM_FORCESAVE/DIDSAM_NOUSER等。 |
vtbl 31 HRESULT GetImageInfo(DIDEVICEIMAGEINFOHEADERW* param0)
| param0 | DIDEVICEIMAGEINFOHEADERW* | inout | デバイス画像情報を受け取るDIDEVICEIMAGEINFOHEADERW構造体へのポインタ。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IDirectInputDevice8W "{54D41081-DC15-4833-A41B-748F73A38179}" #usecom global IDirectInputDevice8W IID_IDirectInputDevice8W "{}" #comfunc global IDirectInputDevice8W_GetCapabilities 3 var #comfunc global IDirectInputDevice8W_EnumObjects 4 sptr,sptr,int #comfunc global IDirectInputDevice8W_GetProperty 5 var,var #comfunc global IDirectInputDevice8W_SetProperty 6 var,var #comfunc global IDirectInputDevice8W_Acquire 7 #comfunc global IDirectInputDevice8W_Unacquire 8 #comfunc global IDirectInputDevice8W_GetDeviceState 9 int,sptr #comfunc global IDirectInputDevice8W_GetDeviceData 10 int,var,var,int #comfunc global IDirectInputDevice8W_SetDataFormat 11 var #comfunc global IDirectInputDevice8W_SetEventNotification 12 sptr #comfunc global IDirectInputDevice8W_SetCooperativeLevel 13 sptr,int #comfunc global IDirectInputDevice8W_GetObjectInfo 14 var,int,int #comfunc global IDirectInputDevice8W_GetDeviceInfo 15 var #comfunc global IDirectInputDevice8W_RunControlPanel 16 sptr,int #comfunc global IDirectInputDevice8W_Initialize 17 sptr,int,var #comfunc global IDirectInputDevice8W_CreateEffect 18 var,var,sptr,sptr #comfunc global IDirectInputDevice8W_EnumEffects 19 sptr,sptr,int #comfunc global IDirectInputDevice8W_GetEffectInfo 20 var,var #comfunc global IDirectInputDevice8W_GetForceFeedbackState 21 var #comfunc global IDirectInputDevice8W_SendForceFeedbackCommand 22 int #comfunc global IDirectInputDevice8W_EnumCreatedEffectObjects 23 sptr,sptr,int #comfunc global IDirectInputDevice8W_Escape 24 var #comfunc global IDirectInputDevice8W_Poll 25 #comfunc global IDirectInputDevice8W_SendDeviceData 26 int,var,var,int #comfunc global IDirectInputDevice8W_EnumEffectsInFile 27 wstr,sptr,sptr,int #comfunc global IDirectInputDevice8W_WriteEffectToFile 28 wstr,int,var,int #comfunc global IDirectInputDevice8W_BuildActionMap 29 var,wstr,int #comfunc global IDirectInputDevice8W_SetActionMap 30 var,wstr,int #comfunc global IDirectInputDevice8W_GetImageInfo 31 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IDirectInputDevice8W "{54D41081-DC15-4833-A41B-748F73A38179}" #usecom global IDirectInputDevice8W IID_IDirectInputDevice8W "{}" #comfunc global IDirectInputDevice8W_GetCapabilities 3 sptr #comfunc global IDirectInputDevice8W_EnumObjects 4 sptr,sptr,int #comfunc global IDirectInputDevice8W_GetProperty 5 sptr,sptr #comfunc global IDirectInputDevice8W_SetProperty 6 sptr,sptr #comfunc global IDirectInputDevice8W_Acquire 7 #comfunc global IDirectInputDevice8W_Unacquire 8 #comfunc global IDirectInputDevice8W_GetDeviceState 9 int,sptr #comfunc global IDirectInputDevice8W_GetDeviceData 10 int,sptr,sptr,int #comfunc global IDirectInputDevice8W_SetDataFormat 11 sptr #comfunc global IDirectInputDevice8W_SetEventNotification 12 sptr #comfunc global IDirectInputDevice8W_SetCooperativeLevel 13 sptr,int #comfunc global IDirectInputDevice8W_GetObjectInfo 14 sptr,int,int #comfunc global IDirectInputDevice8W_GetDeviceInfo 15 sptr #comfunc global IDirectInputDevice8W_RunControlPanel 16 sptr,int #comfunc global IDirectInputDevice8W_Initialize 17 sptr,int,sptr #comfunc global IDirectInputDevice8W_CreateEffect 18 sptr,sptr,sptr,sptr #comfunc global IDirectInputDevice8W_EnumEffects 19 sptr,sptr,int #comfunc global IDirectInputDevice8W_GetEffectInfo 20 sptr,sptr #comfunc global IDirectInputDevice8W_GetForceFeedbackState 21 sptr #comfunc global IDirectInputDevice8W_SendForceFeedbackCommand 22 int #comfunc global IDirectInputDevice8W_EnumCreatedEffectObjects 23 sptr,sptr,int #comfunc global IDirectInputDevice8W_Escape 24 sptr #comfunc global IDirectInputDevice8W_Poll 25 #comfunc global IDirectInputDevice8W_SendDeviceData 26 int,sptr,sptr,int #comfunc global IDirectInputDevice8W_EnumEffectsInFile 27 wstr,sptr,sptr,int #comfunc global IDirectInputDevice8W_WriteEffectToFile 28 wstr,int,sptr,int #comfunc global IDirectInputDevice8W_BuildActionMap 29 sptr,wstr,int #comfunc global IDirectInputDevice8W_SetActionMap 30 sptr,wstr,int #comfunc global IDirectInputDevice8W_GetImageInfo 31 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。