Microsoft DirectX 8.0 (C++)

IDirectInputDevice8::SetActionMap

デバイスのデータ形式を設定し、アプリケーション定義のアクションをデバイス オブジェクトにマップする。バッファリング データのバッファ サイズも設定する。

注 :  このメソッドを呼び出す前に、デバイスを解放しておく必要がある。

HRESULT SetActionMap(
  LPCDIACTIONFORMAT lpdiActionFormat,
  LPCWSTR lptszUserName,
  DWORD dwFlags
);

パラメータ

lpdiActionFormat
適用するアクション マップに関する情報を格納する、DIACTIONFORMAT 構造体のアドレス。
lptszUserName
どのユーザーのアクション マップを設定しているかについて、ユーザー名を指定する Unicode 文字列。NULL を指定すると、現在システムにログインしているユーザーを表す。
dwFlags
アクション マップの適用方法を指定する DWORD 値。この値は、次の値のいずれかである。
DIDSAM_DEFAULT
このユーザーのアクション マップを設定する。マップが現在のマップと異なる場合、新しい設定がディスクに保存される。
DIDSAM_FORCESAVE
構成を常にディスクに保存する。
DIDSAM_NOUSER
デフォルトの構成プロパティ シートでこのデバイスのユーザー所有権をリセットする。ユーザー所有権をリセットしても、現在のアクション マップは削除されない。

戻り値

成功した場合は、次のいずれかの戻り値を返す。

DI_OK
DI_SETTINGSNOTSAVED
DI_WRITEPROTECT

失敗した場合は、次のいずれかのエラー値を返す。

DIERR_ACQUIRED
DIERR_INVALIDPARAM

注意

このメソッドを使うことで、アクションとコントロールのマッピングをデバイスのデフォルトから変更できる。アプリケーションは、このメソッドを使ってゲーム内のアクションを仮想コントロールにマップする必要がある。

このメソッドに渡されるユーザー名により、デバイスのアクション マッピングのセットが特定ユーザーにバインドされる。設定が現在適用されているマップと異なる場合は、自動的にディスクに保存される。複数のユーザーから入力を受け付けるアプリケーションは、各ユーザーのアクション マップが競合する可能性があるので、システムのマウスやキーボードにアクション マップを適用する際は注意が必要である。

このメソッドはデバイスが取得されていない場合にのみ呼び出すことができる。

動作環境

  Windows NT/2000 : Windows 2000 以降に対する再配布可能ファイルとして提供。
  Windows 95/98 : Windows 95 以降に対する再配布可能ファイルとして提供。
  ヘッダー : dinput.h で宣言。

参照

IDirectInputDevice8::BuildActionMap