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

IDirectInputDeviceW

COM
IID5944e681-c92e-11cf-bfc7-444553540000継承元IUnknown自前メソッド開始 vtbl3

メソッド 15

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

vtbl 3 HRESULT GetCapabilities(DIDEVCAPS* param0)
param0DIDEVCAPS*inoutデバイスの機能情報を受け取るDIDEVCAPS構造体。
vtbl 4 HRESULT EnumObjects(LPDIENUMDEVICEOBJECTSCALLBACKW param0, void* param1, DWORD param2)
param0LPDIENUMDEVICEOBJECTSCALLBACKWin各オブジェクト列挙時に呼ばれるコールバック関数。
param1void*inoutコールバックへ渡すアプリケーション定義の値。
param2DWORDin列挙対象のオブジェクト種別を指定するDIDFT_*フラグ。
vtbl 5 HRESULT GetProperty(GUID* param0, DIPROPHEADER* param1)
param0GUID*in取得するプロパティを識別するGUID(DIPROP_*)。
param1DIPROPHEADER*inoutプロパティ値を受け取るDIPROPHEADER構造体。
vtbl 6 HRESULT SetProperty(GUID* param0, DIPROPHEADER* param1)
param0GUID*in設定するプロパティを識別するGUID(DIPROP_*)。
param1DIPROPHEADER*inout設定するプロパティ値を格納したDIPROPHEADER構造体。
vtbl 7 HRESULT Acquire()
vtbl 8 HRESULT Unacquire()
vtbl 9 HRESULT GetDeviceState(DWORD param0, void* param1)
param0DWORDin受け取る状態データバッファーのサイズ(バイト単位)。
param1void*inoutデバイスの即時状態データを受け取るバッファー。
vtbl 10 HRESULT GetDeviceData(DWORD param0, DIDEVICEOBJECTDATA* param1, DWORD* param2, DWORD param3)
param0DWORDinDIDEVICEOBJECTDATA各要素のサイズ(バイト単位)。
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排他/非排他、前景/背景を指定する協調レベルフラグ。
vtbl 14 HRESULT GetObjectInfo(DIDEVICEOBJECTINSTANCEW* param0, DWORD param1, DWORD param2)
param0DIDEVICEOBJECTINSTANCEW*inoutオブジェクト情報を受け取るDIDEVICEOBJECTINSTANCEW構造体。
param1DWORDin情報を取得する対象オブジェクトの識別子。
param2DWORDinparam1の解釈方法を示すDIPH_*指定子。
vtbl 15 HRESULT GetDeviceInfo(DIDEVICEINSTANCEW* param0)
param0DIDEVICEINSTANCEW*inoutデバイスのインスタンス情報を受け取るDIDEVICEINSTANCEW構造体。
vtbl 16 HRESULT RunControlPanel(HWND param0, DWORD param1)
param0HWNDinコントロールパネルダイアログの親ウィンドウハンドル。
param1DWORDin予約済みフラグ。0を指定する。
vtbl 17 HRESULT Initialize(HINSTANCE param0, DWORD param1, GUID* param2)
param0HINSTANCEin呼び出し元アプリケーションのインスタンスハンドル。
param1DWORDin使用するDirectInputのバージョン番号。
param2GUID*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 指定が可能。