Microsoft DirectX 8.0 (C++) |
IDirectInputDevice8::SetDataFormat メソッドで使用するデバイス オブジェクトのデータ形式を表す。
typedef struct DIOBJECTDATAFORMAT { const GUID * pguid; DWORD dwOfs; DWORD dwType; DWORD dwFlags; } DIOBJECTDATAFORMAT, *LPDIOBJECTDATAFORMAT; typedef const DIOBJECTDATAFORMAT *LPCDIOBJECTDATAFORMAT;
データ形式は、各オブジェクト (軸、ボタンなど) が 1 つずつ保有する複数の DIOBJECTDATAFORMAT 構造体で構成される。これらの構造体の配列は、IDirectInputDevice8::SetDataFormat に渡される DIDATAFORMAT 構造体に格納される。アプリケーションは、通常、DIOBJECTDATAFORMAT 構造体からなる配列を作成する必要はなく、DIOBJECTDATAFORMAT に事前定義されている設定値である c_dfDIMouse、c_dfDIMouse2、c_dfDIKeyboard、c_dfDIJoystick、または c_dfDIJoystick2 などの事前定義されたデータ形式データのいずれかを使用できる。
以下のオブジェクト データ形式は、Microsoft® 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 以降に対する再配布可能ファイルとして提供。
ヘッダー : dinput.h で宣言。