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::EnumDevicesBySemantics、IDirectInputDevice8::SetActionMap、IDirectInput8::ConfigureDevices、IDirectInputDevice8::BuildActionMap、アクション マップ