XInput Plus‎ > ‎

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が優先される。