DIACTIONFORMAT 構造体

DIACTIONFORMAT 構造体

呼び出し元アプリケーションに関する情報を格納し、ジャンルのアクションとコントロールのマッピングを定義する DIACTION 構造体配列のコンテナとして動作する。

構文

typedef struct {
    DWORD dwSize;
    DWORD dwActionSize;
    DWORD dwDataSize;
    DWORD dwNumActions;
    LPDIACTION rgoAction;
    GUID guidActionMap;
    DWORD dwGenre;
    DWORD dwBufferSize;
    LONG lAxisMin;
    LONG lAxisMax;
    HINSTANCE hInstString;
    FILETIME ftTimeStamp;
    DWORD dwCRC;
    TCHAR tszActionMap[MAX_PATH];
} DIACTIONFORMAT;

メンバ

  • dwSize
    DIACTIONFORMAT 構造体のサイズをバイト単位で指定する DWORD 値。

  • dwActionSize
    DIACTION 構造体のサイズをバイト単位で指定する DWORD 値。

  • dwDataSize
    デバイスの直接データを使うデバイスが返すデバイス データのサイズを、バイト単位で指定する DWORD 値。このメンバは、dwNumActions を 4 倍した値である。

  • dwNumActions
    rgoAction 配列の要素数を指定する DWORD 値。

  • rgoAction
    DIACTION 構造体の配列のアドレス。各構造体が、アクションと仮想コントロールまたはデバイス オブジェクトのマップ方法、およびマッピング情報をユーザーに表示する方法を表す。

  • guidActionMap
    アクション マップを識別するグローバル一意識別子 (GUID)。デバイス メーカーはこの値を使って特定のタイトルのマッピングを調整できる。

  • dwGenre
    アプリケーションのジャンルを指定する DWORD 値。設定可能な値については、「アクション マッピング定数」を参照すること。

  • dwBufferSize
    アクション マップが適用される各デバイスの、バッファ内の入力データ パケット数を指定する DWORD 値。IDirectInputDevice8::GetDeviceData でデータを取得するために、バッファ サイズをゼロより大きい値に設定する必要がある。IDirectInputDevice8::SetActionMap を呼び出す前に、アプリケーションがこのメンバに目的のバッファ サイズを設定する場合、IDirectInputDevice8::SetProperty で DIPROP_BUFFERSIZE プロパティを設定する必要はない。

  • lAxisMin
    すべての軸で取得される計測データの範囲の最小値。DIACTION.dwFlags に DIA_NORANGE フラグが設定された場合、この値は特定のアクション軸に対して無視される。

    この値は、軸アクションに対してのみ有効であり、その他のすべての操作に対しては 0 に設定する必要がある。DIPROPRANGE.lMin として使うと、IDirectInputDevice8::SetActionMap でアクション マップを適用するときに、絶対軸に範囲プロパティを設定できる。

  • lAxisMax
    すべての軸で取得される計測データの範囲の最大値。DIACTION.dwFlags に DIA_NORANGE フラグが設定された場合、この値は特定のアクション軸に対して無視される。

    この値は、軸アクションに対してのみ有効であり、その他のすべての操作に対しては 0 に設定する必要がある。DIPROPRANGE.lMax として使うと、IDirectInputDevice8::SetActionMap でアクション マップを適用するときに、絶対軸に範囲プロパティを設定できる。

  • hInstString
    各アクションの DIACTION 構造体の uResIdString メンバに指定された、アクション名の文字列リソースを格納するモジュールのハンドル。アクション名が各アクションの DIACTION 構造体の lptszActionName メンバに指定されている場合は、ゼロにできる。

  • ftTimeStamp
    アクション マップが最後にディスクに書き込まれた時刻を受け取る FILETIME 構造体。「注意」を参照すること。

  • dwCRC
    このマップの巡回冗長検査 (CRC)。マッピング セットをディスクに保存する時期を決定するために、Microsoft® DirectInput® が内部的に使う。

  • tszActionMap
    このアクション マップの登録名を指定する、最大長 MAX_PATH の NULL 終端文字列。この文字列は、デフォルト プロパティ シートのドロップダウン リスト ボックスに表示される。

注意

ftTimeStamp メンバには、新規デバイスや未使用デバイスに適用する特殊値を格納できる。新規デバイスとは、このアプリケーションでは列挙されておらず、アクション マップが適用されていないデバイスのことである。未使用デバイスとは、以前にこのアプリケーションで列挙されているが、アクション マップが適用されていないデバイスのことである。新規デバイスの場合、FILETIME 構造体の下と上の DWORD に、それぞれ DIAFTS_NEWDEVICELOW と DIAFTS_NEWDEVICEHIGH が常に設定されている。未使用デバイスの場合は、ここに DIAFTS_UNUSEDDEVICELOW と DIAFTS_UNUSEDDEVICEHIGH が設定されている。

アプリケーションで新規デバイスの有無をチェックするために ftTimeStamp を使ってはならない。この方法の代わりに、列挙コールバック関数で DIEDBS_RECENTDEVICE と DIEDBS_NEWDEVICE フラグが返されたかどうかを確認する必要がある。詳細については、「DIEnumDevicesBySemanticsCallback」を参照すること。

構造体の情報

ヘッダー dinput.h
最低限のオペレーティング システム Windows 98

参照

IDirectInput8::EnumDevicesBySemanticsIDirectInputDevice8::SetActionMapIDirectInput8::ConfigureDevicesIDirectInputDevice8::BuildActionMapアクション マップ