Platform SDK: DirectX |
DIOBJECTDATAFORMAT 構造体は、IDirectInputDevice7::SetDataFormat メソッドで使用するためのデバイス オブジェクトのデータ形式の情報を格納する。
typedef struct DIOBJECTDATAFORMAT { const GUID * pguid; DWORD dwOfs; DWORD dwType; DWORD dwFlags; } DIOBJECTDATAFORMAT, *LPDIOBJECTDATAFORMAT; typedef const DIOBJECTDATAFORMAT *LPCDIOBJECTDATAFORMAT;
データ形式は、各オブジェクト (軸、ボタンなど) が 1 つずつ保有する複数の DIOBJECTDATAFORMAT 構造体で構成される。これらの構造体の配列は、IDirectInputDevice7::SetDataFormat に渡される DIDATAFORMAT 構造体に格納される。アプリケーションは、通常、DIOBJECTDATAFORMAT 構造体からなる配列を作成する必要はなく、DIOBJECTDATAFORMAT に事前定義されている設定値である c_dfDIMouse、c_dfDIMouse2、c_dfDIKeyboard、c_dfDIJoystick、または c_dfDIJoystick2 などの事前定義されたデータ形式データのいずれかを使用できる。
以下のオブジェクト データ形式は、DirectInput が最初の使用可能な軸を選択し、そのデバイス データのオフセット 4 の位置にある値を DWORD で報告しなければならないということを指定している。
DIOBJECTDATAFORMAT dfAnyAxis = { 0, // ワイルドカード 4, // オフセット DIDFT_AXIS | DIDFT_ANYINSTANCE, // どんな軸でもよい。 0, // アスペクトに関与しない。 };
以下のオブジェクト データ形式は、デバイスの x 軸をデバイス データのオフセット 12 の位置に DWORD で格納するように指定している。デバイスが複数の x 軸を持っている場合には、最初に使用可能な軸が選択される。
DIOBJECTDATAFORMAT dfAnyXAxis = { &GUID_XAxis, // X 軸でなければならない。 12, // オフセット DIDFT_AXIS | DIDFT_ANYINSTANCE, // どんな X 軸でもよい。 0, // アスペクトに関与しない。 };
以下のオブジェクト データ形式は、DirectInput が最初に使用可能なボタンを選択して、デバイス データのオフセット 16 の位置にあるバイトの上位ビットの値を報告するように指定している。
DIOBJECTDATAFORMAT dfAnyButton = { 0, // ワイルドカード 16, // オフセット DIDFT_BUTTON | DIDFT_ANYINSTANCE, // どんなボタンでもよい。 0, // アスペクトに関与しない。 };
以下のオブジェクト データ形式は、デバイスのボタン 0 をデバイス データのオフセット 18 の位置に格納されているバイトの上位ビットとして報告するように指定している。
デバイスにボタン 0 がなければ、このデータ形式の設定は失敗に終わる。
DIOBJECTDATAFORMAT dfButton0 = { 0, // ワイルドカード 18, // オフセット DIDFT_BUTTON | DIDFT_MAKEINSTANCE(0), // ボタン 0 0, // アスペクトに関与しない。 };
Windows NT/2000 :Windows 2000 が必要。
Windows 95/98 : Windows 95 以降が必要。Windows 95 用に再配布可能な形で使用可能。
ヘッダー : dinput.h で宣言。