Microsoft DirectX 8.0 (C++)

DIDEVICEOBJECTINSTANCE

デバイス オブジェクトのインスタンスに関する情報を格納する。この構造体は、IDirectInputDevice8::EnumObjects メソッドで使用され、DIEnumDeviceObjectsCallback コールバック関数に対して、軸またはボタンなど、デバイスに関連付けられた特定のオブジェクトに関する情報を提供する。また、デバイス オブジェクトの情報を取得するために、IDirectInputDevice8::GetObjectInfo メソッドでも使用される。

typedef struct DIDEVICEOBJECTINSTANCE { 
    DWORD dwSize; 
    GUID  guidType; 
    DWORD dwOfs; 
    DWORD dwType; 
    DWORD dwFlags; 
    TCHAR tszName[MAX_PATH]; 
    DWORD dwFFMaxForce; 
    DWORD dwFFForceResolution; 
    WORD  wCollectionNumber;
    WORD  wDesignatorIndex;
    WORD  wUsagePage;
    WORD  wUsage;
    DWORD dwDimension;
    WORD  wExponent;
    WORD  wReportId;
} DIDEVICEOBJECTINSTANCE, *LPDIDEVICEOBJECTINSTANCE; 
 
typedef const DIDEVICEOBJECTINSTANCE *LPCDIDEVICEOBJECTINSTANCE;

メンバ

dwSize
この構造体のバイト単位のサイズ。列挙の間に、アプリケーションはこの値を調べ、構造体のメンバがいくつ有効であるかを確認できる。構造体が IDirectInputDevice8::GetObjectInfo メソッドに渡されるとき、このメンバを sizeof(DIDEVICEOBJECTINSTANCE) に初期化しなければならない。
guidType
オブジェクト タイプを示す一意な識別子。このメンバはオプションである。次のいずれか 1 つの値を取ることができる。
GUID_XAxis
水平軸。たとえば、マウスの左右の動きを表すことができる。
GUID_YAxis
垂直軸。たとえば、マウスの前後の動きを表すことができる。
GUID_ZAxis
z 軸。たとえば、マウス上のホイールの回転、またはジョイスティックのスロットル制御の移動を表すことができる。
GUID_RxAxis
x 軸を中心とする回転。
GUID_RyAxis
y 軸を中心とする回転。
GUID_RzAxis
z 軸を中心とする回転 (方向舵のコントロールでよく使われる)。
GUID_Slider
スライダ軸。
GUID_Button
マウス ボタン。
GUID_Key
キーボードのキー。
GUID_POV
視点インジケータ
GUID_Unknown
確定できない。

将来、これ以外のオブジェクト タイプも定義される可能性がある。

dwOfs
データ形式内のオフセットで、このオブジェクトに報告されるデータの位置。この値は、メソッド呼び出しにおけるオブジェクトと DIPH_BYOFFSET フラグを受け取る構造体の中のオブジェクトを識別するために使用される。「注意」を参照すること。
dwType
オブジェクトを表すデバイス タイプ。オブジェクト タイプ (軸、ボタンなど) を表す DIDFT_* フラグの組み合わせであり、中央の 16 ビットには、オブジェクト インスタンス番号が格納される。オブジェクト インスタンス番号を抽出するには、DIDFT_GETINSTANCE マクロを使用する。DIDFT_* フラグについては、「IDirectInputDevice8::EnumObjects」を参照すること。
dwFlags
データ形式のほかの属性を表すフラグ。この値は、次のいずれか 1 つである。
DIDOI_ASPECTACCEL
オブジェクトは加速度情報を報告する。
DIDOI_ASPECTFORCE
オブジェクトはフォース情報を報告する。
DIDOI_ASPECTMASK
アスペクト情報を報告するためのビット。1 つのオブジェクトは最大 1 つのアスペクトしか表すことができない。
DIDOI_ASPECTPOSITION
オブジェクトは位置情報を報告する。
DIDOI_ASPECTVELOCITY
オブジェクトは速度情報を報告する。
DIDOI_FFACTUATOR
オブジェクトは、フォース フィードバック エフェクトを自身に適用させることができる。
DIDOI_FFEFFECTTRIGGER
オブジェクトは、フォース フィードバック エフェクトの再生をトリガする。
DIDOI_GUIDISUSAGE
DIOBJECTDATAFORMAT 構造体の pguid メンバには、必要な使用ページと使用状況が、パックされた DWORD 形式で格納される。「DIMAKEUSAGEDWORD」を参照すること。
DIDOI_POLLED
IDirectInputDevice8::Poll メソッドが呼び出されるまで、オブジェクトはデータを返さない。
tszName[MAX_PATH]
オブジェクトの名前。たとえば、"X-Axis" または "Right Shift" など。
dwFFMaxForce
このオブジェクトに関連付けられたアクチュエータが作り出せる最大フォースのマグニチュード。フォースは、ニュートン単位で表現され、デバイスを通常に操作している間の手の位置との関連で測定される。
dwFFForceResolution
このオブジェクトに関連付けられたアクチュエータのフォース分解能。戻り値は、フォース フィードバック システムが 0 (フォースなし) から最大フォースの範囲で表現できるフォースの段階数または下位区分の数を表す。
wCollectionNumber
オブジェクトが属する HID (Human Interface Device) リンク コレクション。
wDesignatorIndex
HID 物理記述子の指定を参照するインデックス。この数値は、デバイス オブジェクトについての追加情報を含む HID 解釈ライブラリ (Hidpi.h) の関数に渡される。
wUsagePage
オブジェクトに関連する HID (Human Interface Device) 使用ページ (判明した場合)。HID は常に使用ページを報告する。非 HID デバイスはオプションで使用ページを報告する。非 HID デバイスが報告しない場合、このパラメータの値はゼロになる。
wUsage
オブジェクトに関連する HID 使用状況 (判明した場合)。HID は常に使用状況を報告する。非 HID はオプションで使用状況を報告する。非 HID デバイスが報告しない場合、このパラメータの値はゼロになる。
dwDimension
オブジェクトの値を報告する次元単位の HID (Human Interface Device) コード (判明している場合)。不明な場合はゼロとなる。
wExponent
単位に付ける指数 (判明している場合)。次元単位は常に整数であるので、整数以外のタイプに単位を変換するには指数が必要となる。
wReportId
予約済み。

注意

デバイスにデータ形式が設定された場合、dwOfs の値は、その形式内のオブジェクト データのオフセットである。形式が設定されていない場合、値は、デバイスが返す未加工データ内のオフセットである。データ形式が設定されていない場合、アプリケーションはこの値を使う必要がある。

アプリケーションは wUsagePage および wUsage メンバを使用して、オブジェクトの設計目的についての追加情報を得ることができる。たとえば、wUsagePage の値が 0x02 (乗物のコントロール) で、wUsage の値が 0xB9 (昇降舵トリム) の場合、オブジェクトは、操縦桿の昇降舵トリム コントロールとして設計されている。フライト シミュレータ アプリケーションはこの情報を使用して、デバイス上のオブジェクトに対して、より適切なデフォルト動作を提供することができる。HID 使用コードは USB 標準委員会で定められている。

動作環境

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