IDirectInputDevice8::SetActionMap
デバイスのデータ フォーマットを設定し、アプリケーション定義のアクションをデバイス オブジェクトにマップします。また、バッファー データのバッファー サイズも設定します。
HRESULT
SetActionMap(
LPCDIACTIONFORMAT lpdiActionFormat,
LPCTSTR lptszUserName,
DWORD dwFlags
);
パラメータ
- lpdiActionFormat
適用するアクション マップに関する情報を含む DIACTIONFORMAT 構造体のアドレス。 - lptszUserName
アクション マップを設定する対象のユーザー名を指定する Unicode 文字列。NULL 値は、システムに現在ログインしているユーザーを指定します。 - dwFlags
アクション マップの適用方法を指定する DWORD 値。これには次の値のいずれかを指定します。- DIDSAM_DEFAULT
このユーザーに対してアクション マップを設定します。マップが現在のマップと異なる場合、新しい設定がディスクに保存されます。 - DIDSAM_FORCESAVE
常に構成をディスクに保存します。 - DIDSAM_NOUSER
デフォルト構成プロパティ シート内で、このデバイスのユーザー所有権をリセットします。ユーザー所有権をリセットしても、現在のアクション マップは削除されません。
- DIDSAM_DEFAULT
戻り値
メソッドが正常に実行された場合、戻り値は DI_OK、DI_SETTINGSNOTSAVED、または DI_WRITEPROTECT のいずれかのエラー値です。メソッドが失敗した場合、戻り値は次のいずれかのエラー値です。DIERR_ACQUIRED または DIERR_INVALIDPARAM、DI_SETTINGSNOTSAVED、DI_WRITEPROTECT、DIERR_ACQUIRED、DIERR_INVALIDPARAM
解説
このメソッドは、アクションとコントロールのマッピングをデバイスのデフォルトから変更するための手段です。アプリケーションがゲーム内のアクションを仮想コントロールにマップするには、このメソッドを使用する必要があります。
このメソッドにユーザー名を渡すと、デバイスの一連のアクション マッピングが特定のユーザーにバインドされます。現在適用されているマップと異なる場合、設定は自動的にディスクに保存されます。複数のユーザーから入力を受け付けるアプリケーションでは、各ユーザーのアクション マップが競合する可能性があるので、システム マウスまたはキーボードにアクション マップを適用する際には十分に注意する必要があります。
このメソッドは、デバイスが獲得されていないときにのみ呼び出すことができます。
IDirectInputDevice8::BuildActionMap が正常に実行されても、アクションがマップされていない場合、IDirectInputDevice8::SetActionMap の後続の呼び出しからは DI_OK が返されますが、IDirectInputDevice8 インターフェイス の呼び出しは失敗して DIERR_INVALIDPARAM が返されます。
要件
ヘッダー: Dinput.h 宣言