次の方法で共有


DIACTION

1 つのゲーム アクションから 1 つのデバイス セマンティクスへのマッピングを記述します。DIACTION 構造体の配列は、DIACTIONFORMAT 構造体に含まれています。

構文

typedef struct _DIACTION {
    UINT_PTR    uAppData;
    DWORD       dwSemantic;
    DWORD       dwFlags;
    union {
        LPCTSTR lptszActionName;
        UINT    uResIdString;
    };
    GUID        guidInstance;
    DWORD       dwObjID;
    DWORD       dwHow;
} DIACTION, *LPDIACTION;
 
typedef const DIACTION *LPCDIACTION;

メンバー

  • uAppData
    アクションに関連したコントロールの状態が変化したときに、IDirectInputDevice8::GetDeviceData からアプリケーションに返されるアプリケーション定義の UINT 値のアドレス。この値は、DIDEVICEOBJECTDATA 構造体の uAppData メンバーに返されます。通常は、デバイス オブジェクトに関連したアプリケーション固有のアクションの識別子ですが、関数ポインターの場合もあります。

  • dwSemantic
    ジョイスティックの場合は、仮想コントロールを表すこのアプリケーション ジャンルに定義済みのアクション マッピング定数、またはそのジャンルに定義されていないコントロールの定数。キーボードまたはマウスの場合は、特定のデバイス オブジェクトを表す定数。「アクション マッピング定数」を参照してください。

  • dwFlags
    特定の属性または処理を要求するために使用されるフラグ。ゼロ、または次のいずれかの値 (複数可) を指定します。

    • DIA_APPFIXED
      このアクションは DirectInput によって再マップできません。
    • DIA_APPMAPPED
      dwObjID メンバーが有効で、IDirectInputDevice8::BuildActionMap はアプリケーション定義のマッピングを上書きしません。
    • DIA_APPNOMAP
      このアクションはマップされません。
    • DIA_FORCEFEEDBACK
      アクションはアクチュエーターまたはトリガーにマップする必要があります。
    • DIA_NORANGE
      このアクションに対して既定の範囲は設定されません。このフラグは、絶対軸アクションに対してのみ設定できます。
  • lptszActionName
    アプリケーション定義のアクション名。この文字列は、IDirectInput8::ConfigureDevices が呼び出されたときにデバイス プロパティ シートに表示されます。

  • uResIdString
    このアクションに使用される文字列のリソース識別子。このリソースのモジュール インスタンスは、この構造体を含む DIACTIONFORMAT 構造体の hInstString メンバーに指定されます。

  • guidInstance
    特定のデバイスが要求されている場合は、デバイスのインスタンス グローバル一意識別子 (GUID)。そうでなければ GUID_NULL。

  • dwObjID
    コントロール識別子。この値からインスタンスと種類を取得するには、DIDFT_GETINSTANCE マクロと DIDFT_GetType マクロを使用します。

  • dwHow
    構造体が IDirectInputDevice8::BuildActionMap から返されるときに、このメンバーは DirectInput がアクションの構成に使用したマッピング方式を示す値を受け取ります。アクション マップが IDirectInputDevice8::SetActionMap に渡される場合には、このメンバーは無視されます。次の値が定義されています。

    • DIAH_APPREQUESTED
      マッピングはアプリケーションによって構成されており、IDirectInputDevice8::BuildActionMap の呼び出し時にデバイス (guidInstance) とデバイス オブジェクト (dwObjID) が指定されました。
    • DIAH_DEFAULT
      他のマッピング情報が存在しないため、マッピングは DirectInput によって決定されました。
    • DIAH_ERROR
      エラーが発生しました。アクションはデバイス上のコントロールと一致しません。アクション マップの設定時に、このアクションは無視されます。
    • DIAH_HWAPP
      マッピングは、このゲームのハードウェア製造元によって指定されました。
    • DIAH_HWDEFAULT
      マッピングは、このジャンルのハードウェア製造元によって指定されました。
    • DIAH_UNMAPPED
      該当するデバイス オブジェクトが見つかりませんでした。
    • DIAH_USERCONFIG
      マッピングはユーザーによって構成されました。

関連項目

IDirectInput8::EnumDevicesBySemantics, IDirectInputDevice8::SetActionMap, IDirectInput8::ConfigureDevices, IDirectInputDevice8::BuildActionMap