IDirectInputEffectDriver::D ownloadEffect メソッド (dinputd.h)
IDirectInputEffectDriver::D ownloadEffect メソッドは、デバイスに効果を送信します。
構文
HRESULT DownloadEffect(
DWORD unnamedParam1,
DWORD unnamedParam2,
LPDWORD unnamedParam3,
LPCDIEFFECT unnamedParam4,
DWORD unnamedParam5
);
パラメーター
unnamedParam1
アドレス指定する外部ジョイスティック番号を指定します。
unnamedParam2
アプリケーションが作成しようとしている効果に関連付けられている DIEFFECTATTRIBUTES 構造体の dwEffectId メンバーを指定します。 DIEFFECTATTRIBUTES 構造体は、対応するエフェクト レジストリ キーの下のレジストリに格納され、任意の 32 ビット値を指定できます。 DirectInput は、解釈なしで 32 ビット値をドライバーに渡します。
unnamedParam3
エントリの場合、このパラメーターは、ダウンロードされる効果のハンドルへのポインターです。 このパラメーターが 0 を指している場合は、新しい効果がダウンロードされます。 終了時に、このパラメーターは、新しいエフェクト ハンドルを含む DWORD へのポインターです。 失敗した場合、このパラメーターが指す DWORD は、効果が失われた場合は 0 に設定され、効果が古いパラメーターで有効な場合は左に設定されます。 0 は有効な効果ハンドルではありません。
unnamedParam4
新しい効果を記述する DIEFFECT 構造体を指します。 軸とボタンの値は、次で構成されるオブジェクト識別子に変換されています。
1 つの型指定子:
DIDFT_RELAXIS
DIDFT_ABSAXIS
DIDFT_PSHBUTTON
DIDFT_TGLBUTTON
DIDFT_POV
1 つのインスタンス識別子:
DIDFT_MAKEINSTANCE(n)
オブジェクト識別子の他のビットは予約されており、無視する必要があります。
たとえば、0x02000104 = DIDFT_PSHBUTTON |DIDFT_MAKEINSTANCE(1) |その他のもの
この値は、効果でボタン 1 が使用されていることを示します。
unnamedParam5
エフェクト情報のどの部分が、デバイスに既に適用されている効果から変更されたかを指定します。 この情報は、効果の変更の最適化を可能にするためにドライバーに渡されます。 効果が変更されている場合、ドライバーは元の位置の効果を更新し、変更された情報のみをデバイスに送信できる場合があります。 ただし、ドライバーは、この最適化を実装するために必要ではありません。 peff パラメーターが指す DIEFFECT 構造体内のすべてのメンバーは有効であり、ドライバーは、各ダウンロード時に効果のすべてのパラメーターを更新するだけで済みます。 (DIEFFECT 構造体の詳細については、スタンドアロン DirectX SDK の DirectInput セクションを参照してください)。
このパラメーターには、次の 0 個、1 つ以上を指定できます。
DIEP_DURATION
DIEFFECT 構造体の dwDuration メンバーが初めてダウンロードされているか、前回のダウンロード以降に変更されたことを示します。
DIEP_SAMPLEPERIOD
DIEFFECT 構造体の dwSamplePeriod メンバーが初めてダウンロードされているか、前回のダウンロード以降に変更されたことを示します。
DIEP_GAIN
DIEFFECT 構造体の dwGain メンバーが初めてダウンロードされているか、前回のダウンロード以降に変更されたことを示します。
DIEP_TRIGGERBUTTON
DIEFFECT 構造体の dwTriggerButton メンバーが初めてダウンロードされているか、前回のダウンロード以降に変更されたことを示します。
DIEP_TRIGGERREPEATINTERVAL
DIEFFECT 構造体の dwTriggerRepeatInterval メンバーが初めてダウンロードされているか、前回のダウンロード以降に変更されたことを示します。
DIEP_AXES
DIEFFECT 構造体の cAxes および rgdwAxes メンバーが初めてダウンロードされているか、前回のダウンロード以降に変更されていることを示します。
DIEP_DIRECTION
DIEFFECT 構造体の cAxes メンバーと rglDirection メンバーが初めてダウンロードされているか、前回のダウンロード以降に変更されていることを示します。 (DIEFFECT 構造体の dwFlags メンバーは、値を解釈する座標系をDIEFF_CARTESIANまたはDIEFF_POLARによって指定します)。
DIEP_ENVELOPE
DIEFFECT 構造体の lpEnvelope メンバーが初めてダウンロードされているか、前回のダウンロード以降に変更されていることを示します。 このフラグが設定され、 lpEnvelope メンバーが NULL ポインターである場合、効果は封筒なしで作成されているか、既存の封筒が削除されています。
DIEP_TYPESPECIFICPARAMS
DIEFFECT 構造体の cbTypeSpecificParams メンバーと lpTypeSpecificParams メンバーが初めてダウンロードされているか、前回のダウンロード以降に変更されていることを示します。
DIEP_START
効果のパラメーターが更新された後、効果が最初から再開されることを示します。 DIEP_NODOWNLOAD フラグは、DIEP_START フラグをオーバーライドします。
DIEP_NORESTART
このフラグを指定しない場合、指定したパラメーターを変更する必要がある場合は、エフェクト デバイス ドライバーで効果の再起動が許可されます。 DIEP_NODOWNLOADフラグとDIEP_START フラグは、このフラグをオーバーライドします。
DIEP_NODOWNLOAD
パラメーターの更新後に通常実行される自動ダウンロードを抑制します。 このフラグが設定されている場合、ドライバーは実際のダウンロードを実行せずにパラメーターを検証する必要があります。
戻り値
成功した場合はS_OK、それ以外の場合はエラー値を返します。
要件
対象プラットフォーム | デスクトップ |
Header | dinputd.h (Dinputd.h を含む) |