ホーム › Devices.HumanInterfaceDevice › IDirectInputDevice8A
IDirectInputDevice8A
COMメソッド 29
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
| param0 | DIDEVCAPS* | inout | デバイスの能力(軸数・ボタン数・フラグ等)を受け取るDIDEVCAPS構造体へのポインタ。dwSizeを設定する。 |
vtbl 4 HRESULT EnumObjects(LPDIENUMDEVICEOBJECTSCALLBACKA param0, void* param1, DWORD param2)
| param0 | LPDIENUMDEVICEOBJECTSCALLBACKA | in | 各入力オブジェクトを受け取る列挙コールバック関数(ANSI)。 |
| 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(DIDEVICEOBJECTINSTANCEA* param0, DWORD param1, DWORD param2)
| param0 | DIDEVICEOBJECTINSTANCEA* | inout | オブジェクト情報を受け取るDIDEVICEOBJECTINSTANCEA構造体へのポインタ。dwSizeを設定する。 |
| param1 | DWORD | in | 対象オブジェクトの識別子(種別ID/オフセット等)。 |
| param2 | DWORD | in | param1の解釈方法を示すフラグ。DIPH_BYID/DIPH_BYOFFSET/DIPH_BYUSAGE等。 |
vtbl 15 HRESULT GetDeviceInfo(DIDEVICEINSTANCEA* param0)
| param0 | DIDEVICEINSTANCEA* | inout | デバイスのインスタンス情報を受け取るDIDEVICEINSTANCEA構造体へのポインタ。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(LPDIENUMEFFECTSCALLBACKA param0, void* param1, DWORD param2)
| param0 | LPDIENUMEFFECTSCALLBACKA | in | デバイス対応の各エフェクト種別を受け取る列挙コールバック関数(ANSI)。 |
| param1 | void* | inout | コールバックへ渡されるアプリ定義コンテキスト値。NULL可。 |
| param2 | DWORD | in | 列挙するエフェクト種別を絞るフラグ。DIEFT_ALL等を指定する。 |
vtbl 20 HRESULT GetEffectInfo(DIEFFECTINFOA* param0, GUID* param1)
| param0 | DIEFFECTINFOA* | inout | エフェクト情報を受け取るDIEFFECTINFOA構造体へのポインタ。dwSizeを設定する。 |
| param1 | GUID* | in | 情報取得対象のエフェクト種別を識別するGUIDへのポインタ。 |
| param0 | DWORD* | inout | フォースフィードバックの状態フラグを受け取るDWORDへのポインタ。DIGFFS_*値を返す。 |
| param0 | DWORD | in | 送信するFFコマンドフラグ。DISFFC_RESET/DISFFC_STOPALL等を指定する。 |
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(LPSTR param0, LPDIENUMEFFECTSINFILECALLBACK param1, void* param2, DWORD param3)
| param0 | LPSTR | in | 列挙対象のエフェクトファイル(.ffe)パスを示すANSI文字列。 |
| param1 | LPDIENUMEFFECTSINFILECALLBACK | in | ファイル内の各エフェクトを受け取る列挙コールバック関数。 |
| param2 | void* | inout | コールバックへ渡されるアプリ定義コンテキスト値。NULL可。 |
| param3 | DWORD | in | 列挙動作を制御するフラグ。DIFEF_*値を指定する。 |
vtbl 28 HRESULT WriteEffectToFile(LPSTR param0, DWORD param1, DIFILEEFFECT* param2, DWORD param3)
| param0 | LPSTR | in | 出力先エフェクトファイル(.ffe)パスを示すANSI文字列。 |
| param1 | DWORD | in | 書き込むエフェクト数を示す配列要素数。 |
| param2 | DIFILEEFFECT* | inout | 書き込むエフェクト情報を格納したDIFILEEFFECT構造体配列へのポインタ。 |
| param3 | DWORD | in | 書き込み動作を制御するフラグ。DIFEF_*値を指定する。 |
vtbl 29 HRESULT BuildActionMap(DIACTIONFORMATA* param0, LPSTR param1, DWORD param2)
| param0 | DIACTIONFORMATA* | inout | アクションとオブジェクトの対応を構築するDIACTIONFORMATA構造体へのポインタ。 |
| param1 | LPSTR | in | 対象ユーザー名を示すANSI文字列。NULL可で既定ユーザー。 |
| param2 | DWORD | in | 動作フラグ。DIDBAM_DEFAULT/DIDBAM_PRESERVE等を指定する。 |
vtbl 30 HRESULT SetActionMap(DIACTIONFORMATA* param0, LPSTR param1, DWORD param2)
| param0 | DIACTIONFORMATA* | inout | デバイスへ適用するアクションマップを定義するDIACTIONFORMATA構造体へのポインタ。 |
| param1 | LPSTR | in | 対象ユーザー名を示すANSI文字列。NULL可。 |
| param2 | DWORD | in | 動作フラグ。DIDSAM_DEFAULT/DIDSAM_FORCESAVE/DIDSAM_NOUSER等。 |
vtbl 31 HRESULT GetImageInfo(DIDEVICEIMAGEINFOHEADERA* param0)
| param0 | DIDEVICEIMAGEINFOHEADERA* | inout | デバイス画像情報を受け取るDIDEVICEIMAGEINFOHEADERA構造体へのポインタ。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IDirectInputDevice8A "{54D41080-DC15-4833-A41B-748F73A38179}" #usecom global IDirectInputDevice8A IID_IDirectInputDevice8A "{}" #comfunc global IDirectInputDevice8A_GetCapabilities 3 var #comfunc global IDirectInputDevice8A_EnumObjects 4 sptr,sptr,int #comfunc global IDirectInputDevice8A_GetProperty 5 var,var #comfunc global IDirectInputDevice8A_SetProperty 6 var,var #comfunc global IDirectInputDevice8A_Acquire 7 #comfunc global IDirectInputDevice8A_Unacquire 8 #comfunc global IDirectInputDevice8A_GetDeviceState 9 int,sptr #comfunc global IDirectInputDevice8A_GetDeviceData 10 int,var,var,int #comfunc global IDirectInputDevice8A_SetDataFormat 11 var #comfunc global IDirectInputDevice8A_SetEventNotification 12 sptr #comfunc global IDirectInputDevice8A_SetCooperativeLevel 13 sptr,int #comfunc global IDirectInputDevice8A_GetObjectInfo 14 var,int,int #comfunc global IDirectInputDevice8A_GetDeviceInfo 15 var #comfunc global IDirectInputDevice8A_RunControlPanel 16 sptr,int #comfunc global IDirectInputDevice8A_Initialize 17 sptr,int,var #comfunc global IDirectInputDevice8A_CreateEffect 18 var,var,sptr,sptr #comfunc global IDirectInputDevice8A_EnumEffects 19 sptr,sptr,int #comfunc global IDirectInputDevice8A_GetEffectInfo 20 var,var #comfunc global IDirectInputDevice8A_GetForceFeedbackState 21 var #comfunc global IDirectInputDevice8A_SendForceFeedbackCommand 22 int #comfunc global IDirectInputDevice8A_EnumCreatedEffectObjects 23 sptr,sptr,int #comfunc global IDirectInputDevice8A_Escape 24 var #comfunc global IDirectInputDevice8A_Poll 25 #comfunc global IDirectInputDevice8A_SendDeviceData 26 int,var,var,int #comfunc global IDirectInputDevice8A_EnumEffectsInFile 27 str,sptr,sptr,int #comfunc global IDirectInputDevice8A_WriteEffectToFile 28 str,int,var,int #comfunc global IDirectInputDevice8A_BuildActionMap 29 var,str,int #comfunc global IDirectInputDevice8A_SetActionMap 30 var,str,int #comfunc global IDirectInputDevice8A_GetImageInfo 31 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IDirectInputDevice8A "{54D41080-DC15-4833-A41B-748F73A38179}" #usecom global IDirectInputDevice8A IID_IDirectInputDevice8A "{}" #comfunc global IDirectInputDevice8A_GetCapabilities 3 sptr #comfunc global IDirectInputDevice8A_EnumObjects 4 sptr,sptr,int #comfunc global IDirectInputDevice8A_GetProperty 5 sptr,sptr #comfunc global IDirectInputDevice8A_SetProperty 6 sptr,sptr #comfunc global IDirectInputDevice8A_Acquire 7 #comfunc global IDirectInputDevice8A_Unacquire 8 #comfunc global IDirectInputDevice8A_GetDeviceState 9 int,sptr #comfunc global IDirectInputDevice8A_GetDeviceData 10 int,sptr,sptr,int #comfunc global IDirectInputDevice8A_SetDataFormat 11 sptr #comfunc global IDirectInputDevice8A_SetEventNotification 12 sptr #comfunc global IDirectInputDevice8A_SetCooperativeLevel 13 sptr,int #comfunc global IDirectInputDevice8A_GetObjectInfo 14 sptr,int,int #comfunc global IDirectInputDevice8A_GetDeviceInfo 15 sptr #comfunc global IDirectInputDevice8A_RunControlPanel 16 sptr,int #comfunc global IDirectInputDevice8A_Initialize 17 sptr,int,sptr #comfunc global IDirectInputDevice8A_CreateEffect 18 sptr,sptr,sptr,sptr #comfunc global IDirectInputDevice8A_EnumEffects 19 sptr,sptr,int #comfunc global IDirectInputDevice8A_GetEffectInfo 20 sptr,sptr #comfunc global IDirectInputDevice8A_GetForceFeedbackState 21 sptr #comfunc global IDirectInputDevice8A_SendForceFeedbackCommand 22 int #comfunc global IDirectInputDevice8A_EnumCreatedEffectObjects 23 sptr,sptr,int #comfunc global IDirectInputDevice8A_Escape 24 sptr #comfunc global IDirectInputDevice8A_Poll 25 #comfunc global IDirectInputDevice8A_SendDeviceData 26 int,sptr,sptr,int #comfunc global IDirectInputDevice8A_EnumEffectsInFile 27 str,sptr,sptr,int #comfunc global IDirectInputDevice8A_WriteEffectToFile 28 str,int,sptr,int #comfunc global IDirectInputDevice8A_BuildActionMap 29 sptr,str,int #comfunc global IDirectInputDevice8A_SetActionMap 30 sptr,str,int #comfunc global IDirectInputDevice8A_GetImageInfo 31 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。