Win32 API 日本語リファレンス
ホームDevices.HumanInterfaceDevice › IDirectInputDevice8W

IDirectInputDevice8W

COM
IID54d41081-dc15-4833-a41b-748f73a38179継承元IUnknown自前メソッド開始 vtbl3

メソッド 29

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

vtbl 3 HRESULT GetCapabilities(DIDEVCAPS* param0)
param0DIDEVCAPS*inoutデバイスの能力(軸数・ボタン数・フラグ等)を受け取るDIDEVCAPS構造体へのポインタ。dwSizeを事前設定する。
vtbl 4 HRESULT EnumObjects(LPDIENUMDEVICEOBJECTSCALLBACKW param0, void* param1, DWORD param2)
param0LPDIENUMDEVICEOBJECTSCALLBACKWin各入力オブジェクト(軸/ボタン/POV等)を受け取る列挙コールバック関数(Unicode)。
param1void*inoutコールバックへ渡されるアプリ定義コンテキスト値。NULL可。
param2DWORDin列挙対象種別を絞るフラグ。DIDFT_AXIS/DIDFT_BUTTON/DIDFT_ALL等を指定する。
vtbl 5 HRESULT GetProperty(GUID* param0, DIPROPHEADER* param1)
param0GUID*in取得するプロパティを識別するGUID。DIPROP_RANGE等の定義済み値を指す。
param1DIPROPHEADER*inoutプロパティ値を受け取るDIPROPHEADER先頭の構造体へのポインタ。
vtbl 6 HRESULT SetProperty(GUID* param0, DIPROPHEADER* param1)
param0GUID*in設定するプロパティを識別するGUID。DIPROP_BUFFERSIZE等を指す。
param1DIPROPHEADER*inout設定値を格納したDIPROPHEADER先頭の構造体へのポインタ。
vtbl 7 HRESULT Acquire()
vtbl 8 HRESULT Unacquire()
vtbl 9 HRESULT GetDeviceState(DWORD param0, void* param1)
param0DWORDinparam1が指すバッファのバイトサイズ。データ形式に一致させる。
param1void*inout現在のデバイス状態を受け取るバッファへのポインタ。形式はSetDataFormatに依存する。
vtbl 10 HRESULT GetDeviceData(DWORD param0, DIDEVICEOBJECTDATA* param1, DWORD* param2, DWORD param3)
param0DWORDinDIDEVICEOBJECTDATA要素1個分のバイトサイズ。
param1DIDEVICEOBJECTDATA*inoutバッファ済み入力データを受け取る配列へのポインタ。NULL指定で件数のみ取得可。
param2DWORD*inout入出力。要求/実際に取得した要素数を受け渡すポインタ。
param3DWORDin動作フラグ。DIGDD_PEEK指定で読み取り後もデータを保持する。
vtbl 11 HRESULT SetDataFormat(DIDATAFORMAT* param0)
param0DIDATAFORMAT*inoutデバイス状態の解釈方法を定義するDIDATAFORMAT構造体へのポインタ。
vtbl 12 HRESULT SetEventNotification(HANDLE param0)
param0HANDLEinデバイス状態変化時にシグナルされるイベントオブジェクトのハンドル。NULLで通知解除。
vtbl 13 HRESULT SetCooperativeLevel(HWND param0, DWORD param1)
param0HWNDin協調レベルを関連付ける対象ウィンドウのハンドル。
param1DWORDin協調レベルフラグ。DISCL_EXCLUSIVE/DISCL_FOREGROUND等の組み合わせを指定する。
vtbl 14 HRESULT GetObjectInfo(DIDEVICEOBJECTINSTANCEW* param0, DWORD param1, DWORD param2)
param0DIDEVICEOBJECTINSTANCEW*inoutオブジェクト情報を受け取るDIDEVICEOBJECTINSTANCEW構造体へのポインタ。dwSizeを設定する。
param1DWORDin対象オブジェクトの識別子(種別ID/オフセット等)。
param2DWORDinparam1の解釈方法を示すフラグ。DIPH_BYID/DIPH_BYOFFSET/DIPH_BYUSAGE等。
vtbl 15 HRESULT GetDeviceInfo(DIDEVICEINSTANCEW* param0)
param0DIDEVICEINSTANCEW*inoutデバイスのインスタンス情報を受け取るDIDEVICEINSTANCEW構造体へのポインタ。dwSizeを設定する。
vtbl 16 HRESULT RunControlPanel(HWND param0, DWORD param1)
param0HWNDinコントロールパネル表示時の親ウィンドウハンドル。NULL可。
param1DWORDin予約フラグ。現状は0を指定する。
vtbl 17 HRESULT Initialize(HINSTANCE param0, DWORD param1, GUID* param2)
param0HINSTANCEin呼び出し元モジュールのインスタンスハンドル。
param1DWORDin使用するDirectInputのバージョン番号(DIRECTINPUT_VERSION)。
param2GUID*in初期化対象デバイスを識別するGUIDへのポインタ。
vtbl 18 HRESULT CreateEffect(GUID* param0, DIEFFECT* param1, IDirectInputEffect** param2, IUnknown* param3)
param0GUID*in作成するエフェクト種別を識別するGUID(GUID_ConstantForce等)へのポインタ。
param1DIEFFECT*inoutエフェクトのパラメータを格納したDIEFFECT構造体へのポインタ。NULL可。
param2IDirectInputEffect**out作成されたIDirectInputEffectインターフェイスを受け取る出力ポインタ。
param3IUnknown*in集約(アグリゲーション)用の外部IUnknown。通常はNULL。
vtbl 19 HRESULT EnumEffects(LPDIENUMEFFECTSCALLBACKW param0, void* param1, DWORD param2)
param0LPDIENUMEFFECTSCALLBACKWinデバイス対応の各エフェクト種別を受け取る列挙コールバック関数(Unicode)。
param1void*inoutコールバックへ渡されるアプリ定義コンテキスト値。NULL可。
param2DWORDin列挙するエフェクト種別を絞るフラグ。DIEFT_ALL/DIEFT_CONSTANTFORCE等。
vtbl 20 HRESULT GetEffectInfo(DIEFFECTINFOW* param0, GUID* param1)
param0DIEFFECTINFOW*inoutエフェクト情報を受け取るDIEFFECTINFOW構造体へのポインタ。dwSizeを設定する。
param1GUID*in情報取得対象のエフェクト種別を識別するGUIDへのポインタ。
vtbl 21 HRESULT GetForceFeedbackState(DWORD* param0)
param0DWORD*inoutフォースフィードバックの状態フラグを受け取るDWORDへのポインタ。DIGFFS_*値を返す。
vtbl 22 HRESULT SendForceFeedbackCommand(DWORD param0)
param0DWORDin送信するFFコマンドフラグ。DISFFC_RESET/DISFFC_STOPALL/DISFFC_PAUSE等。
vtbl 23 HRESULT EnumCreatedEffectObjects(LPDIENUMCREATEDEFFECTOBJECTSCALLBACK param0, void* param1, DWORD param2)
param0LPDIENUMCREATEDEFFECTOBJECTSCALLBACKinこのデバイスで作成済みの各エフェクトを受け取る列挙コールバック関数。
param1void*inoutコールバックへ渡されるアプリ定義コンテキスト値。NULL可。
param2DWORDin予約フラグ。現状は0を指定する。
vtbl 24 HRESULT Escape(DIEFFESCAPE* param0)
param0DIEFFESCAPE*inoutドライバ固有の拡張コマンドを格納したDIEFFESCAPE構造体へのポインタ。
vtbl 25 HRESULT Poll()
vtbl 26 HRESULT SendDeviceData(DWORD param0, DIDEVICEOBJECTDATA* param1, DWORD* param2, DWORD param3)
param0DWORDinDIDEVICEOBJECTDATA要素1個分のバイトサイズ。
param1DIDEVICEOBJECTDATA*inoutデバイスへ送信する出力データ配列へのポインタ。
param2DWORD*inout入出力。送信要求/実際に送信した要素数を受け渡すポインタ。
param3DWORDin送信動作フラグ。DISDD_CONTINUE等を指定する。
vtbl 27 HRESULT EnumEffectsInFile(LPWSTR param0, LPDIENUMEFFECTSINFILECALLBACK param1, void* param2, DWORD param3)
param0LPWSTRin列挙対象のエフェクトファイル(.ffe)パスを示すUnicode文字列。
param1LPDIENUMEFFECTSINFILECALLBACKinファイル内の各エフェクトを受け取る列挙コールバック関数。
param2void*inoutコールバックへ渡されるアプリ定義コンテキスト値。NULL可。
param3DWORDin列挙動作を制御するフラグ。DIFEF_*値を指定する。
vtbl 28 HRESULT WriteEffectToFile(LPWSTR param0, DWORD param1, DIFILEEFFECT* param2, DWORD param3)
param0LPWSTRin出力先エフェクトファイル(.ffe)パスを示すUnicode文字列。
param1DWORDin書き込むエフェクト数を示す配列要素数。
param2DIFILEEFFECT*inout書き込むエフェクト情報を格納したDIFILEEFFECT構造体配列へのポインタ。
param3DWORDin書き込み動作を制御するフラグ。DIFEF_*値を指定する。
vtbl 29 HRESULT BuildActionMap(DIACTIONFORMATW* param0, LPWSTR param1, DWORD param2)
param0DIACTIONFORMATW*inoutアクションとオブジェクトの対応を構築するDIACTIONFORMATW構造体へのポインタ。
param1LPWSTRin対象ユーザー名を示すUnicode文字列。NULL可で既定ユーザー。
param2DWORDin動作フラグ。DIDBAM_DEFAULT/DIDBAM_PRESERVE等を指定する。
vtbl 30 HRESULT SetActionMap(DIACTIONFORMATW* param0, LPWSTR param1, DWORD param2)
param0DIACTIONFORMATW*inoutデバイスへ適用するアクションマップを定義するDIACTIONFORMATW構造体へのポインタ。
param1LPWSTRin対象ユーザー名を示すUnicode文字列。NULL可。
param2DWORDin動作フラグ。DIDSAM_DEFAULT/DIDSAM_FORCESAVE/DIDSAM_NOUSER等。
vtbl 31 HRESULT GetImageInfo(DIDEVICEIMAGEINFOHEADERW* param0)
param0DIDEVICEIMAGEINFOHEADERW*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 指定が可能。