XInput Plus:技術メモ
(2013/01/03)
XInput1_3.dll の非公開関数
公開されているXInputAPIでは、ガイドボタン状態の取得や無線コントローラーの電源OFFなど機能は提供されていない。
XInput1_3.dllには非公開の関数がいくつかあり、これを使用するとガイドボタン状態の取得・電源OFFが出来る。
これらの関数は、名前なし(NONAME)の序数のみでエクスポートされており、XInput1_3.dll以前のバージョン(XInput1_1.dll/XInput1_2.dll/XInput9_1_0.dll)には実装されていない。
*関数名はMicrosoft Symbol Server情報から取得。引数の名称などは推定
XInputGetStateEx (序数:100)
DWORD XInputGetStateEx( _In_ DWORD dwUserIndex, _Out_ XINPUT_STATE *pState );
使い方はXInputGetStateと同じ。
異なる点としては、コントローラー状態が格納されるpState(XINPUT_STATE)中のXINPUT_GAMEPADのwButtonsに、ガイドボタンの状態に該当するビット(0x0400)も設定される。
XInputWaitForGuideButton (序数:101)
DWORD XInputWaitForGuideButton( _In_ DWORD dwUserIndex, _In_ DWORD dwFlag, _Out_? unKnown *pUnKnown );
詳細不明。dwUserIndexで指定されたコントローラーのガイドボタンが押されるまで待つ?
XInputCancelGuideButtonWait (序数:102)
DWORD XInputCancelGuideButtonWait( _In_ DWORD dwUserIndex );
XInputWaitForGuideButtonをキャンセルする?
XInputPowerOffController (序数:103)
DWORD XInputPowerOffController( _In_ DWORD dwUserIndex );
dwUserIndex(0~3)で指定するコントローラーの電源をOFFにする。
XInputGetCapabilitiesで取得されるコントローラーのSubType
XInputGetCapabilitiesで接続されているコントローラーのSubTypeが取得できる。
ワイヤレススピードホイールのSubType
ワイヤレススピードホイールのSubTypeは、MSDNやXInput.hで定義されていない0x52になる。
アプリケーションが読み込むDLLの検索順序
*.exe.localファイルを作ると、フルパス指定でLoadLibraryをした場合でも、アプリケーションディレクトリにあるDLLが優先される。