次の方法で共有


DIACTIONFORMAT

呼び出し側アプリケーションに関する情報を格納し、ジャンルに応じたアクションからコントロールへのマッピングを定義する DIACTION 構造体の配列のコンテナーとして使用されます。

typedef struct DIACTIONFORMAT {
    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, *LPDIACTIONFORMAT;

メンバ

  • 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
    すべての軸について返される、スケール設定済みデータの範囲の最小値。DIA_NORANGE フラグが DIACTION.dwFlags 内で設定されている場合、特定のアクション軸に対してはこの値は無視されます。 この値は軸アクションのみに対して有効で、その他すべてのアクションに対してはゼロに設定する必要があります。この値は、IDirectInputDevice8::SetActionMap を使用してアクション マップを適用する際に、絶対軸の範囲プロパティを設定する DIPROPRANGE.lmin 値として使用されます。
  • lAxisMax
    すべての軸について返される、スケール設定済みデータの範囲の最大値。DIA_NORANGE フラグが DIACTION.dwFlags 内で設定されている場合、特定のアクション軸に対してはこの値は無視されます。 この値は軸アクションのみに対して有効で、その他すべてのアクションに対してはゼロに設定する必要があります。この値は、IDirectInputDevice8::SetActionMap を使用してアクション マップを適用する際に、絶対軸の範囲プロパティを設定する DIPROPRANGE.lmax 値として使用されます。
  • hInstString
    アクション名の文字列リソースを含むモジュールのハンドル。これらのリソースは、それぞれのアクションごとに、DIACTION 構造体の uResIdString メンバーに指定されています。それぞれのアクションごとにアクション名が DIACTION 構造体の lptszActionName メンバーに指定されている場合は、ゼロを指定できます。
  • ftTimeStamp
    このアクション マップが最後にディスクに書き込まれた時刻を受け取る FILETIME 構造体。「解説」を参照してください。
  • dwCRC
    このマップの巡回冗長検査。一連のマッピングをディスクに保存するかどうか決定するために、DirectInput の内部で使用されます。
  • tszActionMap
    このアクション マップのわかりやすい名前を指定する NULL 終端文字列 (最大長 MAX_PATH)。この文字列は、デフォルト プロパティ シートのドロップダウン リスト ボックスに表示されます。

解説 

ftTimeStamp メンバーには、新規デバイスと未使用デバイスに適用される特殊な値を指定できます。新規デバイスとは、このアプリケーションに対して列挙されたことがなく、アクション マップがまだ一度も適用されていないデバイスです。未使用デバイスは、前にアプリケーションに対して列挙されましたが、アクション マップがまだ一度も適用されていないデバイスです。新規デバイスに対しては、FILETIME 構造体の下位と上位の DWORD に、それぞれ DIAFTS_NEWDEVICELOW と DIAFTS_NEWDEVICEHIGH が常に指定されます。 ◆前の文節に含まれる◇ ◆前の文節に含まれる◇未使用のデバイスに対しては、これらの位置に DIAFTS_UNUSEDDEVICELOW と DIAFTS_UNUSEDDEVICEHIGH が指定されます。

アプリケーションは、 新規デバイスをチェックするために ftTimeStamp を使用してはなりません。代わりに、列挙コールバック内で DIEDBS_RECENTDEVICE フラグと DIEDBS_NEWDEVICE フラグを検査する必要があります。詳細については、「DIEnumDevicesBySemanticsCallback」を参照してください。

関連項目

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