IDirectInputDevice8::SetProperty
デバイスの動作を定義するプロパティを設定します。これらのプロパティには、入力バッファー サイズや軸モードなどがあります。
HRESULT
SetProperty(
REFGUID rguidProp,
LPCDIPROPHEADER pdiph
);
パラメータ
- rguidProp
設定するプロパティを示すグローバル一意識別子 (GUID) への参照 (C++) またはアドレス (C)。これは、定義済みの値のいずれか、またはプロパティを示す GUID へのポインターです。入力デバイスに対しては次のプロパティ値が定義済みです。DIPROP_APPDATA
ゲーム中のアクションに関連したアプリケーション定義の値を、DIPROPPOINTER として設定します。DIPROP_AUTOCENTER
デバイス オブジェクトが自動センタリングを行うかどうかを指定します。この設定は特定のオブジェクトにではなくデバイス全体に適用されるので、関連した DIPROPDWORD 構造体の dwHow メンバーは DIPH_DEVICE であることが必要です。dwData メンバーには次の値のいずれかを指定できます。
DIPROPAUTOCENTER_OFF:ユーザーがデバイスを放したときに、デバイスのセンタリングは自動的に行われません。フォース フィードバックを使用するアプリケーションは、エフェクトを再生する前に自動センタリングを無効にする必要があります。
DIPROPAUTOCENTER_ON:ユーザーがデバイスを放したときに、デバイスのセンタリングを自動的に行います。
オートセンター プロパティをサポートしないデバイスもあります。
DIPROP_AXISMODE
軸モードを設定します。設定する値 (DIPROPAXISMODE_ABS または DIPROPAXISMODE_REL) は、関連した DIPROPDWORD 構造体の dwData メンバーで指定する必要があります。詳しくは、pdiph パラメーターの説明を参照してください。この設定はデバイス全体に適用されるので、関連した DIPROPDWORD 構造体の dwHow メンバーは DIPH_DEVICE に設定する必要があります。DIPROP_BUFFERSIZE
入力バッファー サイズを設定します。設定する値は、関連した DIPROPDWORD 構造体の dwData メンバーで指定する必要があります。「解説」を参照してください。この設定はデバイス全体に適用されるので、関連した DIPROPDWORD 構造体の dwHow メンバーは DIPH_DEVICE に設定する必要があります。DIPROP_CALIBRATION
調整を必要とする軸を操作するために DirectInput が使用する情報にアプリケーションからアクセスするための定義済みプロパティ。このプロパティは主に、コントロール パネル型のアプリケーションのために用意されています。通常のアプリケーションは、調整情報を処理する必要はありません。軸の調整モード プロパティにアクセスするには、DIPROPHEADER 構造体の dwHow メンバーを DIPH_BYID または DIPH_BYOFFSET に設定し、dwObj メンバーをオブジェクト ID またはオフセットにそれぞれ設定します。
新しい調整データを設定するコントロール パネル アプリケーションは、さらに IDirectInputJoyConfig::SendNotify メソッドを呼び出して、調整に変更があったことを他のアプリケーションに通知する必要があります。IDirectInputJoyConfig::SendNotify について詳しくは、DirectX Driver Development Kit (DDK) を参照してください。
DIPROP_CALIBRATIONMODE
軸から調整済みデータを取得するか、未調整のデータを取得するかを、アプリケーションから DirectInput に指示できます。デフォルトでは、DirectInput は調整済みのデータを取得します。デバイス全体の調整モードの設定は、それぞれの軸ごとに個別に調整モードを設定することと同等です。
DIPROPDWORD 構造体の dwData メンバーには、次の値のいずれかを指定できます。
DIPROPCALIBRATIONMODE_COOKED:調整情報の適用後に DirectInput からデータが返されます。これは、デフォルトのモードです。
DIPROPCALIBRATIONMODE_RAW:DirectInput から生の未調整データが返されます。このモードは、通常はコントロール パネル型のアプリケーションのみが使用します。生データには負の値が含まれる可能性があることに注意してください。
デバイスを Raw モードに設定すると、デッド ゾーン、飽和、および範囲の設定が無視されます。
DIPROP_CPOINTS
このプロパティはサポートされません。入力される生データの調整に使用される調整ポイントを設定します。設定する値は、関連した DIPROPCPOINTS 構造体の cp 配列に CPOINT 型として指定する必要があります。この設定は個々のデバイス オブジェクトに適用されるので、関連した DIPROPHEADER 構造体の dwHow メンバーは DIPH_BYID または DIPH_BYOFFSET のどちらかに設定する必要があります。DIPROP_DEADZONE
ジョイスティックのデッド ゾーンの値を設定します。範囲は 0 から 10,000 で、0 はデッド ゾーンが存在しないことを示し、5,000 は中心の両側で軸の物理範囲の 50% にわたってデッド ゾーンが存在することを示し、10,000 は軸の物理範囲全体がデッド ゾーンであることを示します。軸がデッド ゾーン内にあるとき、その軸は範囲の中心にあるものとして報告されます。この設定は、デバイス全体にも、特定の軸にも適用できます。DIPROP_FFGAIN
デバイスのゲインを設定します。この設定は特定のオブジェクトにではなくデバイス全体に適用されるので、関連した DIPROPDWORD 構造体の dwHow メンバーは DIPH_DEVICE であることが必要です。dwData メンバーには、デバイス上で作成されるすべてのエフェクトに適用されるゲイン値が格納されます。この値は 0 から 10,000 の範囲の整数で、デバイスに対してエフェクトの大きさを調節する量を指定します。たとえば、値 10,000 は、すべてのエフェクトの大きさをその数値どおり適用するように指示します。値 9,000 は、すべてのエフェクトの大きさを数値上の大きさの 90% に減らすように指示します。
DirectInput は、ゲイン プロパティを設定する前に常にゲイン値をチェックします。ゲインが範囲外 (ゼロより小さい、または 10,000 より大きい) にあると、IDirectInputDevice8::SetProperty は DIERR_INVALIDPARAM を返します。それ以外の場合は、正常に実行されると DI_OK が返されます (デバイスがフォース フィードバックをサポートしていない場合でも)。
ゲイン値の設定は、アプリケーションがユーザー設定に基づいてフォース フィードバック エフェクトの強さを一定の割合で弱める必要がある場合に便利です。
他のプロパティとは異なり、ゲインはデバイスが獲得された状態にあるときに設定できます。
DIPROP_INSTANCENAME
このプロパティは高度なアプリケーションのために提供されており、デバイスのわかりやすいインスタンス名 (DIDEVICEINSTANCE 構造体の tszInstanceName メンバーに返される) を変更して、同時に接続される類似したデバイスと区別する必要がある場合に使用します。ほとんどのアプリケーションでは、わかりやすい名前を変更する必要はありません。この設定はデバイス全体に適用されるので、関連した DIPROPDWORD 構造体の dwHow メンバーは DIPH_DEVICE に設定する必要があります。
pdiph パラメーターは、DIPROPSTRING 構造体の diph メンバーへのポインターであることが必要です。
DIPROP_PRODUCTNAME
このプロパティは高度なアプリケーションのために提供されており、デバイスのわかりやすい製品名 (DIDEVICEINSTANCE 構造体の tszProductName メンバーに返される) を変更して、同時に接続される類似したデバイスと区別する必要がある場合に使用します。ほとんどのアプリケーションでは、わかりやすい名前を変更する必要はありません。この設定はデバイス全体に適用されるので、関連した DIPROPDWORD 構造体の dwHow メンバーは DIPH_DEVICE に設定する必要があります。
pdiph パラメーターは、DIPROPSTRING 構造体の diph メンバーへのポインターであることが必要です。
製品名の設定は、Microsoft Windows 98、Windows 2000、および Windows Millennium Edition (Windows Me) を実行するコンピューター上で、アナログ ジョイスティックのユーザー定義の名前を変更する場合にのみ有用です。その他のケースでも、このプロパティを設定すると DI_OK が返されます。ただし、その名前は IDirectInputDevice8::GetProperty が使用する場所に格納されません。
DIPROP_RANGE
オブジェクトが報告可能な値の範囲を設定します。最小値と最大値は、関連した DIPROPRANGE 構造体の lmin メンバーと lmax メンバーによって決まります。一部のデバイスでは、これは読み取り専用プロパティです。
逆の範囲を設定することはできません。つまり、lmax は lmin より大きいことが必要です。
DIPROP_SATURATION
0 から 10,000 の範囲で、ジョイスティックの飽和ゾーンの値を設定します。飽和レベルは、軸が一番端の位置にあると見なされるポイントです。たとえば、飽和レベルが 9,500 に設定されていると、中心の位置 (またはデッド ゾーン) から物理距離の 95% まで軸が動かされたときに、軸は範囲の端に達します。この設定は、デバイス全体にも、特定の軸にも適用できます。
- pdiph
種類固有のプロパティ構造体に含まれる DIPROPHEADER 構造体のアドレス。
戻り値
メソッドが正常に実行された場合、戻り値は DI_OK または DI_PROPNOEFFECT です。メソッドが失敗した場合、戻り値は次のいずれかのエラー値です。DIERR_INVALIDPARAM DIERR_NOTINITIALIZED、DIERR_OBJECTNOTFOUND、DIERR_UNSUPPORTED
解説
バッファー サイズは、IDirectInputDevice8::GetDeviceData メソッドの呼び出しから次の呼び出しまでの間、データが失われる前にバッファーに保持できるデータの量を決定します。この値を 0 に設定すると、デバイスからバッファー データを読み取らないようにアプリケーションに指示できます。DIPROPDWORD 構造体の dwData メンバーに指定されているバッファー サイズが大きすぎて、デバイスがそのサイズをサポートしない場合は、可能な限り最大のバッファー サイズが設定されます。
要件
ヘッダー: Dinput.h 宣言