Microsoft DirectX 8.0 (C++)

DIACTIONFORMAT

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

typedef struct {
    DWORD              dwSize;
    DWORD              dwActionSize;
    DWORD              dwDataSize;
    DWORD              dwNumActions;
    LPDIACTION         rgoAction;
    GUID               guidActionMap;
    DWORD              dwGenre;
    DWORD              dwBufferSize;
    OPTIONAL LONG      lAxisMin;
    OPTIONAL LONG      lAxisMax;
    OPTIONAL 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 に設定する必要がある。IDirectInputDevice8::SetActionMap でアクション マップを適用するときに、絶対軸に範囲プロパティを設定するために DIPROPRANGE.lMin 値として使用される。

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

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

hInstString
各アクションの DIACTION 構造体の uResIdString メンバに指定された、アクション名の文字列リソースを格納するモジュールのハンドル。アクション名が各アクションの DIACTION 構造体の lptszActionName メンバに指定されている場合はゼロでよい。
ftTimeStamp
アクション マップが最後にディスクに書き込まれた時刻を受け取る FILETIME 構造体。「注意」を参照すること。
dwCRC
このマップの巡回冗長検査 (CRC)。マッピング セットをディスクに保存する時期を決定するために、Microsoft® DirectInput® が内部的に使用する。
tszActionMap
このアクション マップの登録名を指定する、最大長 MAX_PATH の NULL 終端文字列。この文字列は、デフォルト プロパティ シートのドロップダウン リスト ボックスに表示される。

注意

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

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

動作環境

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

参照

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