IDirectInputEffect::GetParameters
エフェクトに関する情報を取得します。
HRESULT
GetParameters(
LPDIEFFECT peff,
DWORD dwFlags
);
パラメータ
- peff
エフェクト情報を格納する DIEFFECT 構造体のアドレス。このメソッドを呼び出す前に、アプリケーションが dwSize メンバーを指定する必要があります。 - dwFlags
エフェクト情報のどの部分を取得するかを指定するフラグ。値は 0、または次のいずれかの定数 (複数可) を指定します。- DIEP_ALLPARAMS
他の DIEP_* フラグすべての和集合であり、DIEFFECT 構造体のすべてのメンバーが要求対象であることを示します。 - DIEP_ALLPARAMS_DX5
DIEP_STARTDELAY フラグを除く、他の DIEP_* フラグすべての和集合。 - DIEP_AXES
cAxes メンバーおよび rgdwAxes メンバーにデータを格納します。開始時の cAxes メンバーには、rgdwAxes メンバーによって示されるバッファーのサイズ (DWORD) が格納されます。バッファーが小さすぎる場合は、メソッドから DIERR_MOREDATA が返され、cAxes は必要なバッファー サイズに設定されます。 - DIEP_DIRECTION
cAxes メンバーおよび rglDirection メンバーにデータを格納します。開始時の cAxes メンバーには、rglDirection メンバーによって示されるバッファーのサイズ (DWORD) が格納されます。バッファーが小さすぎる場合は、IDirectInputEffect::GetParameters メソッドから DIERR_MOREDATA が返され、cAxes は必要なバッファー サイズに設定されます。dwFlags メンバーは、座標系フラグ (DIEFF_CARTESIAN、DIEFF_POLAR、または DIEFF_SPHERICAL) を少なくとも 1 つ含んでいる必要があります。指定した座標系のいずれかを使用してエフェクトの方向が DirectInput から返され、必要に応じて座標系の間で変換が行われます。終了時には、ただ 1 つの座標系フラグが dwFlags メンバー内で設定され、DirectInput によって使用された座標系を示します。なお、3 つの座標系フラグをすべて渡すと、設定時に使用されたものとまったく同じフォーマットの座標系が得られます。 - DIEP_DURATION
dwDuration メンバーにデータを格納します。 - DIEP_ENVELOPE
lpEnvelope メンバーは、データを格納する DIENVELOPE 構造体を指示します。エフェクトにエンベロープが関連付けられていない場合、lpEnvelope メンバーは NULL に設定されます。 - DIEP_GAIN
dwGain メンバーにデータを格納します。 - DIEP_SAMPLEPERIOD
dwSamplePeriod メンバーにデータを格納します。 - DIEP_STARTDELAY
dwStartDelay メンバーにデータを格納します。 - DIEP_TRIGGERBUTTON
dwTriggerButton メンバーにデータを格納します。 - DIEP_TRIGGERREPEATINTERVAL
dwTriggerRepeatInterval メンバーにデータを格納します。 - DIEP_TYPESPECIFICPARAMS
lpvTypeSpecificParams メンバーはバッファーを指示し、そのサイズは cbTypeSpecificParams メンバーによって指定されます。戻るときに、バッファーにはエフェクトに関連した種類固有のデータが格納され、cbTypeSpecificParams メンバーにはコピーされたバイト数が格納されます。アプリケーションによって指定されたバッファーが小さすぎて種類固有のデータをすべて格納できない場合、メソッドからは DIERR_MOREDATA が返され、cbTypeSpecificParams メンバーには必要なバッファーのサイズ (バイト) が格納されます。
- DIEP_ALLPARAMS
戻り値
メソッドが正常に実行された場合、戻り値は DI_OK です。メソッドが失敗した場合、戻り値は次のいずれかのエラー値です。DIERR_INVALIDPARAM、DIERR_MOREDATA、DIERR_NOTINITIALIZED
解説
DIERR_INVALIDPARAM エラーの原因になる一般的なエラーとしては、 DIEFFECT 構造体の dwSize メンバーを設定していなかった、無効なフラグを渡した、またはエフェクト情報を取得するための準備として DIEFFECT 構造体のメンバーを正しくセットアップしていなかったことなどがあります。たとえば、dwTriggerButton メンバーの情報を取得する場合は、DirectInput にボタンの表現方法を指示するために、dwFlags メンバーを DIEFF_OBJECTIDS または DIEFF_OBJECTOFFSETS のどちらかに設定する必要があります。
要件
ヘッダー: Dinput.h 宣言