次の方法で共有


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 メンバーには必要なバッファーのサイズ (バイト) が格納されます。

戻り値

メソッドが正常に実行された場合、戻り値は DI_OK です。メソッドが失敗した場合、戻り値は次のいずれかのエラー値です。DIERR_INVALIDPARAM、DIERR_MOREDATA、DIERR_NOTINITIALIZED

解説 

DIERR_INVALIDPARAM エラーの原因になる一般的なエラーとしては、 DIEFFECT 構造体の dwSize メンバーを設定していなかった、無効なフラグを渡した、またはエフェクト情報を取得するための準備として DIEFFECT 構造体のメンバーを正しくセットアップしていなかったことなどがあります。たとえば、dwTriggerButton メンバーの情報を取得する場合は、DirectInput にボタンの表現方法を指示するために、dwFlags メンバーを DIEFF_OBJECTIDS または DIEFF_OBJECTOFFSETS のどちらかに設定する必要があります。

要件

ヘッダー: Dinput.h 宣言